【问题标题】:add cms block to product page将 cms 块添加到产品页面
【发布时间】:2014-05-08 14:05:04
【问题描述】:

早安,

我想在单个产品页面上将 [name="product.info.simple" as="product_type_data"] 块替换为 CMS 块。 [1] 下面的最后一个例子看起来很有希望。 [2] 下面是我尝试的布局更新 XML。此布局更新确实删除了 product_type_data 块,但产品页面中缺少 available_soon 块。

是否可以使用 XML 布局更新将 CMS 块添加到单个产品页面?任何线索将不胜感激。

谢谢,

-本

[1] http://magebase.com/magento-tutorials/5-useful-tricks-for-your-magento-local-xml/

[2]

<reference name="product.info">
<action method="unsetChild">
<name>product_type_data</name>
</action>
<block type="cms/block" name="available_soon" before="-">
<action method="setBlockId"><block_id>available-soon</block_id></action>
</block>
</reference>

【问题讨论】:

    标签: xml magento layout


    【解决方案1】:

    尝试以下方法:

    仔细检查静态块标识符是否为“available_soon”。

    将以下内容添加到您的产品页面 > 自定义布局:

    <reference name="product.info">
     <action method="unsetChild">
      <name>product_type_data</name>
     </action>
     <block type="page/html" name="available_temp" as="available_temp" template="page/html/available_temp.phtml">
      <action method="setBlockId">
       <block_id>available_temp</block_id>
      </action>
     </block>
    </reference>
    

    在 app/design/frontend/default/YOUR_THEME/template/page/html/available_temp.phtml 创建以下文件 并输入这一行:

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

    【讨论】:

    • 感谢您的建议。我将标识符从 available-soon 更改为 available_soon 并尝试了您建议的布局更新。不幸的是,产品页面中仍然缺少 available_soon 块。清除缓存没有帮助。
    • 我需要更改布局和模板,但 XML 布局更新只更改了布局。从 Magento Designer's Guide 的第 48 页:“您已经看到 Magento 中的布局文件控制主题中每个内容块的存在或不存在。具体而言,在该块内呈现的内容由模板文件控制。” Magento 布局和模板的类比可能是 HTML DOM 和 CSS。即使我在 DOM 中添加了一个块,它仍然可能是隐藏的。即使我添加 CSS 以使块可见,它也可能针对 DOM 中不存在的块。
    • 尝试根据我上面所做的编辑更改您的代码。使用布局更新 XML > 模板 > 静态块,您可以完成此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    相关资源
    最近更新 更多