par
Dans cette nouvelle partie nous allons apprendre la mécanique des boucles et mettre en place celles de notre plugin.
Pour rappel, vous pouvez consulter la partie 1, partie 2, partie 3 du tuto.
La dernière partie du tuto est disponible : partie 5
Les boucles sont la particularité de Thelia, qui le différencie des autres CMS du marché. Ces boucles facilitent grandement l’intégration.
Thelia est livré avec les boucles nécessaires pour faire fonctionner une boutique en ligne, mais il est bien souvent nécessaire, pour coller aux demandes spécifiques, de créer de nouvelles boucles. Les plugins sont donc là pour ça !
Comment fonctionne une boucle ?
Les boucles Thelia vont tout simplement répéter une portion de code autant de fois que nécessaire. Une boucle est bien sûr paramétrable et retourne différentes informations.
Les paramètres d’entrée sont les variables passées dans la boucle, permettant de construire la requête qui ira chercher les informations demandées.
Les paramètres de sortie sont les substitutions que vous connaissez sous la forme #QUELQUECHOSE.
Si vous faites votre propre boucle, vous pourrez définir vos paramètres d’entrée ainsi que les informations retournées.
Une boucle récupère le texte et toutes les informations de mise en forme contenues entre l’ouverture et la fermeture de la boucle. Si la boucle ressort des résultats, elle effectuera les substitutions présentes, sinon elle retournera une chaîne vide.
Pour créer votre propre boucle il faut d’abord créer la méthode boucle dans la classe de votre plugin. Elle a la signature suivante :
$texte contient la partie du template qui se situe entre l’ouverture de la boucle et sa fermeture
$args contient les paramètres d’entrée de la boucle
Pour lire les paramètres d’entrée, il faut utiliser la méthode lireTag qui prend en paramètre la variable dans laquelle doivent être recherchés les paramètres (donc dans le cas d’une boucle la variable $args), leurs noms et leurs types (int, string, etc).
Avec tous ces éléments, faisons maintenant notre boucle.
Elle aura en paramètre entrant l’id d’un produit et en paramètre de sortie l’id du commentaire, le titre et le message. Le paramètre entrant va nous permettre de construire la requête qui ira interroger la table commentaire du plugin. Si le paramètre id est vide, une chaine vide est retournée :
Comme vous l’avez remarqué, nous passons par une variable temporaire, le temps de faire les substitutions. Cela permet de ne pas perdre le texte original sans substitutions, sinon au deuxième tour de boucle les paramètres #QUELQUECHOSE ne seront plus présents.
La méthode query_liste est une autre méthode permettant de communiquer avec la base de données, elle prend en paramètre la requête et retourne un tableau. Chaque entrée du tableau représente une ligne de la table, sous forme d’objet. Il est possible de spécifier en deuxième paramètre le nom d’une classe à instancier et peupler avec les résultats.
Nous aurions donc pu passer "Commentaire" en second paramètre mais cela s’avère inutile dans notre cas, nous n’avons en effet pas l’utilité d’utiliser cette classe.
Nous pouvons à présent commencer à compléter notre fichier readme du plugin expliquant le fonctionnement de la boucle.
A vous de le faire et d’intégrer la boucle dans votre template !
Dans la prochaine partie, qui sera la dernière, nous verrons comment packager et soumettre un plugin sur l’espace de contribution. Nous verrons aussi quelques fonctions utiles que nous n’avons pas encore utilisées.
N’oubliez pas, vous pouvez vous aider du plugin sur github : https://github.com/thelia/commentaire
_
tags : trucs et astuces