Jump to content

[Résolu] Récupérer l'id de catégorie dans header.tpl depuis une page produit


 Share

Recommended Posts

Bonjour,

 

Pour pouvoir styler un arrière plan selon les catégories dans lesquelles on se trouve, je cherche comment récupérer l'id de la catégorie du produit en cours dans le fichier header.tpl.

J'ai trouvé lorsqu'on se trouve dans une page de catégorie, mais je n'y arrive pas lorsqu'on est dans une page produit.

Est-que quelqu'un a une idée ?

 

Je suis sur la version 1.4.7.

 

Merci :-)

Share this post


Link to post
Share on other sites

  • 1 month later...

Bonjour,

 

Il faut pour cela avoir des bases en PHP, il y a un peu de développement :

 

Tout d'abord, vérifier si l'on ait sur le contrôleur product, si oui :

 

Récupérer l'ID produit via Tools::getValue('id_product')

 

Ensuite :

 

Utiliser les classes présentes dans la clesse Product afin de retrouver les catégories du produit en fonction de son ID (getProductCategories/getProductCategoriesFull/getCategories).

Share this post


Link to post
Share on other sites

Bonjour, et merci pour la réponse.

 

Je me demandais s'il n'y avait pas la même chose que pour le nom d'une page sur laquelle on est, {$page_name}, pour l'id de la page.

Pour l'instant j'ai mis {$category|@print_r} dans category.tpl pour voir les variables du template, je retrouve bien le nom de la page, et je vois l'id de la page mais sans arriver à la récupérer.

Mon dernier essai est "$nomvariable =$smarty->get_template_vars('category->id');" dans mon fichier php et un envoi vers mon fichier tpl avec "$smarty->assign( 'idcategory', $nomvariable );" .. mais cela ne fonctionne pas.

 

Merci de votre aide.

Share this post


Link to post
Share on other sites

J'ai ça comme erreur: Je sais que la variable n'est pas définit mais pourquoi ça m'amène à se fichier ?

 

" Notice: Undefined variable: category in C:\Program Files (x86)\wamp\www\prestashop\tools\smarty\sysplugins\smarty_internal_data.php on line 291".

Share this post


Link to post
Share on other sites

Pour l'instant j'ai ça (le code pourrait peut être vous aidez a comprendre ce que je recherche):

 

 

function hookLeftColumn ($params)

{

global $smarty;

$nomdemapage = $smarty->get_template_vars('page_name');

 

 

if($nomdemapage=='category') {

$idcategory = $smarty->get_template_vars('$category.id');

$smarty->assign( 'categoryidproduct', $idcategory);

$smarty->display( dirname(__FILE__) . '/nom.tpl');

}

 

Et dans mon tpl, j'ai juste:

 

Nom de la page : {$page_name} <br />

Edited by dubs494 (see edit history)

Share this post


Link to post
Share on other sites

Oula, si c'est dans un .php de module, ça n'est pas bon alors !^^

Vous avez donc le nom de la catégorie en cours. Donc, ensuite il faudrait trouver son ID à partir du nom (une fonction simple avec une requête sql qui va le chercher).

 

Puis, faire un assign de cet ID retourné par votre fonction, et le tour est joué :)

Share this post


Link to post
Share on other sites

Bonsoir, le probleme c'est que j'ai plusieurs id pour un même nom.

Ainsi j'ai mis {$id_category} dans le dossier category.tpl ce qui me fait bien apparaitre l'id de la page category sur laquelle je suis.

Avez-vous une solution pour faire passer l'id que je trouve dans le category.tpl dans mon module ?

Share this post


Link to post
Share on other sites

Bah en fait c'est bon, vous aviez déjà donner la réponse plus haut avec "Tools::getValue('id_product');" je fais la même chose pour la catégorie et c'est dans la poche.

Cela m'apprendra à plus étudier les réponses.

Merci de votre aide.

Share this post


Link to post
Share on other sites

Bonjour,

 

Pour pouvoir styler un arrière plan selon les catégories dans lesquelles on se trouve, je cherche comment récupérer l'id de la catégorie du produit en cours dans le fichier header.tpl.

J'ai trouvé lorsqu'on se trouve dans une page de catégorie, mais je n'y arrive pas lorsqu'on est dans une page produit.

Est-que quelqu'un a une idée ?

 

 

 

Je suis sur la version 1.4.7.

 

Merci :-)

 

[Resolu]

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
 Share

×
×
  • Create New...

Important Information

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