คุณถูกต้องและนี่เป็นวิธีที่ถูกต้องและใช้สำหรับไซต์ที่มีหลายธีม มีตัวเลือกเพิ่มเติม (ที่ไม่ค่อยมีคนรู้จักและไม่ค่อยใช้) สองสามตัวเลือกซึ่งสามารถใช้สำหรับการอัปเดตเลย์เอาต์ที่ใช้กับขอบเขตร้านค้าที่แตกต่างกัน: ตัวจัดการร้านค้าและตัวจัดการธีม
จากแอ็คชันคอนโทรลเลอร์ superclass Mage_Core_Controller_Varien_Action
(ลิงก์) :
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;
}
สำหรับร้านค้าที่มีรหัส 'deutsch' และการกำหนดค่าธีมของแพ็คเกจ 'default', 'german' ธีมตัวจัดการต่อไปนี้จะใช้กับเกือบทุกมุมมองเนื่องจากมุมมองส่วนใหญ่ใช้พวกเขา:
<STORE_deutsch>
<THEME_frontend_default_german>
<default />
โดยการดำเนินการจับเหล่านี้สามารถนำไปใช้ประโยชน์ในทางเดียวกันมากเป็น