Passage de variable entre smarty et php
8 messages
• Page 1 sur 1
- regnierjoffrey
- Nouveau WRInaute

- Messages: 4
- Inscription: 21 Jan 2010
Passage de variable entre smarty et php
Bonjour,
je vous expose mon petit soucis,
j'ai du malheureusement trouve une solution pas tres commode pour lire une fichier xml dans le template d'une boutique en ligne (prstashop). Au fure et a mesure du temps j'ai reussi a me debrouiller pour developpper un p'tit bout de code qui fonction correctement si je tape l'adresse manuellement dans ce code mais cela ne m'arrange pas puisque chaque produit a sont propre fichier xml. J'ai donc fait quelque modification afin qu'il aie chercher le fichier lui meme. et c'est la que je dois donc passer une variable de smarty vers php. Mais parcequ'il y a un mais, cela ne m'affiche rien. J'ai fait une verif avec un echo la ca fonctionne, mais on dirait qu'il ne prend pas la variable pour direction.
si quelqu'un pouvais m'aider, je suis super dans la m...
je vous expose mon petit soucis,
j'ai du malheureusement trouve une solution pas tres commode pour lire une fichier xml dans le template d'une boutique en ligne (prstashop). Au fure et a mesure du temps j'ai reussi a me debrouiller pour developpper un p'tit bout de code qui fonction correctement si je tape l'adresse manuellement dans ce code mais cela ne m'arrange pas puisque chaque produit a sont propre fichier xml. J'ai donc fait quelque modification afin qu'il aie chercher le fichier lui meme. et c'est la que je dois donc passer une variable de smarty vers php. Mais parcequ'il y a un mais, cela ne m'affiche rien. J'ai fait une verif avec un echo la ca fonctionne, mais on dirait qu'il ne prend pas la variable pour direction.
si quelqu'un pouvais m'aider, je suis super dans la m...
- Code: Tout sélectionner
{assign var='prodConvert' value=$product->description} // assignation de la variable pour le transfere a php
{php}
$myVar = $this->get_template_vars('prodConvert'); // recuperation de la variable
echo "$myVar<br /><br />"; // controle de cette variable, la il m'affiche bien l'adresse (du type : http://www.bacata.net/RSS/CT%20White_FR.xml)
//ouverture du fichier xml
$reader = new XMLReader();
$reader->open("$this->get_template_vars('prodConvert')"); //ici si je tape l'adresse manuellement ca fonctionne mais avec la variable ca ne fonctionne pas ???
//on parcours le fichier xml
while($reader->read())
{
//rechercher de l'élément nommé 'item'
if ($reader->nodeType == XMLREADER::ELEMENT && $reader->localName == "description")
{
//Lecture de son contenu
if ($reader->read())
{
$valeur = ($reader->value);
//afficher la valeur de l'élément
echo "$valeur<br /><br />";
}
}
}
{/php}
-

bproductiv - WRInaute accro

- Messages: 4173
- Inscription: 27 Déc 2004
Re: Passage de variable entre smarty et php
est ce que tu as cherché sur le site de smarty ?
il faut passer par un assign.
il faut passer par un assign.
- regnierjoffrey
- Nouveau WRInaute

- Messages: 4
- Inscription: 21 Jan 2010
Re: Passage de variable entre smarty et php
oui oui c'est bien ce que j'ai fait :
Mais je ne comprend pas pourquoi
Ne lit pas la variable comme une adresse normalement il devrais lire cela
et je suis sur que la variable ''prodConvert prend bien la variable puisque si je fais un echo il affiche le lien
{assign var='prodConvert' value=$product->description} //
Mais je ne comprend pas pourquoi
$reader->open("$this->get_template_vars('prodConvert')");
Ne lit pas la variable comme une adresse normalement il devrais lire cela
$reader->open("http://www.bacata.net/RSS/CT%20White_FR.xml");
et je suis sur que la variable ''prodConvert prend bien la variable puisque si je fais un echo il affiche le lien
-

bproductiv - WRInaute accro

