说包装中有两个主题:

  • 基础(默认设置)
  • 孩子(设置为主要主题)

两者都在布局文件夹中包含local.xml-仅将加载来自子主题的local.xml,因此基本local.xml中的任何CSS,JS或布局更新都不会加载。

不使用page.xml(因此允许与local.xml相同的功能,但使用继承),我将如何获得XML文件的基础文件和一个被调用的儿童文件?

这是否需要构建一个具有唯一目的的模块来添加可用的XML文件(例如:base-local.xml)?

有帮助吗?

解决方案

您是正确的,这是具有多个主题的网站的有效和使用的方法。还有一些其他(鲜为人知的,很少使用的)选项,可用于适用于不同商店范围的布局更新:商店句柄和主题句柄。

从动作控制器超类 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”代码和“默认”软件包的主题配置的商店,“德语”主题几乎适用于几乎所有视图,因为大多数视图都使用它们:

<STORE_deutsch>
<THEME_frontend_default_german>

通过实施,这些手柄的使用方式与 <default />.

许可以下: CC-BY-SA归因
scroll top