Основной блок переопределения Magento


Я пытаюсь переопределить класс Mage_Catalog_Block_Navigation, расположенный по адресу app/code/core/Mage/Catalog/Block/Navigation.php

Я создал эти три файла:

1.- app/code/local/Global/Catalog/Block/Navigation.php

2.- app/code/local/Global/Catalog/etc/config.xml

3.- app/etc/modules/Global_All.xml

Код:

Global_All.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Global_Catalog>
      <active>true</active>
      <codePool>local</codePool>
    </Global_Catalog>
  </modules>
</config>

Config.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Global_Catalog>
      <version>1.0</version>
    </Global_Catalog>
  </modules>
  <global>
    <blocks>
      <catalog>
        <rewrite>
          <navigation>Global_Catalog_Block_Navigation</navigation>
        </rewrite>
      </catalog>
    </blocks>
  </global>
</config>

Navigation.php

class Global_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation 
{

   protected function _renderCategoryMenuItemHtml(...){
     .......rewriting code for this method.......

   }

}

Я пытался перепишите этот метод, но я не могу, кто-нибудь может меня направить? может быть, проверить, нет ли какой-нибудь опечатки, которую я еще не заметил, или я что-то упустил?

Спасибо,

Author: Wolfgang Leon, 2016-02-18

2 answers

Попробуйте <navigation>Mage_Catalog_Block_Navigation</navigation> и переименуйте свой Naviation.php к

class Global_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation 
{

   protected function _renderCategoryMenuItemHtml(...){
     .......rewriting code for this method.......

   }

}

Наконец, измените свой module.xml к

<modules>
    <Mage_Catalog>
      <active>true</active>
      <codePool>local</codePool>
    </Mage_Catalog>
</modules>
 0
Author: Joets, 2016-02-18 18:03:26

Хорошо. Итак, проблема заключалась в том, что я пытался перезаписать основной файл из Magento. Когда я впервые задал этот вопрос, я создавал модуль, а не перезаписывал существующий. Так что для вас, ребята, если вы хотите правильно использовать файл Magento, вот как вы это делаете. Очень просто.

Я пытался перезаписать Mage_Catalog_Block_Navigation, расположенный по адресу

App/code/core/Mage/Catalog/Block/Navigation.php

Все, что мне нужно для этого, - это создать то же самое корень и папки, хотя и в пределах ЛОКАЛЬНЫХ папок. С учетом сказанного, это будет маршрут для моего класса перезаписи.

App/code/local/Mage/Catalog/Block/Navigation.php

Обратите внимание на ЛОКАЛЬНЫЙ, а не на ОСНОВНОЙ. Тот Navigation.php в основном это тот же основной файл (копирование и вставка), хотя функция, которую я пытался перезаписать

   function protected function _renderCategoryMenuItemHtml(...)

В моем новом созданном файле должен был вернуться другой оператор, отличный от основного файла.

Удачи.

 0
Author: Wolfgang Leon, 2016-10-14 14:11:29