- Messages: 4173
- Inscription: 27 Déc 2004
Re: Passage de variable entre smarty et php
Essaye sans les guillemets ?
source : http://www.smarty.net/manual/fr/language.custom.functions.php
source : http://www.smarty.net/manual/fr/language.custom.functions.php
smarty a écrit:Exemple 8-3. Accès aux variables {assign} depuis un script PHP
Pour accéder aux variables {assign} depuis le script PHP, utilisez get_template_vars(). Ci-dessous, le template qui crée la variable $foo.
- Code: Tout sélectionner
{assign var='foo' value='Smarty'}
Les variables de template ne sont disponibles que après/durant l'exécution du template, comme dans le script ci-dessous.
- Code: Tout sélectionner
<?php
// ceci n'affichera rien car le template n'a pas encore été exécuté
echo $smarty->get_template_vars('foo');
// Récupère le template dans une variable
$whole_page = $smarty->fetch('index.tpl');
// Ceci affichera 'smarty' car le template a été exécuté
echo $smarty->get_template_vars('foo');
$smarty->assign('foo','Even smarter');
// Ceci affichera 'Even smarter'
echo $smarty->get_template_vars('foo');
?>
- regnierjoffrey
- Nouveau WRInaute

- Messages: 4
- Inscription: 21 Jan 2010
Re: Passage de variable entre smarty et php
oui j'avais deja fait le test mais sans grand resultat.
c'est vraiment etrange ..... j'ai testé en local et en ligne meme resultat
c'est vraiment etrange ..... j'ai testé en local et en ligne meme resultat
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Passage de variable entre smarty et php
Je ne connais pas trop smarty je m'en suis servi uniquement sur prestashop :
Codé php
Coté html
J'ignore si ça pourra t'aider mais j'ai l'impression que tu fais ça dans le mauvais ordre, tu dois d'abord assigner et générer ton template, puis l'appeler.
Bon, peut-être y a-t-il des spécialistes de smarty dans le coin aussi.
Codé php
- Code: Tout sélectionner
$Smarty->assign('plop' => $ma_var_1,
'pwet' => $ma_var2);
Coté html
- Code: Tout sélectionner
<div>{plop}</div>
<div>{pwet}</div>
J'ignore si ça pourra t'aider mais j'ai l'impression que tu fais ça dans le mauvais ordre, tu dois d'abord assigner et générer ton template, puis l'appeler.
Bon, peut-être y a-t-il des spécialistes de smarty dans le coin aussi.
- regnierjoffrey
- Nouveau WRInaute

- Messages: 4
- Inscription: 21 Jan 2010
Re: Passage de variable entre smarty et php
Je vois que vous utilisez toujours une $smarty c'est une variable que vous nommé au hazard, ou son nom a une raison particuliere. Desolé j'ai pas vraiment le temps de commencer a lire tout la doc sur smarty fo que ma boutique soit en ligne lundi absolut .... donc gros galere 
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Passage de variable entre smarty et php
Justement, si tu veux vraiment qu'elle soit en ligne il va falloir que tu lises un peu son fonctionnement 
au départ du déclare ta classe avec un
ou truc du genre, d'où notre $smarty->function_de_la_classe.
au départ du déclare ta classe avec un
- Code: Tout sélectionner
$smarty = new Smarty();
ou truc du genre, d'où notre $smarty->function_de_la_classe.
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [Résolu] [Smarty] PHP non interprété
- intégrer contact.php dans .tpl smarty
- Probleme variable php '.xxxx.' dans autre variable '.zzzz.'
- [vbs] passage de variable
- passage variable en javascript
- rewriting d'url vs passage de variable en get
- passage de variable dans url php5
- Gros probleme de passage de variable en include !
- Guillemets, base sql, et passage variable url
- Rewriter une URL avec un passage de variable
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Live Search corrige le problème de referrers - 22-09-2006
- Search Cloudlet : un nuage de tags dans les pages Google - 06-03-2009
- Référencement de l'AJAX : la solution Google - 09-10-2009
- Fin de l'API Google Search SOAP - 27-05-2009
- Mise à jour du PageRank (29 Septembre 2006) - 29-09-2006
- Configurer des nouveaux moteurs dans Google Analytics - 12-06-2007
Consultez la description détaillée des produits ou services de Google suivants : JotSpot
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
