Sujet déplacé le mercredi 16 avril 2008 : 17:42Sujet déplacé le mercredi 16 avril 2008 : 17:32Bonsoir;
Je vous propose d'ajouter la possibilité de générer à partir des dernières news...
Déposez le fichier dans le module news sous le nom rss.php. Pour générer le fichier, créer un lien "index.php?mod=news&ac=rss"
Fichier en téléchargement sur :
http://clos.matines.free.fr/index.php?mod=downloadMerci d'être indulgent, je débute en php. En fait c'est mon premier code. Je pense qu'il peut être grandement amélioré.
Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
<?php
// Permet de générer un fichier rss à partir des dernières news
// Nommer ce fichier "rss.php" et le placer dans Module/news
// --------------------------------
// Codé par Fifi69
// Mise a jour : 25/03/08 15:00
// Merci Steff et Garveur pour leurs tests, conseils et corrections ...
// --------------------------------
-
if (! (defined ('__KWS__'))) { die ('Erreur d'appel de fichier.'); }
-
$rss_file = 'flux/rss.xml'; // Emplacement et nom fichier xml
$id_grp = '1'; // Grade par défaut
-
//$rss_puce = 'flux/puce.png' // Ne pas dépasser 80 px
-
$rss_nb = $_POST['int_rss_nb'];
$rss_grade = $_POST['int_rss_grade'];
-
if (get_grade() >= GRD_MODOG)
{
bloc_head('Mise à jour du RSS');
if ($rss_grade == '' || is_numeric($rss_nb) == false)
{
// Affichage des options : Nombre de news et grades maximum
echo '
<form name="formulaire" method="post" action="index.php">
<input type="hidden" name="mod" id="mod" value="news" />
<input type="hidden" name="ac" id="ac" value="rss" />
<fieldset>
<p>
<label style="display: inline; float: left; width: 200px;" for="nom_page2">Création du fichier :</label>
<strong>'.ax($url_site).$rss_file.'</strong>
</p>
<p>
<label style="display: inline; float: left; width: 200px;" for="grade">Grade maximum de la catégorie :</label>
<select name="int_rss_grade" id="int_rss_grade">
<option value="0" >Visiteurs</option>
<option value="">---------------------</option>';
// Recherche des grades et remplissage de la liste déroulante
$req_grp = reqmysql('SELECT `id`, `nom` FROM `groupes_grp`');
while ($grp = mysql_fetch_object($req_grp))
{
$grp_id = $grp->id;
if ($grp_id == $id_grp)
{
echo '
<option value="'.$grp_id.'" selected="selected">'.$grp->nom.'</option>';
}
else
{
echo '
<option value="'.$grp_id.'">'.$grp->nom.'</option>';
}
}
echo '
</select>
</p>
<p>
<label style="display: inline; float: left; width: 200px;" for="nb">Nombre de news :</label>
<input type="text" value="5" name="int_rss_nb" id="int_rss_nb" size="2" />
</p>
<p>
<input type="submit" id="submit" value="Générer" onsubmit="return controle()" />
</p>
</fieldset>
</form>';
}
else
{
// Début du fichier XML
- $xml = '<?xml version="1.0" encoding="iso-8859-1"?>' .chr(13);
- $xml .= '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">' .chr(13);
- $xml .= '<channel>' .chr(13);
- $xml .= '<atom:link href="'.ax($url_site).'flux/rss.xml" rel="self" type="application/rss+xml" />' .chr(13);
- $xml .= '<title>'.ax($nom_page).'</title>' .chr(13);
- $xml .= '<link>'.ax($url_site).'</link>' .chr(13);
- //$xml .= '<image>' .chr(13);
- //$xml .='<url>'.ax($url_site).'favicon.png</url>' .chr(13);
- //$xml .='<link>'.ax($url_site).'</link>' .chr(13);
- //$xml .='</image>' .chr(13);
- $xml .= '<description>Les dernieres news</description>' .chr(13);
- $xml .= '<language>fr</language>' .chr(13);
- $xml .= '<generator>KwsPHP</generator>' .chr(13);
- //$xml .= '<copyright>Clos des Matines</copyright>' .chr(13);
- $xml .= '<copyright>'.bbcode($copyrights,0,0,1,1).'</copyright>' .chr(13);
- $xml .= '<webMaster>'.ax($email_expediteur).' ('.ax($nom_page).')</webMaster>' .chr(13);
- $xml .= '<ttl>15</ttl>' .chr(13) .chr(13);
- // $puce_size = filesize($rss_puce);
-
- // extraction des données
- $res=reqmysql('SELECT news.*, article_cat.grade, article_cat.image as image FROM news INNER JOIN article_cat ON article_cat.id = news.ref WHERE article_cat.grade <= '.$rss_grade.' ORDER BY news.date DESC LIMIT 0 , '.$rss_nb);
-
- // Remplissage des items
- while($tab=mysql_fetch_array($res))
- {
- $titre=$tab['titre'];
- $lien=$tab['id'];
- $description=$tab['titre'];
- $date=date("D, d M Y H:i:s", $tab['date']);
- $ico = $tab['image'];
-
- $xml .= '<item>' .chr(13);
- $xml .= '<title>'.$titre.'</title>' .chr(13);
- //$xml .= '<enclosure '.ax($url_site).'image/puce1.gif" length="'.$puce_size.'" type="image/gif" />' .chr(13);
- $xml .= '<link>'.ax($url_site).'index.php?mod=news&ac=commentaires&id='.$lien.'</link>' .chr(13);
- $xml .= '<pubDate>'.$date.' GMT</pubDate>' .chr(13);
- $xml .= '<description>'.$description.'</description>' .chr(13);
- $xml .= '<guid isPermaLink="true">'.ax($url_site).'/index.php?mod=news&ac=commentaires&id='.$lien.'</guid>' .chr(13);
- $xml .= '</item>' .chr(13) .chr(13);
- }
-
- // Fin du fichier XML
- $xml .= '</channel>' .chr(13);
- $xml .= '</rss>';
-
- // écriture du fichier
- $fp = fopen("./".$rss_file, 'w+');
- fputs($fp, $xml);
- fclose($fp);
- chmod("./".$rss_file, 0777 );
-
- // $txt=str_replace("<","<",$xml);
- $txt=str_replace("<","<",$xml);
- $txt=str_replace(chr(13),"<br />",$txt);
-
- echo '
- <div style="text-align:center;">Fichier déposé à l'emplacement suivant</div>
- <div style="text-align:center;font-weight: bold ;">'.ax($url_site).$rss_file.'<br /><br />
- - <a href="http://validator.w3.org/feed/check.cgi?url='.ax($url_site).$rss_file.'" target="_blank">Contrôler sa validité</a> -<br />
- - <a href="index.php?mod=news&ac=gestion">Retour</a> -</div><hr />
- <div style="text-align:left;">'.$txt.'</div>';
-
- }
- close_table();
- }
- else
- {
- ZoneReserve();
- }
- $aff_drt=1;
- ?>
Edité samedi 22 mars 2008 : 11:20 par mike007Edité mercredi 26 mars 2008 : 15:28 par Fifi69