Module de news avec flux rss ?

Mammouth du PHP | 1311 Messages

06 nov. 2005, 19:32

ob_start va capturer les données qui sont envoyéer au navigateur et ob_get_content permet de les recupere dans une variable
une que c'est recupere tu na plus cas ecrire ton fichier xml soit avec fopen et fwrite soit avec loadxml et savexml
public function getXML()
     {
         ob_start();
         $this->content=ob_get_contents();
         ob_clean();
         return $this->content;
     }
     
     public function Writexml()
     {
         $xml=new DOMDocument();
         $xml->loadXML($this->content);
         $xml->saveXML($this->file);
     }

K20
Eléphant du PHP | 303 Messages

06 nov. 2005, 19:34

Je ne veux pas construire le fichier XML ...
Je veux me servir simplement de mon flux rss généré dynamiquement en PHP donc juste me servir de ça : http://www.pc-shows.com/rss.php?act=news

Ce n'est pas possible ?

Mammouth du PHP | 1311 Messages

06 nov. 2005, 19:36

pardon j'avais pas compris
ton fichier xml est construit??
si oui au lieu d'utiliser php utilise xslt

K20
Eléphant du PHP | 303 Messages

06 nov. 2005, 19:43

Bon, on va reprendre du début car on s'embrouille ^^

J'ai un fichier http://www.pc-shows.com/rss.php?act=news qui génère dynamiquement mes news dans un flux RSS.

Je veux proposer à certains webmaster un petit script qui leur permettra d'afficher rapidement et sans aucune connaissance en php mes news sous forme de tableau dans leur site.

Pour se faire, je veux utiliser le fichier précédent qui n'est pas un fichier xml mais un fichier php. Mais ce même fichier renvoie au final du XML avec du RSS.

Donc non mon fichier XMl n'est pas construit explicitement ;) il y a juste du XMl qui apparait à la fin quand je vais sur : http://www.pc-shows.com/rss.php?act=news

Voilà, donc comment utiliser le code que Fab m'a fourni ou alors même comment faire ce que je veux d'une autre façon ?

J'espère que c'est plus clair comme ça ? :?

Merci de m'aider ;)

Mammouth du PHP | 1311 Messages

06 nov. 2005, 19:47

donc j'avais compris a moitier
moi je te propose une solution (je pense la plus simple)

tu genere un flux rss grace a php(mais tu n'a aucun fichier xml physique)
tu enregistre ton fichier gener au format xml
et tu developpe une feuille xslt qui te permetra de transformer ton fichier xml
et voila :D
(une autre solution est de creer un parseur mais cette solution est plus longue a developper)

K20
Eléphant du PHP | 303 Messages

06 nov. 2005, 19:49

Non, comme je l'ai dit, je ne veux pas générer ensuite de fichier XML, pour la bonne raison que pour générer ce fichier il faudrait se rendre régulièrement sur ma page php qui génère le flux RSS ...

Donc je préfère la seconde solution, mais comment faire ?

K20
Eléphant du PHP | 303 Messages

10 nov. 2005, 01:11

Je suis toujours coincé ;)

Mammouth du PHP | 1311 Messages

10 nov. 2005, 09:12

j'ai repenser a ton probleme
et je pense qu'une feuille xslt declarer dans ton fil rss devrai etre la meilleur solution de cette favon les autres wemasteur n'auront cas appeller l'adresse de ton fil

K20
Eléphant du PHP | 303 Messages

10 nov. 2005, 12:25

Heu, ok mais on fait comment ca ??

Mammouth du PHP | 1311 Messages

10 nov. 2005, 13:41

voici comment tu peut faire(c'est exemple issue de mon template)
la declarion dans ton fils rss

Code : Tout sélectionner

<?xml version="1.0" encoding="{$encoding}" standalone="no"?> <!--<!DOCTYPE rss SYSTEM "http://localhost/projet_ing/RSS/rss2.dtd" >--> <?xml-stylesheet href="lienXSLT" type="text/xsl"?>
et tu programme ta feuille xslt de facon a avoir un affichage en html
(regarde des tuto la dessus carj'ai pas encore abordé le sujet mais ca ne devrais tardé)

K20
Eléphant du PHP | 303 Messages

10 nov. 2005, 19:47

Mais mon lien XSLT il renvoie vers quoi exactement ? Un truc que je génère dinamyquement ? Il faut que seul le fichier rss.php soit dynamique, le reste ça doit être figé en quelque sorte.

Je comprend pas vraiment ce que vous me proposez :?

Mammouth du PHP | 1311 Messages

11 nov. 2005, 12:55

en fait ton lien xslt renvoi vers une feuille qui va transformer ton fichier xml en fichier html (en fait c'est une sorte de template pour cette utilisation)

je vien de mi mettre voici un exemple
fichier xml

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8" standalone="no"?> <!--<!DOCTYPE rss SYSTEM "http://localhost/projet_ing/RSS/rss2.dtd" >--> <?xml-stylesheet href="./rss2.xsl" type="text/xsl"?> <rss version="2.0"> <channel> <title>essai</title> <link>http://localhost/projet_ing/</link> <description>premier test</description> <language>fr</language> <item> <title>test1</title> <link>http://localhost/projet_ing/index.php?module=actu&action=display&id=1</link> <description>premier test1</description> <image> <url>http://localhost/projet_ing/template/templates/rss/img/images.jpg</url> <title>mer</title> <link>http://localhost/projet_ing/</link> <width/> <height/> </image> <guid>1</guid> <pubDate>2005-11-10 15:54:09</pubDate> </item> <item> <title>test2</title> <link>http://localhost/projet_ing/index.php?module=actu&action=display&id=2</link> <description>2ieme test</description> <image> <url>http://localhost/projet_ing/template/templates/rss/img/images1.jpg</url> <title>bateau</title> <link>http://localhost/projet_ing/</link> <width/> <height/> </image> <guid>2</guid> <pubDate>2005-11-10 15:54:21</pubDate> </item> </channel> </rss>
fichier xslt

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output encoding="iso-8859-1" indent="yes" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> <xsl:template match="/"> <html> <head> </head> <body> <xsl:apply-templates select="//item"> <xsl:sort data-type="number" select="guid" order="descending" /> </xsl:apply-templates> </body> </html> </xsl:template> <xsl:template match="item"> <div> <xsl:attribute name="id"> <xsl:text>#</xsl:text> <xsl:value-of select="guid"/> </xsl:attribute> <xsl:attribute name="class"> <xsl:text>article</xsl:text> </xsl:attribute> <h2> <xsl:value-of select="title"/> </h2> <p> <xsl:attribute name="lang"> <xsl:text>fr</xsl:text> </xsl:attribute> <xsl:value-of select="description"/> </p> </div> </xsl:template> </xsl:stylesheet>
essaye ce code (c'est juste un debut et regarde si ca peut t'aider)
tien un lien http://xmlfr.org/w3c/TR/xslt/ :wink:

K20
Eléphant du PHP | 303 Messages

11 nov. 2005, 14:37

Hum ok ;)
Je pense que ça va me permettre de faire ce que je veux :)

K20
Eléphant du PHP | 303 Messages

11 nov. 2005, 15:42

En mettant ton code voilà ce que ça me donne : http://www.pc-shows.com/rss.php?act=news

:(

Mammouth du PHP | 1311 Messages

11 nov. 2005, 16:51

hum est ce qu'on pourrai voir comment tu t'en sert (je pense savoir d'ou ca vien)

d'autre part ton flux rss n'est pas bon il manque description aux item pour que ce flux soit valide