Я пытаюсь переопределить magento Mage \ Catalog \ controllers \ ProductController.php с модулем. В моем модуле я пробую:
\ И т.д. \ config.xml
<global> <rewrite> <aion_fbpage_catalog_productcontroller> <from><![CDATA[#^catalog/product/#]]></from> <!-- Mage_Catalog_ProductController --> <to>fbpage/catalog_product/</to> <!-- Aion_FbPage_Catalog_ProductController --> </aion_fbpage_catalog_productcontroller> </rewrite> </global> <frontend> <routers> <fbpage> <use>standard</use> <args> <module>Aion_FbPage</module> <frontName>fbPage</frontName> </args> </fbpage> </routers> </frontend>
\ Контроллеры \ Каталог \ ProductController.php
<?php require_once "Mage/Catalog/controllers/ProductController.php"; class Aion_FbPage_Catalog_ProductController extends Mage_Catalog_ProductController { // My override stuff }
И когда я пытаюсь добраться до своего продукта, чтобы посмотреть, что делает переписывание, я получаю эту ошибку:
Неустранимая ошибка: вызовите функцию-член getMetaTitle () для не-объекта в C: \ xampp \ htdocs \ igneum \ app \ code \ core \ Mage \ Catalog \ Block \ Product \ View.php в строке 56
Я получаю то же сообщение об ошибке, если я ничего не делаю в своем классе
вы можете использовать, как показано ниже
Отредактируйте Package/Module/etc/config.xml
<?xml version="1.0"?> <config> ... Your Other config here .... <frontend> <routers> <catalog> <args> <modules> <Package_Catalog before="Mage_Catalog">Package_Catalog</Package_Catalog> </modules> </args> </catalog> </routers> </frontend> </config>
Теперь ваш контроллер уже готов.
include(Mage::getBaseDir()."/app/code/core/Mage/Catalog/controllers/ProductController.php"); class Package_Catalog_ProductController extends Mage_Catalog_ProductController { public function viewAction(){ echo __METHOD__; } } ?>