Nous contacter

3 - Tutoriel de création de module Magento 1 : gérer la vue et le contrôleur

LE BLOCK DU MODULE

Le block est l'élément de code qui va vous permettre d'interagir entre votre model et votre template.

Valibus/Gestion/Block/Showblock.php
<?php
class Valibus_Gestion_Block_Showblock extends Mage_Core_Block_Template
{
public function voirblock()
{
return "Mon block s'affiche correctement";
}
}

LE CONTROLER DU MODULE

Nous évitons ici l'affichage à l'aide d'un simple echo pour procéder au chargement du layout.

Valibus/Gestion/controllers/IndexController.php
<?php
class Valibus_Gestion_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
public function autreAction()
{
echo 'autre methode du controller.';
}
}

LA CONFIGURATION DU MODULE

Valibus/Gestion/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Valibus_Gestion>
<version>1.0.0</version>
</Valibus_Gestion>
</modules>
<frontend>
<routers>
<plop>
<use>standard</use>
<args>
<module>Valibus_Gestion</module>
<frontName>gest</frontName>
</args>
</plop>
</routers>
<layout>
<updates>
<plop>
<file>gestion.xml</file>
</plop>
</updates>
</layout>
</frontend>
<global>
<blocks>
<gestion>
<class>Valibus_Gestion_Block</class>
</gestion>
</blocks>
</global>
</config>

LE TEMPLATE D'AFFICHAGE

frontend/base/default/template/gestion/voir.phtml
<?php
echo $this->voirblock();
?>

LE LAYOUT

frontend/base/default/layout/gestion.xml
<layout version="0.1.0">
<plop_index_index>
<reference name="content">
<block type="gestion/showblock" name="afficher_monbloc" template="gestion/voir.phtml" />
</reference>
</plop_index_index>
</layout>

QUELQUES EXPLICATIONS

Maintenant que nous avons mis à jour notre code quelques explications s'imposent...

Tout d'abord, le contenu que nous avons généré ne s'affiche plus dans une page blanche, ceci grâce au layout qui lui indique de se placer dans l'emplacement content. Vous trouverez d'ailleurs dans le fichier template 3-colums.phtml:

<div class="col-main">
<php echo $this->getChildHtml('global_messages') ?>
<php echo $this->getChildHtml('content') ?>
</div>

Ce qui nous permet de voir que le l'élément fils 'content' est appelé par le template par défaut. vous mettre la ligne en commentaire et votre block disparaîtra.

Prochaine étape: Interaction avec mysql.

Plutôt que d'apprendre par vous même, vous souhaitez faire appel à un professionnel du développement e-commerce sous magento? Découvrez notre service de développeur magento.

Livre

Découvrez les best practices en SEO

Téléchargez notre livre blanc SEO !