Jump to content
frederic.c

[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)

Share this post


Link to post
Share on other sites
3 hours ago, frederic.c said:

up

 

Depuis  le  template  faites  d'abord.


{assign  var=id_cat   value=Tools::getValue('id_category')}

 

Ensuite   sur  le js:

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

 

Edited by ndiaga (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites
Quote

Depuis  le  template  faites  d'abord.

{assign var=id_cat value=Tools::getValue('id_category')}

Merci pour votre réponse @ndiaga :)

Je rajoute ce bout de code dans le category.tpl de mon template ?

Encore merci

Share this post


Link to post
Share on other sites
2 minutes ago, frederic.c said:

Merci pour votre réponse @ndiaga :)

Je rajoute ce bout de code dans le category.tpl de mon template ?

Encore merci

Oui.

Share this post


Link to post
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)

Share this post


Link to post
Share on other sites

Ce  code   ça  marche ou?

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

 

C'est  la-bas  que  vous devez intervenir.

Vous  pouvez  faire  tout  simplement

 

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

 

Vous remplacez  juste  le  ID  10  par    Tools::geValue('id_category')

Share this post


Link to post
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() });

 

Share this post


Link to post
Share on other sites

@ndiaga

Je regarderais ça Jeudi à tête reposé, je passe peut être à coté de quelque chose.

Je vous souhaite une bonne soirée, j'arrête là pour aujourd'hui.

Encore merci pour le temps passé.

  • Like 1

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
2 minutes ago, frederic.c said:

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

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

Donc  il faut  intervenir  ailleurs  mais je ne sais  ou .

  • Like 1

Share this post


Link to post
Share on other sites
Just now, ndiaga said:

Donc  il faut  intervenir  ailleurs  mais je ne sais  ou .

Autre que le category.tpl ?

Share this post


Link to post
Share on other sites
3 minutes ago, frederic.c said:

Autre que le category.tpl ?

oui,  je pense.

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, frederic.c said:

Ok, je vais chercher des infos.

Encore Merci @ndiaga pour votre aide.

ok, il faut creuser ...

Share this post


Link to post
Share on other sites

Si vous pouvez le lien de votre site pour mieux voir l'idée de ce que vous cherchez et tester le code js.

Share this post


Link to post
Share on other sites

Bonjour @Andriano

Le site est en maintenance, je vous donne le lien demain. Je n'ai pas les codes de connexion chez moi.

Merci

 

Share this post


Link to post
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>

 

Share this post


Link to post
Share on other sites
Posted (edited)

@Andriano,

Merci ça fonctionne, c'est exactement ça que mon client voulait.

Un grand merci encore, ça me sort une épine du pied, merci également à ceux qui ont pris le temps de regarder.

Problème résolu

 

Edited by frederic.c (see edit history)

Share this post


Link to post
Share on other sites

Bonjour @Andriano,

Parce que nos clients en veulent toujours plus .... 

Est ce que vous pensez que c'est possible de dérouler le menu pour les sous catégories également ?

Cordialement

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites
Just now, Mediacom87 said:

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

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

Bonne journée

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
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.

 

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More