Page 1 sur 1

RSS

Posté : 29 avr. 2005, 16:04
par matteo17
Bonjour,
je suis a la recherche d'un script, ou bon tutoriaux sur la syndication.
Si kel kun peut m'aider.


Merci

Posté : 01 mai 2005, 00:12
par matt_m
bonsoir

j'ai posté le contenu de ma classe sur ce topic
elle n'est pas en ligne, mais ca ne saurait tarder
si ca peut te filer un coup de main...

Posté : 01 mai 2005, 00:16
par Xenon_54

Posté : 02 mai 2005, 11:08
par matteo17
Ouep, je viens de regarder ton post. Je trouve que ton code est assez long comparé à celui que j'ai fais. Cependant j'aimerais avoir votre avis sur mon script et savoir lequel et le mieu ficelé des deux, car je ne prétend pas que le mien soit mieux. Je désire juste utiliser quelques choses de propre pour l'entreprise ou je réalise mon stage. Je met donc ce script à vos critiques qui me seront utilie dans le bon déroulement de mon projet.
Je suis désolé mais je n'ai pas encore pris le temps de commenté celui-ci.
Veuillez m'en excuser.
<?php

$headline_style='';
$description_style='';
$feed_url='';
$show_detail=false;
$insideitem=false;
$tag="";
$title="";
$description="";
$link="";
$image="";
$insideimage=false;
$max=3; // nombre maximum de news afficher par page
$count=0;


function render_news($feed_url, $showdetail, $headlinestyle,$detailstyle)
{
	global $show_detail, $headline_style, $detail_style, $max, $count, $insideitem, $insideimage;
	
	$insideitem = false;
	$insideimage = false;
	$count = 0;
	$show_detail = $showdetail;
	$headline_style = $headlinestyle;
	$detail_style = $detailstyle;
	
	$xml_parser = xml_parser_create();
	xml_set_element_handler($xml_parser,"startElement", "endElement");
	xml_set_character_data_handler($xml_parser,"characterData");
	$fp = @fopen($feed_url, "r") or die("Erreur à la lecture du fichier RSS.");
	if($fp)
	{
		while($data = fread($fp,4096))
		
		xml_parse($xml_parser, $data, feof($fp)) or die(sprintf("Erreur XML n° %s à la ligne %d", 
		xml_error_string(xml_get_error_code($xml_parser)), 
		xml_get_current_line_number($xml_parser)));
		fclose($fp);
		
	}
	else
	{
		echo'<span class="'.$detail_style.'">Contenu inacessible</span>';
	}
	xml_parser_free($xml_parser);
}

function startElement($parser, $name, $attrs)
{
	global $insideitem, $tag, $title, $description, $link, $image, $insideimage;
	if($insideitem || $insideimage)
	{
		$tag = $name;
	}
	if($name == "ITEM")
	{
		$insideitem = true;
	}
	if($name == "IMAGE")
	{
		$insideimage = true;
	}
}

function endElement($parser, $name)
{
	global $insideitem, $tag, $title, $description, $link, $image, $insideimage,
		$show_detail, $headline_style, $detail_style, $count, $max;
	if($name == "URL")
	{
		echo'<img src = "'.htmlspecialchars(trim($image)).'"/><br><br>';
		$insideimage = false;
		$image="";
	}
	else if($name == "ITEM" && $count < $max)
	{
		$count++;
		printf('<a href="%s" class="'.$headline_style.'" target="_blank"> <b>%s</b></a><br>',
		trim($link), trim(htmlspecialchars($title)));
		if($show_detail)
			printf('<span class="'.$detail_style.'">%s</span><br>', 
			trim(htmlspecialchars($description)));
		else{echo"<br>";}
		$title=""; 
		$description=""; 
		$link="";
		$insideitem=false;
	}
}

function characterData($parser, $data)
{
	global $insideitem, $tag, $title, $description, $link, $image, $insideimage;
	if($insideimage)
	{
		switch($tag)
		{
			case "URL":
			$image.=$data;
			break;
		}
	}
	if($insideitem)
	{
		switch($tag)
		{
			case "TITLE": $title.=$data;
			break;
			case "DESCRIPTION": $description.=$data;
			break;
			case "LINK";
			$link.=$data;
			break;
		}
	}
}
 render_news("http://www.journaldelagence.com/backend.php",true,'news','news'); //chemin du site syndicalisé
?>

<!-- Merci à celle et ceux ki m'aiderons dans la réalisation de ma tâche -->

Posté : 02 mai 2005, 20:28
par matt_m
effectivement mon code est plus long que le tiens, car j'ai essayé de respecter le standard de rss 2.0 :)
donc il y a pleins d'options que j'ai realisé mais que je n'ai pas encore testé et dont je ne me sers pas encore :p
voila pourquoi la librairie n'est pas encore en ligne ;)