kerlin Posted October 26, 2019 Share Posted October 26, 2019 Bonjour, Sur un PS 1.7.5.1 avec un thème Iqit (Warehouse) fourni avec le module Mega Menu de Iqit. Le module peut être configuré pour montrer les images des catégories principales. Mais je souhaite afficher l'image des sous-catégories quand on passe la souris dessus (panneau Les produits). J'ai donc ajouté une div cachée contenant le lien vers la-dite catégorie et son image. Mais quand je vérifie avec l'inspecteur, si le lien va bien, le lien de l'image est (unknown). La div étant cachée, on ne peut contrôler le fonctionnement que via l'inspecteur. Vous pouvez voir le site ici Voici le code dans le tpl qui me semble gérer cette partie : {function name="categories_links" nodes=[] level=1} {strip} <ul class="{if $level==1}cbp-links cbp-category-tree{elseif $level==2}cbp-hrsub-level2{elseif $level==3}cbp-hrsub-level2 cbp-hrsub-level3{/if}"> {foreach $categories as $category} {if isset($category.title)} <li class="{if $level==1}cbp-hrsub-haslevel2{else}cbp-hrsub-haslevel3{/if}" id="hasimg"> <div class="cbp-category-link-w"> <a href="{$category.href}">{$category.title}</a> {foreach from=$node.content.ids item=subcategory } <div class="cbp-hrsub-img"> <a href="{$category.href}" class="cbp-category-thumb"> <img class="replace-2x img-fluid" src="{$category.children.thumb}" alt="{$category.title}"/></a> </div> {/foreach} {if isset($category.children)} {categories_links categories=$category.children level=$level+1} {/if} </div> </li> {/if} {/foreach} </ul> {/strip} {/function} Ce que j'ai rajouté c'est (après de nombreux tests divers et variés qui, la plupart du temps ont fait planter le site) {foreach from=$node.content.ids item=subcategory } <div class="cbp-hrsub-img"> <a href="{$category.href}" class="cbp-category-thumb"> <img class="replace-2x img-fluid" src="{$category.children.thumb}" alt="{$category.title}"/></a> </div> {/foreach} Je ne comprends pas pourquoi il trouve bien le lien de la sous-catégorie et pas le lien de l'image. J'ai cherché dans le fichier php du module et la partie qui concerne les thumbs de catégories, c'est ceci : if (isset($node['thumb']) && $node['thumb']) { $files = scandir(_PS_CAT_IMG_DIR_); if (count(preg_grep('/^' . $category['id_category'] . '-([0-9])?_thumb.jpg/i', $files)) > 0) { foreach ($files as $file) { if (preg_match('/^' . $category['id_category'] . '-([0-9])?_thumb.jpg/i', $file) === 1) { $image_url = $this->context->link->getMediaLink(_THEME_CAT_DIR_ . $file); $return_categories['thumb'] = $image_url; break; } } } } Je suppose que le if isset node thumb correspond au réglage du module qui permet donc d'ajouter l'image à la catégorie parente. Et donc limiterait la reconnaissance de l'url de l'image à ces seules catégories ? J'ai donc copié le code compris dans ce if et l'ai collé juste au-dessus, mais cela n'a rien changé. J'ai cherché et trouvé des pages expliquant comment faire avec le module de base, mais quand j'essaie d'intégrer ça dans le tpl du module, ça fait planter la boutique. Comment faire pour avoir ce foutu lien ? L'ajouter en dur ? Si oui comment ? En le relisant, et en relisant le code, je vois que l'url construite dans le code ajoute des chiffres après l'id de catégorie. Mais en vérifiant dans le dossier c, il me semble que seules les images des catégories de premier niveau ont un chiffre dans leur nom (ex idcat-0-thumb.jpg) alors que les autres seraient plutôt du style "idcat_thumb.jpg". Ceci expliquerait-il cela ? Ou ce serait envisageable de mettre en dur le lien du style src(/img/c/$category[id_category]_thumb.jpg) dans le tpl ? Merci d'avance pour vos avis et éventuelles pistes ! Link to comment Share on other sites More sharing options...
kerlin Posted October 27, 2019 Author Share Posted October 27, 2019 Bonjour, Je continue à chercher. J'ai essayé en mettant le lien en dur comme imaginé dans mon précédent post. Mais il ne récupère pas l'id de la sous-catégorie. En continuant à chercher dans le php du module, je crois que je comprends comment le nom, le titre et l'url des sous catégories sont récupérés. Je pense que c'est avec ceci : if (isset($subcat_limit) && isset($subcat_count) && ($subcat_count >= $subcat_limit)) { return $return_categories; } if ($category['level_depth'] > 1) { $cat = new Category($category['id_category']); $link = $cat->getLink(); } else { $link = $this->context->link->getPageLink('index'); } if ($subcats) { $return_categories[$key]['title'] = $category['name']; $return_categories[$key]['href'] = $link; } else { $return_categories['title'] = $category['name']; $return_categories['href'] = $link; } J'ai donc essayé de rajouter un $return_categories[$key]['image'] = $thumb; mais bien sûr cela n'a rien donné. Dans le tpl, en mettant $category.thumb dans le src, il m'affiche de nouveau unknown Comment récupérer l'id de ces sous-catégories. A tout hasard, je joinss le php (au format txt) pour le cas où quelqu'un aurait un peu de temps (et de patience pour se pencher dessus. Mille mercis d'avance megamenuphp.txt Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 27, 2019 Share Posted October 27, 2019 Bonjour, avez vous pris l temps de contacter le créateur de votre template pour qu'il vous aide après avoir encaissé votre argent ? Link to comment Share on other sites More sharing options...
kerlin Posted October 28, 2019 Author Share Posted October 28, 2019 Bonjour MediaCom87, désolée de ne répondre que maintenant Le thème a été installé par un autre prestataire, qui n'a pas transmis un N° de commande au client. Je l'ai contacté, j'attends la réponse. Sans n° de commande, je n'ai pas accès au support ... donc j'essaie de trouver par mes propres moyens. J'ai bien envoyé un premier message au dev du module qui m'avait dit que c'étais possible en modifiant les tpl mais que ce serait à moi à le faire. Ajouter une div qui apparaisse au mouseover, pas de problème pour moi. C'est juste ce foutu lien vers l'image qui ne fonctionne pas. Si je mets dans la balise "alt" de l'image $category.title, pas de souci, il a bien le titre. Dans le fichier php du module, je vois bien des return si la catégorie a des sous-catégories, il y a le title et le href, ce qui explique sans doute que je récupère correctement le titre. Faudrait-il ajouter un return qui retournerait l'id ? mais là je sèche un peu. Y aurait-il moyen de récupérer cette image juste avec du code dans le tpl et passer outre la partie du php du module qui gère les images? Mes essais en me basant sur des tutos pour le menu de base de Prestashop se sont soldés par des échecs. Et sur Google, je ne suis pas encore arrivée à trouver ce dont j'ai besoin ... Merci de m'avoir lue en tout cas 😉 Link to comment Share on other sites More sharing options...
kerlin Posted October 31, 2019 Author Share Posted October 31, 2019 Bonjour, Thème semblant avoir été acheté par un prestataire qui a fait la migration depuis 1.6. Prestataire qui ne répond pas pour avoir un identifiant de commande. Dev du thème qui ne répond pas sans id de commande ... je suis coincée ... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now