Création de controllers
Déclaration de la route
Comme pour les blocks et helpers, nous allons déclarer notre route dans le config.xml.
<frontend>
<routers>
<formation_test>
<use>standard</use>
<args>
<module>Formation_Test</module>
<frontName>maroute</frontName> <!-- Correspond à http://www.maboutique.com/maroute/ -->
</args>
</formation_test>
</routers>
</frontend>
Utilisation des controllers
Par convention, le nom des fichiers controllers s'écrivent
XxxxController.phpet contiennent des fonctions (appelées actions) qui s'appellentxxxxAction(). Les controllers étendent la classeMage_Core_Controller_Front_Action<?php class Namespace_Module_TestController extends Mage_Core_Controller_Front_Action {}
TP - Création d'un formulaire de demande de devis
- Créer notre controller dans
Formation/Test/controllers, nous l'appeleronsRequestController.php - À l'intérieur, nous allons créer une action
quoteAction
<?php
class Formation_Test_RequestController extends Mage_Core_Controller_Front_Action {
public function quoteAction() {
$this->loadLayout(); // Charge les fichiers de layout
$this->renderLayout(); // Affiche la sortie HTML générée par les layouts
}
}
Testons notre nouvelle page : http://www.maboutique.com/maroute/request/quote/.
maroutecorrespond aufrontNamedéclaré dans leconfig.xmlrequestcorrespond au nom du controllerquotecorrespond au nom de l'action
Notre nouvelle page est vide, c'est normal, nous n'avons rien indiqué concernant son contenu dans nos layouts.
Les étapes suivantes :
- Ajouter dans notre fichier de layout, les instructions pour afficher un template dans le contenu de la page
- Notre template devra être appelé par un de nos blocks (et non
core/template) - Le template affiche un formulaire dont l'action du formulaire sera
quotepostAction. L'URL n'est pas en dur, mais est le résultat d'une fonction du block - Le formulaire demande à l'utilisateur son nom, son adresse e-mail et son message
Formation Magento Developpeur
Magento 1.X