通过layout.xml我试图为特定类别添加一个body类,如:
<CATEGORY_123>
<reference name="root">
<action method="addBodyClass"><className>foo</className></action>
</reference>
</CATEGORY_123>
当我在该类别id(123)的页面上但不适用于该类别的任何子项时,此方法有效。为了确保我正在检查我想要的父母的孩子,我将其插入我的标题:
<?php
$catID= '';
$category = Mage::registry('current_category');
if($category){
$path = $category->getPath();
$aCatIds = explode('/',$path);
$iCatID = $aCatIds[2]; // get the third level category = parent
echo $iCatID;
}
?>
答案 0 :(得分:2)
在控制器文件中 Mage_Catalog_CategoryController 操作 的的viewAction 强> 行 134
中有更新$update->addHandle('CATEGORY_' . $category->getId());
并且还有一个名为addBodyClass的方法(行 153 ):
$root->addBodyClass('categorypath-' . $category->getUrlPath())
->addBodyClass('category-' . $category->getUrlKey());
基于上面的这两个代码行,您的XML更新应该可以工作(我自己在很少的项目中使用过它)。 您可能需要检查是否有任何自定义模块重写 CategoryController.php 和 viewAction 。
答案 1 :(得分:0)
我认为在查找此博文后我找到了原因:http://www.eddiemay.me.uk/2011/11/07/magento-changing-the-body-class-by-category/
似乎我还必须在管理员中配置类别以确保他们使用父类别设置: