- Accueil du site
- Contact
- Plan du site
- Sites Web
- En résumé
-
Rechercher
-
samedi 24 mars 2007 par Bertrand Degoy
L’intégration du contenu d’un flux RSS dans SPIP, le remarquable système de présentation de page écrit en PHP, nécessite l’écriture de quelques lignes de script dans ce langage. Deux exemples sont présentés ici, que l’on peut voir fonctionner dans cette page :
L’inclusion d’une liste d’articles en colonne droite. Dans cet exemple, le squelette des articles (ce pourrait être également le squelette des rubriques ou tout autre) est modifié, de sorte que toutes les pages dérivées de ce modèle présentent le fil. Les produits sont sélectionnés en fonction d’un mot clé attribué à la page, afin que le contenu du fil soit en rapport avec le contenu de la page.
Dans l’exemple donné, en fait de mot clef, on fournit l’ensemble des paramètres attendus par le Web Service sous la forme : CatId=29&Keys=BB (Pour une description de l’appel du web service et des paramètres, se reporter à la description du WebService ShopCatalog).
On procède en deux étapes. Tout d’abord, il faut récupérer le mot clef dans une boucle :
<BOUCLE_mots(MOTS) {id_article} {par titre}>
<li>
...
</li>
<?php $Search ="[(#TITRE|supprimer_numero|supprimer_tags)]" ; ?>
</BOUCLE_mots>Ensuite, il faut insérer le contenu du fil en colonne droite, avec un script du genre :
<?php
$doc = new DOMDocument();
$doc->load("http://rss.bidiweb.com/proto/ShopCatalog.asmx/getRSS?" . $Search);
if (! is_null($doc) ) {
echo $xsl->transformToXML($doc);
}
?>
L’inclusion d’une liste d’articles dans le texte d’une page donnée. Dans cet exemple, l’appel du flux RSS est écrit dans le texte de l’article par le rédacteur. Il n’y a donc aucune modification de squelette. Cependant, pour que cela fonctionne, il faut écrire un filtre spécifique dont le code est introduit dans le fichier mes_fonctions.php, car SPIP n’accepte pas l’appel à un script dans le texte d’un article :
/*
Nom du Filtre : Inclure XML *
Ce filtre permet de lancer une transformation XML-XSL
A appeler dans le texte par #INCLUDE_XML(fichier.xml (ou webservice.asmx/getRSS?etc.))
*/
function inclure_xml( $texte ) {
// Détecter le code de l'appel et extraire les paramètres
$chaine_recherche = '/#INCLU[R|D]E_XML\(([^\(]*)\)/i';
// Recherche la chaine #INCLUDE_XML(xmlFile)
preg_match( $chaine_recherche, $texte, $resultats );
$res = str_replace('&', '&', $resultats[1]);
// Créer un document DOM et appeler le Web Service
$doc = new DOMDocument();
$doc->load("http://rss.bidiweb.com/proto/ShopCatalog.asmx/getRSS?" . $res");
$affichage_php = $xsl->transformToXML($doc);
// Supprimer le code d'appel
$texte = preg_replace( $chaine_recherche, $affichage_php, $texte, 1);
return($texte);
}Dans le texte, le fil est affiché par un appel comme :
#INCLURE_XML(CatId=58&Keys=e&LangId=4)Ensuite :
Afficher un flux RSS dans une page aspx avec Visual Basic .Net
En savoir plus :
Visualisation des fils RSS produits par les Web Services
Description des opérations du Web Service ShopCatalog
La syndication dans le système BiDiShops
Le site cherbourg-maquettes.com
Un système de vente fondé sur osCommerce
osCommerce
Site réalisé avec SPIP 2.0.10 [14698] + BiDiWeb
RSS fr RSSSPIP : techniques et compléments ?
Copyright © 2007 Degoy net Consultants - Tous droits réservés
Degoy net Consultants - SARL au capital de 7500 € - SIRET : 502 478 365 00013 RCS Nanterre