Я знаю, что есть много примеров для этой проблемы, и я думаю, что я прочитал их все, по крайней мере, я чувствую себя немного смущенным :-) Я думаю, прежде всего, мне нужен базовый концепт, соответственно, лучше понимание того, как лучше всего изменить информационную панель внешнего интерфейса клиента и дополнить ее дополнительными методами. Я немного застрял с этим, может быть, это неправильный путь, а может и нет, надеюсь, вы поможете мне найти правильный путь.
Все необходимые файлы находятся в:
Приложение / код / местные / Компания / Заказчик / и т.д. / config.xml
Приложение / код / местные / Компания / Клиент / контроллеры / AccountController.php
Приложение / код / местные / Компания / Клиент / контроллеры / IndexController.php
Атм Я играю с этими путями:
domain.com / клиент /
перезаписано:
<frontend>
<routers>
<customer>
<use>standard</use>
<args>
<module>Company_Customer</module>
<frontName>customer</frontName>
</args>
</customer>
</routers>
</frontend>
вышеуказанный код работает, класс перегрузки выполняется с помощью следующей функции:
function indexAction();
и путь: domain.com / customer / или domain.com / customer / index / является функциональным.
Пока все хорошо. Но теперь мне также нужны все другие пути и их функциональность, например,
путь domain.com / customer / account / , который обычно выполняется и направляется по следующему пути:
Приложение / код / ядро / Mage / Клиент / контроллеры / AccountController.php
и вот в чем суть, можно ли загрузить AccountController путем выполнения или загрузить их в
Класс IndexController.php с новым методом, например, function accountAction();
и остановка маршрутизации Magento
на вышеуказанный основной путь? Или лучше сделать это так, как я переписал magento router для моего собственного модуля, чтобы:
Приложение / код / местные / Компания / Клиент / контроллеры / AccountController.php
Возможно, есть другие способы, но мой роутер не работает:
<frontend>
<routers>
<customer_account>
<use>standard</use>
<args>
<module>Company_Customer_Account</module>
<frontName>customer_account</frontName>
</args>
</customer_account>
</routers>
</frontend>
EDIT:
Это из error.log:
2011-07-25T10:36:46+00:00 ERR (3): Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'Mage/Customer/AccountController.php' for inclusion (include_path='/html/magento/app/code/local:/html/magento/app/code/community:/html/magento/app/code/core:/html/magento/lib:.:/usr/local/php/lib/php:/usr/local/php/lib/php/PEAR') in /html/magento/lib/Varien/Autoload.php on line 93
Я думаю, это означает, что роутер работает, но файл не найден, верно?!
Любые предложения будут великолепны. Спасибо!
--------------------------------------------
---------------- UPDATE ----------------
--------------------------------------------
Спасибо за ваш ответ. Я уже пробовал альтернативную переписать в глобальном разделе раньше:
<rewrite>
<Company_Customer_Account>
<from><![CDATA[#^/customer/account/#]]></from>
<to>/customer/account/</to>
</Company_Customer_Account>
</rewrite>
и с вашим кодом:
<rewrite>
<Company_Customer_Account>
<from>/customer/account/index/</from>
<to>/customer/account/index/</to>
</Company_Customer_Account>
</rewrite>
оба не работают, чего мне не хватает?
Вот AccountController.php
<?php
//require_once 'Mage/Customer/controllers/AccountController.php';
class Extension_Modul_AccountController extends Mage_Customer_AccountController {
# Overloaded indexAction
public function indexAction()
{
echo "executed";
parent::indexAction();
}
}