Magento边栏定制

时间:2013-08-06 18:29:47

标签: magento customization

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

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

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

谢谢!

更新

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

1 个答案:

答案 0 :(得分: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-&gt; getChildHtml('');因为没有块名称表示Magento应加载所有子html块。)

在这种情况下,我们必须更改header.phtml,并在该文件中的某个位置(/app/design/frontend/your_package/your_theme/page/html/header.phtml),您需要添加:

<?php echo $this->getChildHtml('new_header_block'); ?>

您希望将块添加到标题中的位置。

这应该让你开始朝着正确的方向前进。确保您的任何网页/产品/类别都没有在后端的记录中包含任何自定义布局xml,这可能会影响正面显示的内容。