在不使用Magento管理仪表板的情况下指定特定于类别的布局更新

时间:2011-05-16 18:10:58

标签: magento

是否有办法为特定类别指定布局更新(例如使用类别ID),而无需使用管理信息中心,并设置[自定义设计>自定义布局更新]。

我确信我可以创建一个模块来查找类别ID并根据它来切换布局,但我很好奇是否有布局文件的命名或其他类型的约定允许这种类型的粒度控制,因为Zend Framwork有时允许这样的命名约定。

也许在catalog.xml文件本身中还有其他“布局”允许这样的粒度,比<catalog_category_layered />

更具体

2 个答案:

答案 0 :(得分:16)

在标准Magento安装(1.4.2,但它应该适用于其余部分)中,Magento发出以下布局句柄(句柄告诉Magento从包布局加载哪些布局更新XML片段)

<default />
<catalog_category_layered_nochildren />
<STORE_default />
<THEME_frontend_default_default />
<catalog_category_view />
<catalog_category_layered />
<CATEGORY_4 />
<customer_logged_out />

以下布局句柄

<CATEGORY_4 />

是根据类别的ID生成的。这意味着您应该能够将以下内容添加到local.xml,或添加到通过自定义模块添加的自定义布局XML文件

<layouts>
    <CATEGORY_4>
        <!-- your UPDATE xml here -->
    </CATEGORY_4>
</layouts>

答案 1 :(得分:2)

访问目录类别时,Magento会为CATEGORY_${ID}加载一个句柄,您可以使用它来完全按照您的要求进行操作。