Fork me on GitHub






récupérer un flux xml dans une variable smarty
Semi pro
Inscrit: 27/10/2004 11:10
Messages: 566
Bonjour
appel aux codeurs du forum
voici mon code :
$curl curl_init();
    
curl_setopt($curl,CURLOPT_URL,"http://www.unsite.com/php/flux_rss/events.php");
    
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    
$contenu curl_exec($curl);
    
$xml = new simpleXMLElement($contenu);
    
    foreach(
$xml->item as $result)
    {

        if(
strlen($result->no_evenement)<>""){
            echo 
"numero : {$result->no_evenement} <br/>";
        }
        
        if(
strlen($result->titre)<>""){
            echo 
"titre : <b>$result->titre</b> <br/>";
        }
        
        if(
strlen($result->lien)<>""){
            echo 
"lien : <a href='$result->lien'>$result->lien</a> <br/>";
        }
    
        if(
strlen($result->date_deb)<>""){
            echo 
"date debut : $result->date_deb <br/>";
        }
    
        if(
strlen($result->date_fin)<>""){
            echo 
"date fin : $result->date_fin <br/>";
        }
        
        if(
strlen($result->pays)<>""){
            echo 
"pays : $result->pays <br/>";
        }
        
        if(
strlen($result->ville)<>""){
            echo 
"ville : $result->ville <br/>";
        }
    
        if(
strlen($result->lieu)<>""){
            echo 
"lieu : $result->lieu <br/>";
        }
           }

Je cherche à créer une variable smarty ( un tableau) qui me permette de récupérer et mettre en forme le flux xml
La même chose pour les champs d'une base de données, je vois comment faire, mais là je sèche

si quelqu'un peut me mettre sur la voie, merci

Posté le : 20/11/2009 10:13

J'aime les sirènes ...
j'aime pas les arrêtes dans le poisson !...
Partager Twitter Partagez cette article sur GG+
Re: récupérer un flux xml dans une variable smarty
Semi pro
Inscrit: 13/12/2004 11:28
De Lyon
Messages: 1364
Salut,

tu peux utiliser la fonction $xoopsTpl->append_by_ref(...) qui va te permettre d'ajouter dans un tableau smarty un tableau php.

Exemple:
foreach($xml->item as $result){
    
$tab_array = array(); 
    if(
strlen($result->no_evenement)<>""){
        
$tab_array["numero"] = $result->no_evenement;
    }    
    if(
strlen($result->titre)<>""){
        
$tab_array["titre"] = $result->titre;
    }
    
// .....    
    
$xoopsTpl->append_by_ref'my_tab'$tab_array );    
}


Voila j'espere que cela va t'aider

MusS

Posté le : 20/11/2009 14:06
Partager Twitter Partagez cette article sur GG+
Re: récupérer un flux xml dans une variable smarty
Semi pro
Inscrit: 27/10/2004 11:10
Messages: 566
Merci MusS
Quand je serai grand, je veux être programmeur
... bon, je ne suis pas totalement sortie de l'embarras, car pour l'instant il n'y a pas d'incrémentation des données, j'ai 20 fois les mêmes données ( n°,titre, lien etc...)

voici ce que j'ai mis dans mon template (il n'y a pas encore de mise en forme, c'est juste pour tester )
<{foreach item=result from=$my_tab}>
<{
$result.numero}><br />
<{
$result.titre}><br />
<{
$result.lien}><br />
<{
$result.date_deb}><br />
<{
$result.date_fin}><br />
<{
$result.pays}><br />
<{
$result.ville}><br />
<{
$result.lieu}><br />
<{
$result.genre}><br />
<{
$result.image}><br />
<{
$result.description}><br />
<{/foreach}>


j'ai bien essayé ça :
$tab_array = array();
$q=1
    if(
strlen($result->no_evenement)<>""){
        
$tab_array[$q]["numero"] = $result->no_evenement;
    }    
    if(
strlen($result->titre)<>""){
        
$tab_array[$q]["titre"] = $result->titre;
    }
$q++;
    
// .....

mais là, j'ai plus de résultat du tout ...
?

Posté le : 20/11/2009 15:55

J'aime les sirènes ...
j'aime pas les arrêtes dans le poisson !...
Partager Twitter Partagez cette article sur GG+
Re: récupérer un flux xml dans une variable smarty
Semi pro
Inscrit: 13/12/2004 11:28
De Lyon
Messages: 1364
Salut,

J'ai oublié une petite chose, l'unset qui vide la variable :

foreach($xml->item as $result){
    
$tab_array = array(); 
    if(
strlen($result->no_evenement)<>""){
        
$tab_array["numero"] = $result->no_evenement;
    }    
    if(
strlen($result->titre)<>""){
        
$tab_array["titre"] = $result->titre;
    }
    
// .....    
    
$xoopsTpl->append_by_ref'my_tab'$tab_array ); 
    
// Mon oubli
    
unset $tab_array;   
}


Bon code

MusS

Posté le : 20/11/2009 21:39
Partager Twitter Partagez cette article sur GG+
Re: récupérer un flux xml dans une variable smarty
Semi pro
Inscrit: 27/10/2004 11:10
Messages: 566
Merci MusS

j'ai juste corrigé
unset $tab_array;

par
unset ($tab_array);

et cette fois ci c'est bon
tu m'as permis de franchir un mur
rassures toi, il doit m'en rester quelques uns à franchir

Posté le : 20/11/2009 22:51

J'aime les sirènes ...
j'aime pas les arrêtes dans le poisson !...
Partager Twitter Partagez cette article sur GG+
Re: récupérer un flux xml dans une variable smarty
Semi pro
Inscrit: 13/12/2004 11:28
De Lyon
Messages: 1364
Si cela a corriger ton problème, il faudrait passer le sujet en résolu

Posté le : 22/11/2009 22:29
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

12 Personne(s) en ligne (9 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 12 | Plus ...