Magento:为后台操作生成url(带密钥)


Magento: generating url for a backend action (with key)

我正在开发一个演示Magento商店(CE v1.7)

我想为模块(Mymodule)的控制器(索引)的动作(索引)生成一个链接,我想在主页中显示该链接,这样我就可以直接访问Mymodule功能

如何实现这一点(不禁用密钥生成)?

我已经尝试了以下代码,但我被重定向到仪表板:

<?php $key = Mage::getSingleton('adminhtml/url')->getSecretKey("acompany_mymodule/index/","index"); ?>
    <a href="<?php echo Mage::helper("adminhtml")->getUrl("acompany_mymodule/index/index/",array("key" => $key)); ?>">My action </a>

使用时,应自动向URL添加密钥

Mage::helper("adminhtml")->getUrl("acompany_mymodule/index/index")

前提是在系统配置中启用了密钥。

无论如何,在你代码的这一部分:

<?php 
      $key = Mage::getSingleton('adminhtml/url')
             ->getSecretKey("acompany_mymodule/index/","index"); 
 ?>  

作为第一个参数,您提供了一个带有控制器的路由,其中方法只是在等待一个控制器名称。

不要使用adminhtml/以外的任何其他内容作为url的开头,因为magento 1.9.2.2禁止使用其他内容。

使用以下代码获取带有密码的url

Mage::helper("adminhtml")->getUrl("adminshipper/process/index");

请参阅以下文章:在Magento中生成带有密钥和参数的后端管理URL。

不要使用adminhtml/以外的任何其他内容作为url的开头,因为magento 1.9.2.2禁止使用其他内容。

其他解决方案不适用于我,因为它们不包括管理面板的基本URL(默认情况下为Admin)。我必须这样做才能得到正确的网址:

Mage::helper('adminhtml')->getUrl('adminhtml/name_of_custom_extension/name_of_controller/');