2011-09-05 18 views
5

Magento adminpanelの私のモジュールは、http://example.com/index.php/mymodule/ ...のようなURLを持ち、オーダーのカスタムグリッドを含んでいます。ユーザーがグリッド行をクリックすると、標準の「Order View」ページにリダイレクトしたいhttp://example.com/index.php/sales_order/view/MagentoでgetUrl()を使用して別のモジュールを参照する方法?

public function getRowUrl($row) 
{ 
    if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) { 
     return $this->getUrl('sales_order/view', array('order_id' => $row->getId())); 
    } 
    return false; 
} 

しかし、このURLのポイント...代わりにhttp://example.com/index.php/管理者の/SALES_ORDER /ビュー/ ...どんな提案?

UPD。 config.xmlの

<admin> 
    <routers> 
     <mymodule> 
      <use>admin</use> 
      <args> 
       <module>Foo_Mymodule</module> 
       <frontName>mymodule</frontName> 
      </args> 
     </mymodule> 
    </routers> 
</admin> 
+1

[Magento管理者のページ/セクションのURLを取得する方法](http://stackoverflow.com/questions/6877683/how-to-get-the-url-of)から正しい設定を見てください。 -a-page-section-in-magento-admin/6881211#6881211) – clockworkgeek

+0

@clockworkgeekありがとう。私の最新の投稿を見てください。 config.xmlの場合と同じように見えますか? – silex

+0

あなたの 'frontName'は' mymodule'ですが、もっと厳密にこの例をコピーすると、代わりに 'admin'を使うことができます。 – clockworkgeek

答えて

7

は、簡単に言えば、あなたは*/sales_order/viewsales_order/viewを交換する必要があります。 *は、管理者のadminhtmlである現在のルータを使用することを意味します。より詳細に説明するの

編集
あなたの設定でこれを入れて、

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

今値*/mymodule/indexが順番にファイルFoo/Mymodule/controllers/Adminhtml/MymoduleController.phpをロードし、方法を見つけようとしますURL http://example.com/index.php/admin/mymodule/indexを生成します。 Foo_Mymodule_Adminhtml_MymoduleController::indexAction()。メソッドが存在する場合はそれが実行され、そうでない場合は管理ルータが引き継ぎ、404を表示したり、ダッシュボードにリダイレクトしたりします。

+0

'*/sales_order/view'では' http:// example.com/index.php/mymodule/sales_order/view/'を指しています。私はまた驚いています。 – silex

+1

上記のおかげでありがとう、私は完全にレイアウト設定で経路とパスを書き直しました。だから、 '*/sales_order/view'ですべてうまく動作します。 – silex

+0

どのように物事を書き直しましたか?私はまったく同じ問題を抱えています! **/sales_order/view *を使用すると、* index.php/admin/sales_order/view/*の代わりに* index.php/mymodule/sales_order/view/*にリダイレクトされます。ご協力いただきありがとうございます! – EOB

関連する問題