我有一个 magento 网站,其中我自定义了右侧栏静态块。
它会在除产品页面之外的所有页面上正常显示。
这是否需要在布局 xml 文件、magento 控制面板或其他设计文件中进行编辑?
谢谢!
更新:
问题是全局右侧边栏显示所有内容,但产品页面仍显示旧版本,没有修改。
我有一个 magento 网站,其中我自定义了右侧栏静态块。
它会在除产品页面之外的所有页面上正常显示。
这是否需要在布局 xml 文件、magento 控制面板或其他设计文件中进行编辑?
谢谢!
更新:
问题是全局右侧边栏显示所有内容,但产品页面仍显示旧版本,没有修改。
您只需将产品视图 xml 更新添加到您的 local.xml 布局文件(或创建它)。该文件将位于:
/app/design/frontend/your_package/your_theme/layout/local.xml
您需要的 xml 的精简版本是:
<?xml version="1.0"?>
<layout version="0.1.0">
<!-- Layout Handle for Product View Page -->
<catalog_product_view>
<!-- Reference Pointing to Right Sidebar -->
<reference name="right">
<!-- Enter All Right Sidebar Layout Updates Here -->
</reference>
</catalog_product_view>
</layout>
如果您将右侧边栏重命名为其他名称,请将上面的参考名称更改为您更改的名称。以下是一些快速参考,展示了您可以通过 local.xml 进行哪些安排:
<reference name="right">
<!-- Removes Block By Name -->
<remove name="name_of_removed_block"/>
<!-- Insert Moved Block (Must Unset First, See Left Reference) -->
<action method="insert">
<blockName>name_of_unset_block</blockName>
<siblingName>name_of_adjacent_block</siblingName>
<after>1</after> <!-- 0 = Before / 1 = After Sibling Block -->
</action>
</reference>
<reference name="left">
<!-- Unset Block By Name, Can Be Inserted Elsewhere As Above -->
<action method="unsetChild">
<name>name_of_unset_block</name>
</action>
</reference>
<!-- Blocks Left and Right Automatically Load All Child Html -->
<reference name="right">
<!-- Load New Block From Template File -->
<block type="core/template" name="new_block_name" template="page/html/newblock.phtml" after="adjacent_block_name" />
</reference>
<!-- Some Blocks (Like Header) Require Child Html to be Called After Set in XML -->
<reference name="header">
<!-- Adding a Block Below Won't Be Enough To Add Our Template File Here -->
<block type="core/template" name="new_header_block" template="page/html/headerblock.phtml" />
</reference>
并非所有添加的块都会立即显示,有时您需要进入父块的模板文件以将子块添加到您想要的位置。在上面的示例中,我使用了“标题”块,对于实际添加的任何内容,我必须直接编辑 .phtml 文件。(除非您将 header.phtml 更改为仅使用 $this->getChildHtml(''); 因为没有块名称表示 Magento 应该加载所有子 html 块。)
在这种情况下,我们必须对 header.phtml 进行更改,并且您需要在该文件 (/app/design/frontend/your_package/your_theme/page/html/header.phtml) 中的某个位置添加:
<?php echo $this->getChildHtml('new_header_block'); ?>
您希望在哪里看到您的块添加到标题中。
这应该让你朝着正确的方向开始。确保您的页面/产品/类别的后端记录中没有任何自定义布局 xml,这可能也会影响前端显示的内容。