2013-02-20 2 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

У вас есть файл header1.phtml в Page/html /? – Rounder

+0

И что вы пытаетесь сделать, для этого потребуется 2 заголовка? .. – Rounder

+0

При каких условиях вы хотите использовать один шаблон против другого? – benmarks

ответ

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

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

Смежные вопросы