Plusieurs fichiers de mise en page de local.xml dans un paquet
Question
Dites il y a deux thèmes dans un paquet:
- Base (Définir par défaut)
- Enfant (Définir comme thème principal)
Les deux contiennent un local.xml dans le dossier de mise en page -. Seul le local.xml du thème de l'enfant sera chargé, de sorte que toute CSS, JS mises à jour ou mise en page dans la base local.xml ne soit pas chargé
Sans utiliser page.xml (permettant ainsi la même fonctionnalité que local.xml mais avec l'héritage), comment pourrais-je avoir un fichier xml pour la base et un pour enfants et que les deux appelée?
Serait-ce un module requiert la construction d'un seul but d'ajouter un fichier xml utilisable (par exemple: base local.xml)?
La solution
Vous avez raison, ce qui est une approche valable et utilisée pour les sites avec plusieurs thèmes. Il y a quelques options supplémentaires (peu connues, rarement utilisées) qui peut être utilisé pour les mises à jour de mise en page qui s'appliquent à différents domaines magasin:. La poignée du magasin et la poignée de thème
De l'action du contrôleur superclasse Mage_Core_Controller_Varien_Action
(lien) :
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;
}
Pour un magasin avec le code « deutsch » et une configuration du thème du paquet « par défaut », thème « allemand », les poignées suivantes s'appliquerait à presque toutes les vues, comme la plupart des points de vue les utiliser:
<STORE_deutsch>
<THEME_frontend_default_german>
Par la mise en œuvre de ces poignées peuvent être utilisés de la même manière que <default />
.