我尝试将以下代码添加到我的描述页面中,在我的产品说明中添加静态块:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('description02')->toHtml() ?>
这很有效。但是,如果我想为不同的产品使用不同的静态块,我该怎么办?我不希望在所有产品上显示相同的静态块。有没有办法可以选择显示哪个静态块?
谢谢!
答案 0 :(得分:2)
您可以按以下步骤操作:
从目录中创建新的文本类型产品属性 - &gt;属性并将其添加到目录中使用的属性集中 - &gt;属性集
在此之后,您可以在添加/编辑产品时在此字段中添加不同的静态块名称。
在产品详细信息页面上使用与上面相同的内容,只需使用静态块从上面创建的属性中获取名称。
希望这会有所帮助。
让我们假设您创建了一个名为“static_block”的新属性,然后转到属性集,单击您要用于显示该块的产品的集合。
将static_block从unassigned拖放到已分配的属性并保存属性集。
在此之后为ex:block_1,block_2
创建多个静态块编辑产品,在上面指定的字段中输入block_1或block_2
在产品描述模板之后,即catalog / product / view.phtml,按照以下示例添加代码:
<?php
$blockId = $_product->getData('static_block');
OR
$blockId = $_product->getStatic_block();
无论哪个有效
echo $this->getLayout()->createBlock('cms/block')->setBlockId($blockId)->toHtml() ?>
你可能需要在上面的代码中进行调整,因为我没有测试过这个。
希望这有帮助。
答案 1 :(得分:1)
1)创建属性调用者,例如 static_block_description_code
2)将此属性附加到管理部分中设置的正确属性(设置,您使用的是您想要的产品)
3)转到(在我的例子中)app / design / frontend / PACKAGE / default / template / catalog / product / view / description.phtml 和搜索行负责显示标准说明 我有:`
<div class="std">
<?php echo $this->helper('catalog/output')->productAttribute($this->getProduct(), $_description, 'description') ?>
</div>`
我把它改成了`
<div class="std block-description">
<?php echo $this->helper('catalog/output')->productAttribute($this->getProduct(), $_description, 'description') ?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($block_description)->toHtml() ?>
</div>`
在这个文件的顶部,我添加了:
<?php $_product = $this->getProduct(); ?>
<?
$block_description = $_product->getData('static_block_description_code');
?>