2010-10-21 2 views
2

Я создал модуль с несколькими различными контроллерами и, следовательно, разными страницами.Magento layout module_default

Я хочу иметь боковую панель по умолчанию на каждой из моих собственных страниц, но не на остальной части сайта.

, когда я использую <default></default>, он, очевидно, распространяется по всему сайту.

Когда я пробую <mymodule_default></mymodule_default>, ничего не происходит.

Поэтому мне остается копировать и вставлять весь макет для каждой отдельной страницы моего модуля.

Есть ли способ в мафитовых макетах указывать только один раз, некоторый xml, который должен быть общим для каждой страницы, принадлежащей модулю?

+1

Я думаю, что вы, возможно, потеряли некоторые фрагменты кода в вопросе, можете ли вы редактировать и повторно отправлять сообщения? Короткий ответ на ваш вопрос: «Да, вы должны иметь возможность указать один раз», но сначала рассмотрим остальные ваши примеры! :) –

ответ

5

Несомненно, это определенно возможно. Когда вы загружаете макет с использованием loadLayout, существуют неявные аргументы функции, даже если они обычно называются аргументами sans. Функция loadLayout фактически примет одну или несколько строк для загрузки макетов по умолчанию. Это означает, что вы можете сделать это:

$this->loadLayout(array('default', 'your_layout_handle')); 

Определить макет для этого обращаться, как так:

<layout> 
    <your_layout_handle> 
     <reference name="left"> 
      <block type="yourmodule/yourblock" /> 
     </reference> 
    </your_layout_handle> 
</layout> 

Надежда, что помогает!

Спасибо, Джо

+1

Отлично! Кажется, это сработало. Должен признаться, в настоящее время много пурпурно похоже на вуду. Его так плохо документировано, и это занимает много времени, чтобы делать очень простые вещи. Я начинаю думать, что было неправильным решением перейти к magento для развития электронной торговли. – David

+0

5 лет спустя вы все еще помогли кому-то :) спасибо! –

+1

@NicolasD a) ничего себе. геэз. старый. б) рад, что это помогло: D –

1

Для каждого раздела макета, относится к одной из страниц добавить ссылку на обновление.

<mymodule_page_index> 
    <update handle="mymodule_default"/> 
</mymodule_page_index> 

То же самое используется для страниц клиентской учетной записи в customer.xml.

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