2013-02-20 40 views
0

为了布局的原因,我需要两个不同的header.phtml(header.phtml/header1.phtml)。但是,如果我现在复制page.xml中的头部块,则只有最新块的定义似乎工作(它们都独立工作,但是当两个块位于page.xml中时,只有最新的两个块导致更改) 。Magento 1.7 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

你在Page/html /中有一个文件header1.phtml吗? – Rounder 2013-02-20 19:10:09

+0

另外你想要做什么需要2个头? .. – Rounder 2013-02-20 19:25:30

+0

在什么条件下你想使用一个模板与另一个? – benmarks 2013-02-20 20:06:35

回答

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> 

根据指定的模板路径上,你应该创建文件应用程序/设计/ frontend/base/default/page/html/header1.phtml,或者至少在你的自定义主题下创建这个文件。

此外,您应该在自定义主题的布局文件夹中创建一个local.xml文件。

+0

这对我有用。非常感谢。 – s1lv3r 2013-02-20 23:35:04

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页/ HTML/header1.phtml并进行更改你需要制作。

+0

无法评论此优点/缺点,但它确实对我有用。 – johnsnails 2014-09-15 02:53:23