0

For layout reasons I needed to have two different header.phtml (header.phtml / header1.phtml). But if I now copy the header block in the page.xml, only the definitions of the latest block seems to work (both of them work independly, but when both blocks are in the page.xml only the latest of both is causing changes).

<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>

Can anybody tell me, where my error is?

4

2 回答 2

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>

然后将您的 page/html/header.phtml 复制到 page/html/header1.phtml 并进行您需要进行的更改。

于 2013-02-20T19:32:28.460 回答
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此外,您应该在自定义主题的布局文件夹中创建一个文件。

于 2013-02-20T20:16:51.103 回答