Запись макета для catalog.topnav
:
<block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
Это означает, что мы используем класс блока Mage_Catalog_Block_Navigation
(возможно) и используем файл шаблона catalog/navigation/top.phtml
.
В файле шаблона мы видим, что рендеринг меню выполняется с помощью метода renderCategoriesMenuHtml()
.
Если мы посмотрим на реализацию этого метода в app/code/core/Mage/Catalog/Block/Navigation.php
, то увидим, что этозаполняется циклом по активным категориям магазина.
Итак, из коробки вы не можете добавить этот файл через обновления макета.
Как вы говорите, естьуже класс блока, который поддерживает добавление ссылок через XML с именем page/template_links
.Я рекомендую изменить XML на что-то вроде:
<block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml">
<block type="page/template_links" name="catalog.topnav.links" as="additional_links">
<action method="addLink">
<label>Our Boutiques</label>
<url>boutiques</url>
<title>Our Boutiques</title>
<prepare>true</prepare>
<urlParams helper="core/url/getHomeUrl"/>
<position>1</position>
<liParams/>
</action>
</block>
</block>
Затем измените файл шаблона на что-то вроде:
<?php $_menu = $this->getLayout()->createBlock('catalog/navigation')->renderCategoriesMenuHtml(0,'level-top') ?>
<?php if($_menu): ?>
<div class="nav-container">
<ul id="nav">
<?php echo $_menu ?>
</ul>
<?php echo $this->getChildHtml('additional_links') ?>
</div>
<?php endif ?>
В блоке page/template_links
используется page/template/links.phtml
шаблон по умолчанию, который включает в себя обертку <ul>
.Если вы хотите включить ссылки в <ul>
, который уже есть в шаблоне catalog/navigation/top.phtml
, вы можете установить другой шаблон в блоке page/template_link
, используя атрибут template=""
, и создать свой собственный шаблон ссылок без <ul>
.