web-dev-qa-db-fra.com

Magento: génération d'url pour une action backend (avec clé)

Je travaille sur une boutique de démonstration Magento (CE v1.7)

Je souhaite générer un lien pour une action (index) d'un contrôleur (index) du module (Mymodule), je souhaite afficher le lien dans la page d'accueil pour pouvoir accéder directement à la fonctionnalité Mymodule

comment puis-je y parvenir (sans désactiver la génération des clés)?

J'ai déjà essayé le code suivant, mais je reçois à nouveau le tableau de bord:

<?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>
15
Hidalgo

Une clé secrète doit être ajoutée automatiquement à l'URL lors de l'utilisation

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

à condition que les clés secrètes soient activées dans la configuration du système.

Quoi qu'il en soit, dans cette partie de votre code:

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

vous donnez comme premier paramètre une route avec un contrôleur, où la méthode attend juste un nom de contrôleur.

N'UTILISEZ rien d'autre que adminhtml/ comme début de l'URL, car magento 1.9.2.2 interdit tout le reste.

51
blmage

utilisez le code suivant pour obtenir l'url avec le code secret

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

Veuillez vous référer à l'article suivant: Génération d'une URL Backend-Admin avec clé et paramètres dans Magento .

N'UTILISEZ rien d'autre que adminhtml/ comme début de l'URL, car magento 1.9.2.2 interdit tout le reste.

11
user1645055

Les autres solutions n'ont pas fonctionné pour moi car elles n'incluaient pas l'URL de base du panneau d'administration (admin par défaut). J'ai dû le faire comme ça pour obtenir l'URL correcte:

Mage::helper('adminhtml')->getUrl('adminhtml/name_of_custom_extension/name_of_controller/');
8
Louis B.