Proverò a dare una risposta generale.
Come modificare i modelli
Nel tuo tema, puoi sovrascrivere qualsiasi phtml
file dal tema predefinito o dal tema principale. Copia il file originale in app/design/frontend/[package]/[theme]/template/[path/to/phtml]
e apporta le modifiche.
Se non hai ancora un tema personalizzato specifico per il progetto, ad esempio perché hai appena acquistato un tema, assicurati di crearne uno a
app/design/frontend/[original-package]/[project-name]
Erediterà da [original-package]/[default]
, non è necessario copiare tutto per impostazione predefinita, solo i file in cui è necessario apportare modifiche.
Modifiche specifiche del modulo
Un'alternativa phtml
alla sostituzione del file è quella di modificare il percorso del modello. Questo di solito può essere fatto in XML layout come questo:
<reference name="the-block-name">
<action method="setTemplate"><name>path/to/new/template.phtml</name></action>
</reference>
Ma questo è destinato ad essere utilizzato dai moduli che hanno bisogno di cambiare un modello, non per cambiamenti specifici del tema. Il nuovo modello dovrebbe essere inseritobase/default
allora.
Come usare local.xml / theme.xml
Il local.xml
file deve trovarsi nella directory del tema effettivo che si sta utilizzando, ad es
app/design/frontend/[package]/[theme]/layout
Più local.xml
file nella gerarchia di fallback non vengono presi in considerazione. Viene utilizzato il primo di questi che è possibile trovare:
app/design/frontend/[package]/[theme]/layout/local.xml
app/design/frontend/[package]/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml
(presupponendo una gerarchia predefinita e nessuna gerarchia definita personalizzata)
Come apportare modifiche
Dovresti avere solo modifiche in local.xml, non ripetere definizioni che sono già nei file XML originali. Ciò significa anche, evitare di copiare i file XML dal tema predefinito per apportare modifiche direttamente nei file. Mantieni layout
pulita la directory del tuo tema !
Gli elementi tipici local.xml
sono la <remove>
rimozione completa dei blocchi esistenti <action method="unsetChild">
e <action method="append">
lo spostamento di un blocco da un genitore all'altro, oppure la chiamata a qualsiasi altro metodo su blocchi esistenti per modificarne il comportamento.
Magento 1.9
A partire da Magento 1.9, la migliore pratica è in realtà non utilizzare layout/local.xml
per questi cambiamenti, maetc/theme.xml
In breve, puoi aggiungere un aggiornamento del layout in app / design / frontend / yourpackage / etc / theme.xml. Il vantaggio è che hai il controllo sull'ordine di caricamento degli aggiornamenti del layout. Prima che Magento 1.9 local.xml fosse sempre caricato per ultimo, ed era impossibile far eseguire le direttive di layout dopo di esso.
Non sto più usando local.xml per modificare temi specifici del progetto. Penso che local.xml sia usato solo per motivi di compatibilità con le versioni precedenti (in 1.9 e successive) in quanto non ha più senso utilizzarlo. Local.xml è anche eliminato in Magento 2 ( https://github.com/magento/magento2/issues/1037 ).
Fonte: https://erfanimani.com/dont-use-local-xml/