0

我想在类别 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 中不支持的操作数类型

4

2 回答 2

0

$catid = $this->helper('目录/数据')->getProduct()->getCategoryIds(); ?> getLayout()->createBlock('cms/block')->setBlockId($blockID)->toHtml() ?>

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

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

<?php $blockID = "free_shipping_" + $productattributevalue ?>
于 2013-06-27T10:56:37.680 回答
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

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

于 2013-06-28T06:17:39.320 回答