La logique pure veut que ces variables soient initialisées dans le module.
La logique n'a rien a voir là dedans, tu ne peux pas utiliser des variables en croyant qu'elles seront magiquement initialisées par un module très serviable
Tu es dans un hookblock, qui permet d'afficher plusieurs onglets dans la fiche produit:
{hookblock name="product.additional" product=$product_id fields="id,class,title,content"}
Le module Comment ajoute un onglet, car il est accroché à ce hook block. Il doit donc fournir les informations demandées, informations qui sont définies par le champ "fields" de la déclaration du hook. Ce champ dit quelle sont les variables que le module doit remplir, et qui seront utilisables lors de chaque itération du forhook associé ({forhook rel="product.additional"} ...)
En l’occurrence:
- $id : un ID que tu peux utiliser comme id d'élément HTML (< a id={$id} ...>). Ça peut sand doute t'aider à isoler le tab "commentaires"
- $class : la classe à appliquer à l'élément
- $title : le titre du tab
- $title : le contenu du tab
Pour vour ce que le module fait concrètement : cf. https://github.com/thelia-modules/Comme … ok.php#L50
Tu peux éventuellement récupérer l'ID du produit avec $product_id (ou {product attr="id"}) si ça peut t'aider.
La doc des hook blocks : http://doc.thelia.net/en/documentation/ … hook-block