静态块中的magento CE v1.6 toplinks

时间:2012-05-21 07:27:04

标签: magento

我想将Magento CE 1.6中的topLinks显示在一个静态块中。这是因为我的网站运行了四个不同的商店[多商店 - 不同的域名],并且只需要在两个商店中使用topLinks,同时使用一个模板。

我确实尝试转换php调用[getChildHtml('topLinks'); ?>]进入静态块内的块标记但未成功。已经深入研究了xml中的template_links [由各种xmls制作],但无法理解为如何在静态块中创建{{block}}以显示topLinks。

对静态块的调用已经到位,只需要帮助实现内部的topLinks。

任何帮助将不胜感激。

最诚挚的问候

的Fab


微调我的问题:

基本上我需要修改page.xml

<block type="page/template_links" name="top.links" as="topLinks"/>

<layout>
<static_block_top_links>
    <reference name="header">
        <action method="unsetChild">
            <name>topLinks</name>
        </action>
        <block type="cms/block" before="-" name="some_name" as="topLinks">
            <action method="setBlockId">
                <name>some_static_block</name>
            </action>
        </block>
    </reference>
</static_block_top_links>

<STORE_store>
    <update handle="static_block_top_links" />
</STORE_store>

<STORE_law>
    <update handle="static_block_top_links" />
</STORE_law>

2 个答案:

答案 0 :(得分:1)

使用local.xml实现更改:

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
        <reference name="header">
            <!-- Unset original toplinks block -->
            <action method="unsetChild">
                <name>topLinks</name>
            </action>

            <!-- Add static block in place with same alias -->
            <block type="cms/block" before="-" name="some_name" as="topLinks">
                <action method="setBlockId">
                    <name>some_static_block</name>
                </action>
            </block>
        </reference>
    </default>
</layout>

请注意'some_name'可以是除“top.links”之外的任何内容,因为这会导致核心XML文件中的一些内容尝试对您的cms块执行操作。

为了响应您的编辑,您可以轻松地仅针对某些商店执行此操作:

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <static_block_top_links>
        <reference name="header">
            <action method="unsetChild">
                <name>topLinks</name>
            </action>
            <block type="cms/block" before="-" name="some_name" as="topLinks">
                <action method="setBlockId">
                    <name>some_static_block</name>
                </action>
            </block>
        </reference>
    </static_block_top_links>

    <STORE_myfirststore>
        <update handle="static_block_top_links" />
    </STORE_myfirststore>

    <STORE_mysecondstore>
        <update handle="static_block_top_links" />
    </STORE_mysecondstore>
</layout>

答案 1 :(得分:0)

对于拥有magento CE 1.6+多商店多域的任何人而言,您都希望删除某些商店的topLinks,这是正确的方法。

在app / design / frontend / default / yourtheme / layout /

中创建local.xml

你的local.xml应该是这样的

<?xml version="1.0" encoding="UTF-8"?>
<layout>
<STORE_mystore1>
    <reference name="header">
        <action method="unsetChild">
            <name>topLinks</name>
        </action>
    </reference>
</STORE_mystore1>

<STORE_mystore2>
    <reference name="header">
        <action method="unsetChild">
            <name>topLinks</name>
        </action>
    </reference>
</STORE_mystore2>   
</layout>

将mystore1和mystore2替换为Store View下的代码[Admin - &gt;管理商店 - &gt;商店视图名称 - &gt;代码]

确保以UTF-8

编码layout.xml

在app / design / frontend / default / yourtheme / layout /文件夹中上传layout.xml。

刷新缓存。

我要感谢Daniel Sloof和Robert Popovic的意见。