class RSS

Mammouth du PHP | 1311 Messages

03 nov. 2005, 18:01

Je suis tombé sur ceci par hasard. Ca peut peut-être t'aider
moi non mere-teresa l'avait donné une fois

pour info l'auteur de la classe a effectuer des changements et cette classe devrai fonctionner maintenant

mon thread part a l'origine de cette classe (mais elle n'etait pas encore au point), masi j'ai decide de faire ma classe afin de pouvoir du rss0.91 a de l'atom
malheuresement je manque de temps pour poursuivre

Mammouth du PHP | 983 Messages

03 nov. 2005, 18:06

:oops: Autant pour moi!

Mammouth du PHP | 1311 Messages

03 nov. 2005, 18:08

tout aide est la bien venue voyons :D

Mammouth du PHP | 1311 Messages

06 nov. 2005, 17:58

salut
je me replonge dans mon rss et j'ai des petites questions sur le doctype
voici comment je le declare dans mon template

Code : Tout sélectionner

<!DOCTYPE rss PRIVATE "http://localhost/projet_ing/RSS/rss2.dtd" >
je voiulais savoir si cette declaration est correcte car loadxml me renvoie une erreure

Code : Tout sélectionner

Warning: DOMDocument::loadXML() [function.loadXML]: DOCTYPE improperly terminated in Entity, line: 2 in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 103
donc ca vient soit de la declaration dans le tpl soit c'est la dtd mais je ne sais pas

Mammouth du PHP | 1311 Messages

08 nov. 2005, 18:51

salut
je commence molement les DTD
j'essaye d'en faire une pour le rss2

Code : Tout sélectionner

<!ELEMENT rss (channel,item+)> <!ELEMENT channel (title,link,description,langue,image?)> <!ELEMENT item (title,link,description,image*)> <!ELEMENT image (url,title,link,width?,height?)>
et j'ai des erreurs

Code : Tout sélectionner

Warning: Element rss content does not follow the DTD, expecting (channel , item+), got (channel ) in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106 Warning: No declaration for attribute version of element rss in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106 Warning: Element channel content does not follow the DTD, expecting (title , link , description , langue , image?), got (title link description language item item ) in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106 Warning: No declaration for element title in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106 Warning: No declaration for element link in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106 Warning: No declaration for element description in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106 Warning: No declaration for element language in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106
et le fichier xml

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>essai</title> <link>http://localhost/projet_ing/</link> <description>premier test</description> <language>fr</language> <copyright>by jeff</copyright> <item> <title>test1</title> <link>http://localhost/projet_ing/index.php?module=actu&action=display&id=1</link> <description>premier test1</description> </item> <item> <title>test2</title> <link>http://localhost/projet_ing/index.php?module=actu&action=display&id=2</link> <description>2ieme test</description> </item> </channel></rss>
Modifié en dernier par jeff le 09 nov. 2005, 10:37, modifié 1 fois.

Eléphant du PHP | 70 Messages

08 nov. 2005, 19:13

Tu déclares l'élément rss mais pas son attribut version. Regarde du côté de ATTLIST.

Dans la DTD du déclares langue comme élément de channel mais dans le document XML tu as une balise language.

Ça doit être des fautes d'inattention, c'est peut-être parce que tu y vas trop mollement :) :wink:

Mammouth du PHP | 1311 Messages

08 nov. 2005, 19:15

ouai je vien de le faire mais j'ai d'autre type d'erreur

Code : Tout sélectionner

<!ELEMENT rss (channel,item+)> <!ATTLIST rss version cdata #required> <!ELEMENT channel (title,link,description,langue,image?)> <!ELEMENT item (title,link,description,image*)> <!ELEMENT image (url,title,link,width?,height?)>
erreur

Code : Tout sélectionner

arning: http://localhost/projet_ing/RSS/rss2.dtd:2: parser error : '(' required to start ATTLIST enumeration in e:\wamp\www\projet_ing\lib\class\abstractrss.php on line 106
bof je cherche :?
Ça doit être des fautes d'inattention, c'est peut-être parce que tu y vas trop mollement Smile Wink
je vais peut etre mis mettre un peu plus :mrgreen:

Mammouth du PHP | 1311 Messages

09 nov. 2005, 10:57

une aute question comment inserer une DTD dans un document xml
pour l'instant j'essaye la method insertData
mais je ce message

Code : Tout sélectionner

