Answers:
您是正确的,对于具有多个主题的网站,这是一种有效且常用的方法。还有两个附加选项(鲜为人知,很少使用),这些选项可用于适用于不同商店范围的布局更新:商店句柄和主题句柄。
从动作控制器超类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 />
。
<STORE_x><action method="addJs" block="head"><file>custom/js.js</file></action></STORE_x>
。