cybolo Posted July 9, 2009 Share Posted July 9, 2009 BonjourJe souhaiterais savoir s'il est possible de récupérer une variable assignée à smarty par un php, depuis un autre php.A priori oui avec la fonction : $smarty->get_template_vars('nom_de_la_variable'); Mais est ce possible depuis un module?En effet j'ai créé un Hook que j'ai appelé "CategoryTop", que j'appelle en haut de mon template category.tplDans ce Hook un module est appelé, et dans ce module j'aurais besoin de l'id de la catégorie. L'id de la catégorie a été assigné à smarty sous la variable "id_category" depuis "category.php" et il s'affiche bien lorsque je l'affiche depuis "category.tpl"Ma question est comment récupérer cet Id depuis le fichier php de mon module?j'ai essayé avec $id_cat= $smarty->get_template_vars('id_category'); Mais ca ne donne rien.Je suppose que je dois mal me servir de get_template_vars ou qu'il me manque autre chose. Link to comment Share on other sites More sharing options...
liandri Posted July 9, 2009 Share Posted July 9, 2009 Mais ta variable id_category existe déjà et certainement bien traité en php avant même de parler de template smarty ! Pourquoi tu ne l'utilise pas directement cette variable ? Si elle a un statut privé dans sa classe, pourquoi ne pas la rendre public pour ensuite en bénéficier dans tout ton code php à suivre !Une variable globale php en fait ! Link to comment Share on other sites More sharing options...
Cédric Girard Posted July 9, 2009 Share Posted July 9, 2009 BonsoirJe confirme, normalement $id_category est lisible directement depuis PHP, dès lors que tu es dans une catégorie ;-)(sur les autres pages non, évidemment) Link to comment Share on other sites More sharing options...
cybolo Posted July 10, 2009 Author Share Posted July 10, 2009 Merci pour vos réponses. C'est vrai que je me compliquais la vie pour rien..D'ailleurs entre temps j'avais résolu mon problème en récupérant l'Id de la catégorie par $_GET[] tout comme on le fait dans category.php... Link to comment Share on other sites More sharing options...
liandri Posted July 10, 2009 Share Posted July 10, 2009 Faut justement éviter de surcharger le template smarty par de surcouche inutile ! smarty doit être la pour générer le contenu dynamique déjà traité par le code php ! C'est plus flexible et plus rapide !Donc tant que tu peux récupérer le code / variable déjà présent dans php n'hésite pas !Personnellement les seules variables que je m'autorise à utiliser indépendamment du php (même si je les ai déjà traité au préalable) sont les accès "session", car ce sont des variables d'environnement à la base hors php et hors smarty (du moins pour leur stockage en mémoire) ! Link to comment Share on other sites More sharing options...
scoubidoubidou Posted August 13, 2009 Share Posted August 13, 2009 hello,comment on rend public et affiche une variable possédant un statut privé ? et comment afficher $id_category sur une autre page car meme en etant sur une page de catégorie la variable n'est pas accessible depuis un module se trouvant placé sur une page de catégorie. Par exemple j'ai un module de navigation placé dans le 'top of the pages' et c'est la galère pour avoir les variables de category dans le tpl du module alors meme que la page en cours est bien category.php?id_category... Link to comment Share on other sites More sharing options...
Natsu Posted August 13, 2009 Share Posted August 13, 2009 Pourquoi ne pas utiliser un $_GET pour récuperer id_category ? Link to comment Share on other sites More sharing options...
scoubidoubidou Posted August 13, 2009 Share Posted August 13, 2009 J'ai enfin réussi par $_GET Natsu, merci de ta réponse rapide,J'aurais aussi du mieux lire cybolo qui en parlait un peu plus haut :red: voici le code qui fonctionne : $catperso = intval($_GET['id_category']); $smarty->assign('catperso', $catperso); encore merci ! Link to comment Share on other sites More sharing options...
scoubidoubidou Posted August 13, 2009 Share Posted August 13, 2009 par contre $_GET ne marche pas pour recuperer id_parent :bug: Link to comment Share on other sites More sharing options...
scoubidoubidou Posted August 23, 2009 Share Posted August 23, 2009 peut etre parce que $_GET recupere dans l'url...bon on va y arriver... %-P Link to comment Share on other sites More sharing options...
scoch Posted August 27, 2010 Share Posted August 27, 2010 Bonjour à tous, je déterre ce vieux post... De mon côté je récupère effectivement l'id de catégorie en GET mais depuis que l'url simplifiée a été activée sur le site il n'y a plus moyen de récupérer l'id de catégorie en GET...Je précise que je veux récupérer ces id depuis header.tpl pour utiliser des classes css différentes pour chaque catégorie et les pages produits qui leur correspondent.Que faire ?J'ai lu ce conseil ailleurs mais je ne sais pas l'utiliser : $maCategorie = intval($smarty.get.id_category);Avez-vous réussi à récupérer l'id de catégorie avec url simplifiée activée ?Merci. Link to comment Share on other sites More sharing options...
scoch Posted August 27, 2010 Share Posted August 27, 2010 Hop !Entre temps j'ai trouvé que {debug} affiche toutes les variables ;-)J'accède donc à l'id de catégorie par {$currentCategoryId} : cool Par contre, pas de trace de l'id de produit... Link to comment Share on other sites More sharing options...
beve Posted August 27, 2010 Share Posted August 27, 2010 Plutôt qu'utiliser $_GET je pense qu'il vaut mieux utiliser Tools::getValue("nom_varialble");Cette fonction statique cherche dans _GET et _POST et fait un p'tit nettoyage en cas de type "string" c'est bien utile. 1 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