Développement des blocks / helpers
Les blocks
Création de la classe
Une fois déclaré dans le config.xml, nous allons créer notre premier block Listing :
app/code/local/Formation/Test/Block/Listing.php
Le nom de classe est donc Formation_Test_Block_Listing.
Tous les blocks doivent hériter de la classe
Mage_Core_Block_Template(ou d'un autre block).<?php class Formation_Test_Block_Listing extends Mage_Core_Block_Template {}
Création de notre première méthode
Créons une première fonction basique :
public function getHelloWorld() {
return 'Hello World!';
}
Comment faire pour afficher un template dans le header qui appellerait cette méthode ?
Autocomplétion dans les templates
La plupart des IDEs comprendront la syntaxe suivante, à indiquer dans le template :
<?php /* @var $this Formation_Test_Block_Listing */ ?>
Nous indiquons ici que $this est de type Formation_Test_Block_Listing.
TP : Upsell dynamique
Avant de commencer, nous allons ajouter notre propre layout. Nous allons le déclarer dans le config.xml de notre module.
Comment fait Magento pour inclure le fichier de layout
catalog.xml? => Faire la même chose.
--
Pour ce TP, il est nécessaire de créer un jeu de test "conséquent". Nous allons créer au moins deux catégories, et au moins 5 produits. 4 produits sont dans la même catégorie et le dernier est dans la deuxième catégorie.
- Afficher 2 produits sur la fiche produit qui sont dans la même catégorie que le produit en cours
- Attention, le produit en cours ne doit pas être dans le listing
- Afficher aléatoirement ces 2 produits
Vous avez besoin de :
- Savoir récupérer une liste de produits
- Savoir filtrer cette liste sur une catégorie
- Savoir limiter la liste à 2 items
- Savoir rendre aléatoire cette liste
- Savoir récupérer la catégorie du produit courant
- Savoir récupérer le produit courant
Pour vous aider
// Récupérer le produit en cours
<?php $product = Mage::registry('current_product') ?>
- Manipuler les collections de produits : http://www.magentix.fr/divers/manipuler-produit-product-collection.html
Formation Magento Developpeur
Magento 1.X