2011-09-05 25 views
5

Mô-đun của tôi trong Magento adminpanel có URL giống như http://example.com/index.php/mymodule/ ... và chứa lưới tùy chỉnh với các đơn đặt hàng. Tôi muốn chuyển hướng người dùng đến trang "Chế độ xem đơn đặt hàng" chuẩn khi anh ấy nhấp vào một hàng lưới.Làm thế nào để sử dụng getUrl() trong Magento để tham chiếu đến một mô-đun khác?

điểm
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; 
} 

Nhưng điều này URL để http://example.com/index.php/sales_order/view/ ... thay vì http://example.com/index.php/quản trị/sales_order/xem/... Bất kỳ đề nghị?

UPD. config.xml:

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

Hãy xem cấu hình chính xác từ [Cách lấy URL của trang/phần trong quản trị Magento] (http://stackoverflow.com/questions/6877683/how-to-get-the-url-of -a-page-section-in-magento-admin/6881211 # 6881211) – clockworkgeek

+0

@clockworkgeek Cảm ơn bạn. Vui lòng xem bài đăng cập nhật của tôi. Nó trông giống như trường hợp của config.xml, phải không? – silex

+0

'frontName' của bạn là' mymodule' nhưng nếu bạn sao chép ví dụ gần hơn, nó sẽ có thể sử dụng 'admin' thay thế. – clockworkgeek

Trả lời

7

Rất đơn giản bạn cần phải thay thế sales_order/view với */sales_order/view. * có nghĩa là sử dụng bộ định tuyến hiện tại có trong quản trị viên là adminhtml.

Sửa
Để giải thích một cách chi tiết hơn đặt này trong cấu hình của bạn,

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

Bây giờ giá trị */mymodule/index sẽ tạo ra một URL http://example.com/index.php/admin/mymodule/index mà lần lượt sẽ được tải file Foo/Mymodule/controllers/Adminhtml/MymoduleController.php và cố gắng tìm phương pháp Foo_Mymodule_Adminhtml_MymoduleController::indexAction(). Nếu phương thức tồn tại nó được chạy, nếu không bộ định tuyến quản trị sẽ thay đổi và hiển thị 404 hoặc chuyển hướng đến trang tổng quan.

+0

Với '*/sales_order/view' nó trỏ tới' http: // example.com/index.php/mymodule/sales_order/view/'. Tôi cũng ngạc nhiên. – silex

+1

Cảm ơn bạn đã bình luận ở trên, tôi đã viết lại hoàn toàn định tuyến và đường dẫn trong cấu hình bố cục, vì vậy mọi thứ hoạt động tốt ngay bây giờ với '*/sales_order/view'. – silex

+0

Bạn đã viết lại những thứ như thế nào? Tôi có chính xác cùng một vấn đề! sử dụng **/sales_order/view * cũng chuyển hướng tôi đến * index.php/mymodule/sales_order/view/* thay vì * index.php/admin/sales_order/view/*. Cảm ơn bạn đã giúp đỡ! – EOB

Các vấn đề liên quan