使用Magento 1.4.1.1或1.5.0.0以及与特定类别相关联的给定产品,我需要在单个视图中将静态块附加到产品描述中。
我可以创建静态块(测量图像)并在local.xml中添加简单的附加代码。但是,我无法弄清楚如何限制附加到某些类别的产品的应用。
EG:所有鞋类产品单一视图页面(当然是鞋类)应显示鞋码尺寸测量图像,裙边尺码测量图像等。
我真的不想超越模板...只想附加一个块!
答案 0 :(得分:2)
如果您认为产品只属于一个类别,那么您可以像这样检查模板文件:
$product = Mage::registry('current_product');
$category = $product->getCategory(); // get first category only
if ($category->getUrlKey() == 'shoes'):
// Output show size measurements
elseif ($category->getUrlKey() == 'skirts'):
// Output skirt measurements
endif;
我在这里使用了getUrlKey
,因为它提供了您在管理员中输入的文字,因此可以管理。
更复杂的方法是使用每个产品的“设计”选项卡中的“自定义布局更新”字段直接放入XML,但这样做更有效。
答案 1 :(得分:2)
创建一个自定义块类型(您可以称之为Somemodule_Categorical_Cms_Block
,或者选择一个来自cms/block
的非常糟糕的名称)。在该块类中,实现以下内容:
protected function _toHtml()
{
if(!$this->isEnabledForCategory()) {
return "";
}
return parent::_toHtml();
}
实施您自己的isEnabledForCategory
以检查类别。更改local.xml声明以调用新的块类,您应该设置为go。
希望有所帮助!
谢谢, 乔
答案 2 :(得分:0)
我需要做这样的事情,我想出了这个:
1-创建一个名为" category1_size_guide"的静态块
2-只要我的主题使用:
" \应用\设计\前端\ theme_designer \ THEME_NAME \模板\页面\ 2columns-right.phtml"
对于显示产品,我添加此代码:
$product = Mage::registry('current_product');
$catIds = ($product)?$product->getCategoryIds():array(); //print_r($catIds);
if(in_array(60, $catIds)){ //60 is category id you want to check
echo $this->getLayout()->createBlock('cms/block')->setBlockId('category1_size_guide')->toHTML();
}