我想将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>
答案 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的意见。