Fatal error: Call to undefined method DOMDocument::insertData() in e:\wamp\www\projet_ing\lib\class\abstractrss.ph
ce qui me parait pas extrement arnormale car insertdata est une methode de DOMCharacterData
mais est ce que je peut l'utiliser avec DOMdocument

et sinon quelle methode autre je pourrai utiliser pour inserer ma dtd (preg_replace??)

Mammouth du PHP | 19672 Messages

10 nov. 2005, 13:34

une aute question comment inserer une DTD dans un document xml
Avec une balise <!DOCTYPE...>

Avec un document XHTML par exemple, ce sera:
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
À adapter selon le type de document que tu produis.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

10 nov. 2005, 13:38

ouai en fait je fais comme cela

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE rss SYSTEM "http://localhost/projet_ing/RSS/rss2.dtd" >
etant donné que je ne sais pas quel est le role de

Code : Tout sélectionner

"-//W3C//DTD XHTML 1.0 Strict//EN"
un lien interressant concernant xml
http://zvon.org
Modifié en dernier par jeff le 10 nov. 2005, 14:09, modifié 1 fois.

Mammouth du PHP | 19672 Messages

10 nov. 2005, 13:45

Dans la mesure où la déclaration fait référence à une DTD "public", il faut savoir qu'elle est en général intégrée dans le navigateur et l'url ne sert que pour les cas possibles où ce ne serait pas le cas. "system" fait quant à lui rféférence à une DTD locale et l'url pointe donc vers le chemin relatif où trouver la DTD.

Il faudrait que tu fouille dans les tutos, je ne peux pas m'étendre sur le sujet, il y a trop à dire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

10 nov. 2005, 16:10

mercie de ta reponse

j'ai autre probleme
j'ai voulue incorporé un feuille xsl pour mettre en forme mon fil
et le resultat c'est qu'il maffiche mon fichier php avec le quelle je construit le fil c'est a dire essai1.php
<?php 
include 'config/parametre.ini.php';
$path=dirname(__file__);
define('SMARTY_DIR_LIB',$path.'/lib/Smarty/libs');
define('DIR_ACTIONS',$path.'/Action/');
function __autoload($nom)
{
	require dirname(__file__).'/lib/class/'.$nom.'.php';
}
$mysql=new Mysqldb(SERVEUR,LOGIN,PASS,BASE);
$dao=new DAO($mysql);
$rss=new rss2_ab();
//$rss->send();
$champs=array('date','description','titre','id_a');
$table=array('actu');
$dao->SetVar($table,$champs);
$rss->channel=array('title'=>'essai','description'=>'premier test','link'=>'http://localhost/projet_ing/');
$rss->encoding='utf-8';
//$rss->lastBuildDate=date("d/m/Y-H:i:s");
$rss->language='fr';
$rss->xslt='./rss2.xsl';
foreach($dao->Select('','Limit 0,4') as $cle=>$tab)
{
	$rss->item=array('title'=>$tab[2],'description'=>$tab[1],'link'=>'http://localhost/projet_ing/index.php?module=actu&action=display&id='.$tab[3],'date'=>$tab[0],'guid'=>$tab[3]);
}

//$rss->lastBuildDate=date('d M Y  H:i');
$rss->createrss2();
//$rss->send();
//echo $rss->content;
?>
et voila ce qu'il maffiche

Code : Tout sélectionner

send(); $champs=array('date','description','titre','id_a'); $table=array('actu'); $dao->SetVar($table,$champs); $rss->channel=array('title'=>'essai','description'=>'premier test','link'=>'http://localhost/projet_ing/'); $rss->encoding='utf-8'; //$rss->lastBuildDate=date("d/m/Y-H:i:s"); $rss->language='fr'; $rss->xslt='./rss2.xsl'; foreach($dao->Select('','Limit 0,4') as $cle=>$tab) { $rss->item=array('title'=>$tab[2],'description'=>$tab[1],'link'=>'http://localhost/projet_ing/index.php?module=actu&action=display&id='.$tab[3],'date'=>$tab[0],'guid'=>$tab[3]); } //$rss->lastBuildDate=date('d M Y H:i'); $rss->createrss2(); //$rss->send(); //echo $rss->content; ?>
et voici le fichier xml tel qu'il devrais etre

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> <guid>1</guid> </item> <item> <title>test2</title> <link>http://localhost/projet_ing/index.php?module=actu&action=display&id=2</link> <description>2ieme test</description> <guid>2</guid> </item> </channel> </rss>
ca merde ou, la je suis depaser
:?

j'ai rien fait et maintenant ca fonctionne bien, j'ai peur :afraid: