如何在Magento中的产品描述中调用特定的静态块?

时间:2013-12-11 01:17:21

标签: magento-1.7

我尝试将以下代码添加到我的描述页面中,在我的产品说明中添加静态块:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('description02')->toHtml() ?>

这很有效。但是,如果我想为不同的产品使用不同的静态块,我该怎么办?我不希望在所有产品上显示相同的静态块。有没有办法可以选择显示哪个静态块?

谢谢!

2 个答案:

答案 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');
?>