1

我有一个 magento 网站,其中我自定义了右侧栏静态块。

它会在除产品页面之外的所有页面上正常显示。

这是否需要在布局 xml 文件、magento 控制面板或其他设计文件中进行编辑?

谢谢!

更新:

问题是全局右侧边栏显示所有内容,但产品页面仍显示旧版本,没有修改。

4

1 回答 1

2

您只需将产品视图 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,这可能也会影响前端显示的内容。

于 2013-08-08T17:02:12.317 回答