0

カテゴリ 4 の商品詳細ページに静的ブロックを追加したい。

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

次に、管理者で 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 が配列であることを知りました。そこで、$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 に答える
0

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

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

1 つの方法は、製品属性を作成することだと思います。これには、表示する必要があるカテゴリ ID が含まれており、製品属性を取得できます。

<?php $blockID = "free_shipping_" + $productattributevalue ?>
于 2013-06-27T10:56:37.680 に答える