2017-02-21 1 views
0

Я работаю над проектом magento, где я пытаюсь перечислить пункт меню в основной навигации. В этом есть observer за модель. То, что я собираюсь сделать, это добавить другой пункт меню с помощью существующего наблюдателя. Для этого я создал функцию:при добавлении двух элементов в config.xml для отображения навигации. Почему он отображает только один?

class Color_Observer{ 
    // Existing function for "colors" menu item. 
    public function ListMenuItems(){ 
     //code here 
    } 

    // New function for "composite colors" menu item 
    public function MyListMenuItems(){ 
     // 
    } 
} 

и я добавил следующий код в config.xml

<frontend> 
     <events> 
     <page_block_html_topmenu_gethtml_before> 
      <observers> 
       <my_color> 
        <class>my_color/observer</class> 
        <method>ListMenuItems</method> 
       </my_color> 
       <my_color_val> 
        <class>my_color/observer</class> 
        <method>MyListMenuItems</method> 
       </my_color_val> 
      </observers> 
     </page_block_html_topmenu_gethtml_before> 
     </events> 
</frontend> 

Этот код успешного создания меню для composite colors, но он заменяет уже существующий color меню.

Может кто-нибудь, пожалуйста, помогите мне, что происходит? Я новичок в magento.

+0

Try ссылку я надеюсь, что ваша проблема может быть решить. http://inchoo.net/ecommerce/adding-links-to-the-top-menu-in-magento/ – user247217

ответ

0

Добавить тип наблюдателя <type>singleton</type>

<frontend> 
     <events> 
     <page_block_html_topmenu_gethtml_before> 
      <observers> 
       <my_color> 
        <class>my_color/observer</class> 
        <type>singleton</type> 
        <method>ListMenuItems</method> 
       </my_color> 
       <my_color_val> 
        <class>my_color/observer</class> 
        <type>singleton</type> 
        <method>MyListMenuItems</method> 
       </my_color_val> 
      </observers> 
     </page_block_html_topmenu_gethtml_before> 
     </events> 
</frontend> 
Смежные вопросы