frhh Posted April 27, 2012 Share Posted April 27, 2012 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 :-) Link to comment Share on other sites More sharing options...
strat813 Posted May 2, 2012 Share Posted May 2, 2012 j'ai le meme probleme Link to comment Share on other sites More sharing options...
dubs494 Posted June 14, 2012 Share Posted June 14, 2012 Bonjour avez vous trouvé une solution a votre problème ? Link to comment Share on other sites More sharing options...
Dev On Web Posted June 14, 2012 Share Posted June 14, 2012 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). Link to comment Share on other sites More sharing options...
dubs494 Posted June 15, 2012 Share Posted June 15, 2012 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. Link to comment Share on other sites More sharing options...
Dev On Web Posted June 15, 2012 Share Posted June 15, 2012 Bonjour, Si {$category|@print_r} contient l'ID que vous souhaitez, il suffirait de faire {$category.id} pour y accéder depuis Smarty Link to comment Share on other sites More sharing options...
dubs494 Posted June 15, 2012 Share Posted June 15, 2012 Dans le fichier smarty vous voulez dire ? Link to comment Share on other sites More sharing options...
Dev On Web Posted June 15, 2012 Share Posted June 15, 2012 Dans un fichier tpl oui vu la syntaxe de votre exemple. Link to comment Share on other sites More sharing options...
dubs494 Posted June 15, 2012 Share Posted June 15, 2012 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". Link to comment Share on other sites More sharing options...
Dev On Web Posted June 15, 2012 Share Posted June 15, 2012 Vous l'avez mis où ? Category.tpl ? Ou header.tpl ? Header.tpl, je doute que $category soit accessible... Link to comment Share on other sites More sharing options...
dubs494 Posted June 15, 2012 Share Posted June 15, 2012 Non en faite je crée un module a part. J'ai donc ma page .php et l'autre .tpl. Et d'ici, je "reçois" très bien la {$page_name}. Link to comment Share on other sites More sharing options...
dubs494 Posted June 15, 2012 Share Posted June 15, 2012 (edited) 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 June 15, 2012 by dubs494 (see edit history) Link to comment Share on other sites More sharing options...
Dev On Web Posted June 15, 2012 Share Posted June 15, 2012 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é Link to comment Share on other sites More sharing options...
dubs494 Posted June 18, 2012 Share Posted June 18, 2012 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 ? Link to comment Share on other sites More sharing options...
dubs494 Posted June 19, 2012 Share Posted June 19, 2012 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. Link to comment Share on other sites More sharing options...
Dev On Web Posted June 19, 2012 Share Posted June 19, 2012 Ok, vous pouvez passer le sujet en résolu ? Merci. (éditez le premier post en mode avancé). Link to comment Share on other sites More sharing options...
dubs494 Posted June 20, 2012 Share Posted June 20, 2012 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] 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