Avant de passer à un autre composant de Magento, restons encore quelques instants avec le contrôleur et répondons à cette question: comment gérer les paramètres transmis sur l’URL d’appel?
Continuons avec notre module Helloworld : apportons quelques modifications pour lui faire afficher le texte que nous lui communiquerons en paramètre.
Exemple:
http://localhost/magento/helloworld/index/index/message/message%20transmis%20en%20parametre
Avec cet exemple, vous comprenez facilement comment transmettre des paramètres à une méthode Action de votre Contrôleur. Au final, une URL Magento se découpe de la façon suivante:
http://<url-base-magento>/<frontName>/<contrôleur>/<methode-action>/<param1>/<value1>/<param2>/<value2>/.../<paramn>/<valuen>
Précisons que ce découpage s’applique lors de l’utilisation du routeur Standard. Mais inutile de rentrer dans le détail pour l’instant.
Reprenons notre contrôleur IndexController et modifions le pour afficher le message reçu en paramètre:
<?php
class Nosymena_Helloworld_IndexController extends Mage_Core_Controller_Front_Action {
public function indexAction() {
$request = $this->_request;
$message = urldecode($request->getParam('message'));
if (empty($message)) $message = "Utilisez le parametre message pour me communiquer un message a afficher !";
echo $message;
}
}
L’accès aux paramètres transmis via l’URL se fait à l’aide de la méthode getParam de l’objet Request:
$this->_request->getParam('<nom-du-parametre>');
Profitons en pour ajouter 2 méthodes qui vont nous servir pour la suite:
public function displayAction() {
$what = $this->_request->getParam('what');
if ($what == 'config') $this->displayConfig();
}
private function displayConfig() {
header("Content-Type: text/xml");
echo Mage::app()->getConfig()->getNode()->asXML();
}
Vous pouvez appeler cette méthode Action de cette manière: /helloworld/index/display/what/config
Vous devriez voir apparaître la totalité du fichier de configuration de Magento, c’est à dire l’ensemble des config.xml de tous les modules de Magento.
Revenir au Tutoriel sur les Contrôleurs Magento