Основной блок переопределения 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.......
}
}
Я пытался перепишите этот метод, но я не могу, кто-нибудь может меня направить? может быть, проверить, нет ли какой-нибудь опечатки, которую я еще не заметил, или я что-то упустил?
Спасибо,
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>
Хорошо. Итак, проблема заключалась в том, что я пытался перезаписать основной файл из 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(...)
В моем новом созданном файле должен был вернуться другой оператор, отличный от основного файла.
Удачи.