Jump to content

[Résolu] Récupérer l'ID catégorie en cours


Recommended Posts

Bonjour à tous,

Après des heures de recherche sur le net, je ne trouve pas ce que je veux faire.

En version 1.7.6.2

J'aimerais récupérer l'ID de la catégorie courante pour une modification sur mon thème actuel.

Sur le site, il y a un menu verticale en accordéon. Je voudrais que quand je suis sur une de mes catégories, automatiquement mes sous catégories s'affichent.

Sans à avoir à cliquer sur le bouton pour afficher les catégories.

En modifiant mon custom.js avec la ligne suivante
 

window.addEventListener("DOMContentLoaded", (event) => {
    document.getElementById("category-10").getElementsByClassName("toggle_submenu")[0].click()
  });

J'obtiens ce que je veux pour ma catégorie ID10 (femme sur mon site) => https://prnt.sc/qfz0qh

Il faut donc que je remplace ("catégory-10") par la catégorie en cours de visualisation, c'est là que je sèche ...

Est ce que vous pourriez m'aider à régler ce soucis ?

Merci à tous 

(je ne suis pas développeur, je me débrouille comme je peux avec les tuto etc donc ne soyez pas trop technique :D )

Edited by frederic.c (see edit history)
Link to comment
Share on other sites

@ndiaga encore merci pour votre réponse.

Je viens de rajouter => {assign  var=id_cat   value=Tools::getValue('id_category')}
Dans mon fichier category.tpl  (/themes/mon_theme/templates/catalog/listing)

    </div>
  {/if}
{/block}
{assign  var=id_cat   value=Tools::getValue('id_category')}

En fin de code, j'ai essayé au début également. Ca ne fonctionne pas 😕 

J'ai bien sûr rajouter le code dans le custom.js de mon theme, vidé le cache de Presta et de mon navigateur.

Est ce que je place correctement le code dans le category.tpl ?

Merci 

Edited by frederic.c (see edit history)
Link to comment
Share on other sites

@ndiaga

Just now, ndiaga said:

Ce  code   ça  marche ou?


window.addEventListener("DOMContentLoaded", (event) => {
    document.getElementById("category-10").getElementsByClassName("toggle_submenu")[0].click()
  });

Dans le fichier custom.js => /httpdocs/themes/mon_theme/assets/js
 

j'ai indiqué :

2 minutes ago, ndiaga said:

window.addEventListener("DOMContentLoaded", (event) => { document.getElementById("category-{Tools::getValue('id_category')}").getElementsByClassName("toggle_submenu")[0].click() });

à la place de :

On 12/26/2019 at 6:26 PM, frederic.c said:

window.addEventListener("DOMContentLoaded", (event) => { document.getElementById("category-10").getElementsByClassName("toggle_submenu")[0].click() });

 

Link to comment
Share on other sites

Bonjour @ndiaga, je reprends depuis le début pour être sûr de ne rien avoir oublié. Tous mes voeux au passage :)
 

On 12/31/2019 at 4:37 PM, frederic.c said:

Ce  code   ça  marche ou?


window.addEventListener("DOMContentLoaded", (event) => {
    document.getElementById("category-10").getElementsByClassName("toggle_submenu")[0].click()
  });

Ce code fonctionne quand j'ai cliqué sur ma catégorie Femme (dans le menu)  => https://prnt.sc/qie93y

Avec les modifications que vous m'avez indiqué :

Sur le fichier  : /themes/mon_theme/templates/catalog/listing/category.tpl
Ajout de la ligne à la fin : {assign  var=id_cat   value=Tools::getValue('id_category')}

Sur le fichier : /themes/mon_theme/assets/js/custom.js
Ajout de la ligne

window.addEventListener("DOMContentLoaded", (event) => { document.getElementById("category-{Tools::getValue('id_category')}").getElementsByClassName("toggle_submenu")[0].click() });

 

Je viens de le refaire complètement et ça ne déroule pas le menu de la catégorie en cours.

Merci

Link to comment
Share on other sites

Pour l'instant ce que je peux faire c'est déroulé le bon menu catégorie en fonction de la catégorie courante en javascript/jQuery. Mettez juste le script suivante et dites moi si ça convient.

<script>
	$(document).ready(function(){
		$("#top-menu a[href='"+window.location.href+"']").next().trigger("click");  
		//Ou $("#top-menu a[href='"+window.location.href+"']").next().click();
	});
</script>

 

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour @Mediacom87

Dans ce cas précis, je fais quoi ?

La solution a été apporté par Adriano, 

On 1/6/2020 at 11:22 AM, Andriano said:

<script> $(document).ready(function(){ $("#top-menu a[href='"+window.location.href+"']").next().trigger("click"); //Ou $("#top-menu a[href='"+window.location.href+"']").next().click(); }); </script>

Cependant, il y aurait besoin de pousser un peu plus loin la solution. Est ce que vous voulez que je fasse un nouveaux topic pour ça ?

Cordialement

Link to comment
Share on other sites

il y a 3 minutes, frederic.c a dit :

La solution a été apporté par Adriano, 

 

il y a 4 minutes, frederic.c a dit :

Cependant, il y aurait besoin de pousser un peu plus loin la solution

Perso, je vous dirais de réfléchir par vous même au lieu d'attendre qu'un professionnel aide vos clients.

Mais bon, je ne le dit pas pour, ne pas pourrir l'ambiance du forum sur ce genre de pratique.

Link to comment
Share on other sites

il y a 1 minute, frederic.c a dit :

Ok, merci pour la réponse. C'est vrai que ça ne doit pas être courant.

le soucis c'est que sur ce forum, au lieu d'avoir des commerçants essayant d'apprendre pour gérer leur boutique nous avons des "professionnels" se disant spécialiste PrestaShop auprès de leurs clients qui viennent pleurnicher pour la moindre ligne de code.

Donc j'avoue que la motivation des bénévoles du forum n'est pas la même pour aider.

Link to comment
Share on other sites

19 minutes ago, Mediacom87 said:

Donc j'avoue que la motivation des bénévoles du forum n'est pas la même pour aider.

Je comprends votre point de vue et d'une certaine façon je le partage. On pourrait en débattre longuement sur ce sujet :) Mais ce n'est pas le bon endroit.
Contrairement à certains, je suis très reconnaissant sur l'entre aide de ce forum et loin de moi la prétention de me décrire comme "Spécialiste Prestashop".

Merci aux bénévoles :)
Bonne journée @Mediacom87

Link to comment
Share on other sites

Il y a 2 heures, Mediacom87 a dit :

Donc j'avoue que la motivation des bénévoles du forum n'est pas la même pour aider.

+1000

D'ailleurs maintenant quand je soupçonne un freelance/agence je zappe, d'autant qu'ils sont facile à repérer, ils ont la susceptibilité exacerbé dès qu'on veux leur demander de réfléchier.

 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...