THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,
je cherche à faire un truc sans doute simple mais je n'y suis pas arrivé.

Sur la fiche produit, il y a les tab "Description" "Additional infos" et "Commentaires" (Quand on a le modules commentaires)

Dans {forhook rel="product.additional"}, je voulais ajouter le nombre de commentaires à coté du title.
J'ai essayé d'ajouter {count type="comment" ref="{$ref}" ref_id="{$ref_id}" status="1" }

Ce qui me donne :

 
{forhook rel="product.additional"}
        <li role="presentation"><a id="tab{$id}" href="#{$id}" data-toggle="tab" role="tab"><h2 class="h4">{$title nofilter}  {count type="comment" ref="{$ref}" ref_id="{$ref_id}" status="1" }</h2></a></li>
{/forhook}

J'ai aussi essayer d'enfermer le count dans une loop product sans plus de succès.
Seulement au lieu de mettre le nombre de commentaire du produit en question, ça met le nombre total de commentaires présents sur l'ensemble du site.

Last edited by vz777 (02-09-2020 17:40:52)

Offline


Sans doute parce que les variables $ref et/ou $ref_id ne contiennent pas ce que tu crois qu'elles contiennent. Affiche-les pour voir : <li role="presentation">ref={$ref} $ref_id={$reg_id} <a id="...


OpenStudio Toulouse

Offline


En effet, tu as raison, celles-ci m’apparaissent vides,
je ne vois pas d’où ça vient

Offline


Elles sortent d'où ces variables ?


OpenStudio Toulouse

Offline


La logique pure veut que ces variables soient initialisées dans le module.
Je suis parti donc éplucher le code du module, en essayant de comprendre qq chose,
sans être sûr je pense que celles ci sont initialisées dans Events/CommentDefinitionEvent.php

J'avais quand même testé d'afficher les variables dans le template comment.html,
sans plus de succès, c'est à dire vides.

Le problème est peut être évident mais je le vois pas.

Last edited by vz777 (04-09-2020 13:29:25)

Offline


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 wink

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


OpenStudio Toulouse