出于布局原因,我需要有两个不同的header.phtml(header.phtml / header1.phtml)。但是,如果我现在复制page.xml中的标题块,则只有最新块的定义似乎有效(两者都可以独立工作,但是当两个块都在page.xml中时,两者中的最新块都会导致更改)
<block type="page/html_header" name="header" as="header">
<block type="page/template_links" name="top.links" as="topLinks"/>
<block type="page/html_wrapper" name="top.bar" as="topBar" translate="label">
<label>Breadcrumbs</label>
<action method="setElementClass"><value>top-bar</value></action>
</block>
</block>
<block type="page/html_header1" name="header1" as="header1">
<block type="page/template_links" name="top.links" as="topLinks"/>
<block type="page/html_wrapper" name="top.bar" as="topBar" translate="label">
<label>Breadcrumbs</label>
<action method="setElementClass"><value>top-bar</value></action>
</block>
</block>
有人可以告诉我,我的错误在哪里吗?
答案 0 :(得分:1)
您的问题出在html_header1
的阻止类型中试试这个:
<block type="page/html_header" name="header1" as="header1" template="page/html/header1.phtml">
<block type="page/template_links" name="top.links" as="topLinks"/>
<block type="page/html_wrapper" name="top.bar" as="topBar" translate="label">
<label>Breadcrumbs</label>
<action method="setElementClass"><value>top-bar</value></action>
</block>
</block>
然后将您的页面/ html / header.phtml复制到page / html / header1.phtml并进行您需要进行的更改。
答案 1 :(得分:0)
你做得太多了。
如果只需切换初始块实例的模板,以下部分就足够了:
<action method="setTemplate" block="header"><tpl>page/html/header1.phtml</tpl></action>
我说“部分足够”,因为这个指令显然需要在某些情况下执行。环境(例如特定视图或视图类型)映射到不同的布局更新句柄。例如,如果要为登录的客户使用不同的标头模板,则完整的布局XML将如下所示:
<?xml version="1.0"?>
<layout>
<customer_logged_in>
<action method="setTemplate" block="header"><tpl>page/html/header1.phtml</tpl></action>
</customer_logged_in>
</layout>
根据指定的模板路径,您应该创建文件 app / design / frontend / base / default / page / html / header1.phtml ,或者至少在自定义主题下创建此文件
此外,您应该在自定义主题的布局文件夹中创建local.xml
文件。