Magento: генерация URL-адреса для бэкэнд-действия (с ключом)
Я работаю над демо-магазином 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>
Ответы
Ответ 1
При использовании
секретный ключ должен автоматически добавляться к 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 запрещает все остальное.
Ответ 2
используйте следующий код для получения url с секретным кодом
Mage::helper("adminhtml")->getUrl("adminshipper/process/index");
Пожалуйста, обратитесь к следующей статье: Создание URL-адреса Backend-Admin с ключом и параметрами в Magento.
НЕ ИСПОЛЬЗУЙТЕ что-либо еще, кроме adminhtml/
, как начало URL-адреса, потому что magento 1.9.2.2 запрещает все остальное.
Ответ 3
Другие решения не работали для меня, поскольку они не включали базовый URL панели администратора (по умолчанию - admin). Я должен был сделать это так, чтобы получить правильный URL:
Mage::helper('adminhtml')->getUrl('adminhtml/name_of_custom_extension/name_of_controller/');