仅在某些类别的产品详细信息页面中添加静态块

时间:2013-06-26 21:07:06

标签: magento

我想在类别4的产品详细信息页面中添加一个静态块。我确实喜欢这样:

$catid = $this->helper('catalog/data')->getProduct()->getCategoryIds();
?>
<?php $blockID = "free_shipping_" + $catid ?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($blockID)->toHtml()  
?> 

然后在admin中我创建了一个带有URL和blocktitle free_shipping_4的静态块。 (free_shipping_4中的4表示类别4)。

我收到错误:

  

致命错误:第140行的C:\ wamp \ www \ mydomain \ app \ design \ frontend \ default \ mytheme \ template \ catalog \ product \ view.phtml中不支持的操作数类型

2 个答案:

答案 0 :(得分:0)

$ catid = $ this-&gt; helper('catalog / data') - &gt; getProduct() - &gt; getCategoryIds();     ?&GT;          getLayout() - &gt; createBlock('cms / block') - &gt; setBlockId($ blockID) - &gt; toHtml()?&gt;

$catid will contain array of id product is associated with.

我认为一种方法是创建一个产品属性,其中包含需要显示的类别ID,然后您可以检索产品属性。<​​/ p>

<?php $blockID = "free_shipping_" + $productattributevalue ?>

答案 1 :(得分:0)

是的,你是对的。我发现现在$ catid是一个数组。所以我用过 $ catid [1]获取目录ID。所以我的代码看起来像这样

<?php $blockID = "free_shipping_" . $catid[1]?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($blockID)->toHtml();

要查找我有兴趣在静态块名称(free_shipping_4)中使用的目录ID,我使用了以下代码

 SELECT entity_id AS categoryID, value AS categoryName
    FROM catalog_category_entity_varchar
    WHERE attribute_id =4
    LIMIT 0 , 30

现在解决了。虽然必须有一个更好,更简单的方法来做到这一点。