2011-07-29 19 views
3

私はこの回答を確定できないようです。管理バックエンドのページにどのようにURLを取得しますか?Magentoのページ/セクションのURLを取得する方法

たとえば、フロントモジュール名がのコントローラを使用しているモジュールをmymoduleとしましょう。私が呼び出す場合:

$this->getUrl('mymodule/controller/action') 

私が手:

http://mydomain.com/index.php/mymodule/controller/action 

それは管理frontnameが含まれていないので、これは動作しません。

は、私はこれを使用して言及this threadが見つかりました:

URLに管理frontnameを追加していませんが
Mage::helper("adminhtml")->getUrl(); 

のいずれか...そうadminhtmlヘルパーを通過させることのポイントは何ですか?スレッドはまた、あなたが管理frontnameを取得するためにこれを使用することができます言う:

Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName'); 

は、だから私はこれらの2つの方法を使用して、正しいURLを構築することが出来るのですか、これを達成する簡単な方法はありますか?私は容易な方法がなければならないと思いますが、私はそれを理解できません。

感謝:)

+0

フロントネームを文字列として保存してから、 'Mage :: helper( 'adminhtml' - > getUrl($ frontname。 '/ mymodule/controller/action')'を呼び出すと、代わりに私は '... getUrl($ frontname。'/ mymodule'、array( 'controller' => 'action')) 'URLに 'index'を追加します(_http://mydomain.com/index.php/admin/mymodule/index/controller/action_)。だから今私は十分に混乱しています:(助けてください!!! – BrianVPS

答えて

1

私は、私はこの1つを考え出したと思うが、私は誤解だ場合、あなた自身の答えをコメントするか追加してください。私の最初の問題は、私のconfig.xmlが正しく設定されていないことでした。私は<admin>の代わりに<frontend><routers>要素の下に持っていました。私も<use>admin</use>の代わりに<use>standard</use>だった。コピー貼り付けの間違い;)

しかし、それでも返されるURLは変更されていないようですが、それは問題には見えません。リダイレクト先のURLに管理者のフロントネームが含まれていなくても、コントローラに正しく当てられます。だから私はそれについて少し混乱していますが、関係なく、それは働いています。

5

実際には、$ this-> getUrl( 'mymodule/controller/action')を介してURLを取得することを意図しています。しかし、この混乱はルーティングシステムの誤解を引き起こしています。 adminタグは管理ルータの使用を指定し、mymoduleはURLで使用されるフロント名を指定します。基本的には自分のフロントネームを作成しています。管理者のフロント名を使用するには、コントローラの書き換えを使用してそれを達成する必要があります。以下のような何か:これは何

<admin> 
    <routers> 
     <adminhtml> 
      <args> 
       <modules> 
        <mymodule after="Mage_Adminhtml">Your_Mymodule</mymodule> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

はそれがMage_Adminhtmlコントローラ上のものを見つけていない場合にのみ、適切な行動のためにあなたのコントローラを見てルーティングシステムを構成しています。

この再書き込みを使用すると、URLがadminhtmlによって設定されたフロントネームの下に落ちるので、getURLの呼び出しで 'mymodule'の代わりに 'adminhtml'を使用する必要があります。

あなたが知ったことは、自分のフロントネームを取得するための正しい解決策であり、管理者のフロントネームを気にしない限り、うまくいきます。 :)

+1

+1)これは、管理URLを作成する従来の方法です。 – clockworkgeek

関連する問題