Genel bir cevap vermeye çalışacağım.
Şablonlar nasıl değiştirilir?
Temanızda, phtml
varsayılan tema veya üst temadaki dosyaları geçersiz kılabilirsiniz . Orijinal dosyayı buraya kopyalayın ve app/design/frontend/[package]/[theme]/template/[path/to/phtml]
değişikliklerinizi yapın.
Henüz projeye özgü bir özel temanız yoksa, örneğin yeni bir tema satın aldığınız için,
app/design/frontend/[original-package]/[project-name]
Devralınacak [original-package]/[default]
, her şeyi varsayılandan kopyalamanıza gerek yok, sadece değişiklik yapmanız gereken dosyaları.
Modüle özgü değişiklikler
phtml
Dosyayı geçersiz kılmanın bir alternatifi , şablon yolunu değiştirmektir. Bu genellikle XML düzeninde şu şekilde yapılabilir:
<reference name="the-block-name">
<action method="setTemplate"><name>path/to/new/template.phtml</name></action>
</reference>
Ancak bu, temaya özgü değişiklikler için değil, bir şablonu değiştirmesi gereken modüller tarafından kullanılmak üzere tasarlanmıştır. Yeni şablon base/default
o zaman içinde olmalıdır .
Local.xml / theme.xml nasıl kullanılır?
local.xml
Dosya kullandığınız gerçek tema yani dizinde olmalıdır
app/design/frontend/[package]/[theme]/layout
local.xml
Yedek hiyerarşisindeki birden fazla dosya dikkate alınmaz. Bunlardan ilki bulunabilecek:
app/design/frontend/[package]/[theme]/layout/local.xml
app/design/frontend/[package]/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml
(varsayılan hiyerarşi varsayılır ve özel tanımlı hiyerarşi yoktur)
Değişiklikler nasıl yapılır?
Orijinal XML dosyalarındaki tanımları tekrarlamamak için yalnızca local.xml dosyasında değişiklik yapmanız gerekir. Bu, doğrudan dosyalarda değişiklik yapmak için XML dosyalarını varsayılan temadan kopyalamaktan kaçınmak anlamına da gelir. Temanızın layout
dizinini temiz tutun !
Tipik elemanları local.xml
olan <remove>
, tamamen mevcut blokları kaldırmak için, <action method="unsetChild">
ve <action method="append">
başka bir ebeveynden bir blok taşımak için ya da var olan bloklar da başka yöntemler arama davranışını değiştirmek için kullanılır.
Magento 1.9
Magento 1.9'dan başlayarak, en iyi uygulama aslında layout/local.xml
bu değişiklikler için değil ,etc/theme.xml
Kısacası, app / design / frontend / paketiniz / etc / theme.xml dosyasına bir düzen güncellemesi ekleyebilirsiniz. Avantajı, yerleşim güncellemelerinizin yükleme sırası üzerinde kontrol sahibi olmanızdır. Magento 1.9'dan önce local.xml her zaman en son yüklenmiştir ve bundan sonra yerleşim yönergelerinin yürütülmesi imkansızdı.
Artık projeye özgü tema değişiklikleri için local.xml kullanmıyorum. Ben local.xml sadece geriye dönük uyumluluk nedenleriyle (1.9 ve üstü) artık kullanıldığından bir anlamı olmadığı için kullanıldığını düşünüyorum. Local.xml, Magento 2'de de ( https://github.com/magento/magento2/issues/1037 ) elenir .
Kaynak: https://erfanimani.com/dont-use-local-xml/