Frage

Sagen Sie, es gibt zwei Themen in einem Paket:

  • Basis (als Standard festgelegt)
  • Kind (als Hauptthema festgelegt)

Beide enthalten im Layout -Ordner ein lokal.xml - nur die lokale.xml aus dem untergeordneten Thema werden geladen, sodass alle CSS-, JS- oder Layout -Updates in der Basis lokal.xml nicht geladen werden.

Wie hätte ich eine XML -Datei für Basis und eine für Kind, die beide aufgerufen werden?

Würde dies erfordern, ein Modul mit einem alleinigen Zweck zu erstellen, eine nutzbare XML-Datei hinzuzufügen (z. B. base-local.xml)?

War es hilfreich?

Lösung

Sie haben Recht und dies ist ein gültiger und gebrauchter Ansatz für Websites mit mehreren Themen. Es gibt einige zusätzliche (wenig bekannte, selten verwendete) Optionen, die für Layout-Updates verwendet werden können, die für verschiedene Speicherbereiche gelten: den Store-Handle und das Themenhandle.

Aus der Aktionscontroller Superklasse Mage_Core_Controller_Varien_Action (Verknüpfung):

public function addActionLayoutHandles()
{
    $update = $this->getLayout()->getUpdate();

    // load store handle
    $update->addHandle('STORE_'.Mage::app()->getStore()->getCode());

    // load theme handle
    $package = Mage::getSingleton('core/design_package');
    $update->addHandle(
        'THEME_'.$package->getArea().'_'.$package->getPackageName().'_'.$package->getTheme('layout')
    );

    // load action handle
    $update->addHandle(strtolower($this->getFullActionName()));

    return $this;
}

Für einen Speicher mit dem Code 'Deutsch' und einer Themenkonfiguration von 'Standard' Paket 'deutsch' thema gilt die folgenden Handles für fast jede Ansicht, da die meisten Ansichten sie verwenden:

<STORE_deutsch>
<THEME_frontend_default_german>

Durch Implementierung können diese Handles genauso genutzt werden wie <default />.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top