2013-10-03 3 views
0

В файле magento/html/topmenu.html файл выдает элементы меню (т.е. категория, созданная в бэкэнд) Im styling the menus with twitter bootstrap css framenwork. и производит пункты меню с

<ul id="nav"> 
     <?php echo $_menu ?> 
</ul> 

Где я могу редактировать <li> теги классов, произведенные <?php echo $_menu ?>

ответ

5

в меню верхнего уровня является одной из немногих областей, где HTML генерируется внутри класса блока ,

Точный файл: app/code/core/Mage/Catalog/Block/Navigation.php.

Ищите метод _renderCategoryMenuItemHtml в этом файле, который обрабатывает большинство HTML файлов для этого меню.

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

  1. Копия app/code/core/Mage/Catalog/Block/Navigation.php в app/code/local/Mage/Catalog/Block/Navigation.php

  2. Посмотрите на следующий код (внутри функции _renderCategoryMenuItemHtml)

     
    if ($hasActiveChildren) { 
        $classes[] = 'parent'; 
    }

  3. После этого, добавьте следующее:

     
    $classes[] = 'mynewclass'; 
    

  4. Сохранить файл , и обновите все ваши тайники Magento.

+0

Упс - вы правы - спасибо Акселю. –

+0

Неправильная практика переопределения класса путем копирования файла в локальный пул кодов: переопределение должно выполняться внутри модуля. отредактируйте свой ответ, и у вас будет мой голос :) – OSdave

+0

Неплохая практика взломать основной файл, а не отменять его вообще. Я дал прямое решение проблемы. Обобщение того, как разработать расширение, выходит за рамки первоначальной проблемы, с которой сталкивается пользователь. Существует несколько статей, в которых излагаются, как разрабатывать и внедрять расширения; Я оставлю это человеку, чтобы решить, что является хорошей практикой для их ситуации. – Axel

0

Я совершенно новый для развития Magenta и после прочтения этого д & мне потребовалось некоторое время, чтобы выяснить, где найти нужный файл, который отвечает за форму в верхнем меню, потому что по крайней мере в Текущая версия (1.7.0.2) не app/code/core/Mage/Catalog/Block/Navigation.php. Вместо этого это app/code/core/Mage/Page/Block/Html/TopMenu.php. Внутри файла и внутри Mage_Page_Block_Html_Topmenu есть метод _getHTML(), который вы можете изменить, как хотите.

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