この問題について多くの例があります。私はそれらのすべてを読んでいると思います。少なくとも私はそう感じます。ちょっと混乱しました。顧客のフロントエンドダッシュボード全体を変更し、追加の方法でそれを拡張する最良の方法はどのようになっているのかをより良く理解することができます。私はこれでリッテビットを貼りました、多分これは間違った方法です、おそらく、うまくいけばあなたは正しい方法を見つけるのを助けることができます。Magentoはコントローラーをオーバーロードしています
すべての必要なファイルは次の場所にあります。
アプリ/コード/ローカル/会社/お客様の/ etc/config.xmlに
アプリ/コード/ローカル/会社/顧客/コントローラ/ AccountController
アプリ/コード/ローカル/会社/顧客/コントローラ/ IndexController.php
の.php
:上記のコードが動作している<frontend>
<routers>
<customer>
<use>standard</use>
<args>
<module>Company_Customer</module>
<frontName>customer</frontName>
</args>
</customer>
</routers>
</frontend>
、オーバーロードクラスは、以下の機能が実行されますによって上書き
domain.com/customer/
:気圧私は、これらのパスのと遊びます
function indexAction();
とパス:domain.com/customer/またはdomain.com/customer/index/が機能しています。
これまでのところ、とても良いです。しかし、私は他のすべての経路とその機能も必要としています。ここ
アプリ/コード/コア/メイジ/顧客/コントローラ/ AccountController.php
とだ: 通常、次のパスに実行され、ルーティングされdomain.com/customer/account/パス、要点は、AccountControllerをロードして実行するか、 IndexController.phpクラスに新しいメソッドでロードすることです。 function accountAction();
とMagentoルーティング を上記のコアパスに停止しますか?/
アプリ/コード/ローカル/会社/顧客/コントローラが
多分AccountController.php:またはそれはより良い私がすることによりに、私自身のモジュールにMagentoのルータを書き換えたこの方法を行うことです他のいくつかの方法がありますが、私のルーターが機能していません。
<frontend>
<routers>
<customer_account>
<use>standard</use>
<args>
<module>Company_Customer_Account</module>
<frontName>customer_account</frontName>
</args>
</customer_account>
</routers>
</frontend>
EDIT:
これはエラーからです。ログ:
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();
}
}
を私は...あなたが適切に元のファイルにリダイレクトされていなかったと思うエラーがそれを見つけることができなかったと述べているよう '魔道士/ customer/accountcontroller.php'を読み込みたいのですが、 'app/code/core/Mage/Customer/controllers/AccountController.php'を読み込みたいのですが、必要なものにリダイレクトされていることを確認してください – Vijay
@kvijayhariええ、元のファイルにリダイレクトします。私がしたいのは、 'app/code/local/Company/Customer/controllers/AccountController.php'にある独自のコントローラをインクルードすることだけです。あなたが言ったように 'mage/customer/accountcontroller.php'にファイルが見つかりませんでした。これは私のモジュールディレクトリに**フォルダ**がないためです。しかし、正しいものを手に入れるためには、何をしなければならないのですか? – tecmec
それは動作していないことをどのように知っていますか?以前の呼び出しを単独で置き換えている可能性がありますので、その違いはわかりません。私は問題がfrontnameであると思うそれは顧客 である必要があり、1つのモジュールbtwのための1つのfrontnameがあるはずです。さらに、indexAction()を使用してAccountController.phpが必要です。 –
Nasaralla