Ajouter une url dansun fichier rss avec dom.

Eléphant du PHP | 97 Messages

10 avr. 2008, 17:00

Bonjour j'essaye en vain d'ajouter une url du titre http://lesite/leblog?article=$id,
dans un flux Rss, mais impossible la variable $id saute à chaque fois.
L'idée est de créer un lien dans le flux rss qui dirige directement vers l'article
concerné.

Voici ma fonction d'ajout d'une news dans le flux rss :
function addOneNews($file, $title, $date_pub, $desc,$url){
//On récupère le channel
$NodeList= $file->getElementsByTagName("channel");
$element_channel = $NodeList->item(0);

// Création du noeud item
$element_item = $file->createElement("item");
$element_item = $element_channel->appendChild($element_item);

// Création du noeud title et ajout du texte à l élément
$element_title = $file->createElement("title");
$element_title = $element_item->appendChild($element_title);
$texte_title = $file->createTextNode($title);
$texte_title = $element_title->appendChild($texte_title);

// Création du noeud link et ajout du texte à l élément
$element_link = $file->createElement("link");
$element_link = $element_item->appendChild($element_link);
$texte_link = $file->createTextNode($url); //<------- C'est ici que ça coince
$texte_link = $element_link->appendChild($texte_link);

// Création du noeud pubDate et ajout du texte à l élément
$element_date = $file->createElement("pubDate");
$element_date = $element_item->appendChild($element_date);
$texte_date = $file->createTextNode($date_pub);
$texte_date = $element_date->appendChild($texte_date);

//Création du noeud description et ajout de texte à l'élément
$element_description = $file->createElement("description");
$element_description = $element_item->appendChild($element_description);
$texte_desc = $file->createTextNode($desc);
$texte_desc = $element_description->appendChild($texte_desc);

// Création du noeud author et ajout du texte à l élément
$element_author = $file->createElement("author");
$element_author = $element_item->appendChild($element_author);
$texte_author = $file->createTextNode("Moi_auteur");
$texte_author = $element_author->appendChild($texte_author);
}



Et voici l'url envoyé en param :
$url ='http://localhost/~moi/lesite/blog.php?id='.$id_blog;
Comment faire pour forcer Dom à me mettre mon url en entier ?
Est ce avec une autre méthode que createTextNode qu'il faut procéder si oui laquelle ?

Merci d'avance.
Try again.
Fail again.Fail better.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 avr. 2008, 17:04

Tu as vérifié $url ? Ecrit en dur l'id... ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 97 Messages

10 avr. 2008, 17:22

Oui, quand on écrit en dur l'id pas de soucis, en revanche dès que je passe une variable $id,
je me retrouve avec un lien du type : http://localhost/~moi/lesite/blog.php?id= (et ça s'arrête là) pour tous les articles dans mon flux rss.


Edit : Non effectivement tu avais raison, il y avait bien un problème dans l'url et non dans la fonction
qui provenait d' une requête sql incomplète.

Désolé du dérangement.
Try again.
Fail again.Fail better.