Accueil   Accueil    Forum   Forum    Download   Download    Livre d'or   Livre d'or    Contact   Contact    Liens Web   Liens Web

[News] Générer son flux RSS : Explications - CMS KwsPHP - Le site clés en main

Colonne de gauche

Espace membre

Privé Masquer le formulaire de connexion


Se souvenir de moi ?


Mot de passe oublié

Menu

Forum

Sujets Importants

fleche basForum : Masquer l’entête

Accès rapide :

 

Effectuer une Recherche avancée OU


fleche bas[Résolu] [News] Générer son flux RSS : Explications  [42 réponses]

puce Index du Forum  » Divers  » Webmastering


Répondre


fleche bas

ΨFifi69
Manager
starsr6.png


avatar
Hors ligne

Nombre de posts: 1191 (0.17/Jour)
Inscrit(e) le: 28 juillet 2007
Visiter son site
Imprimer Permalien vendredi 21 mars 2008 à 22:41  
Sujet déplacé le mercredi 16 avril 2008 : 17:42

Sujet déplacé le mercredi 16 avril 2008 : 17:32

Bonsoir;

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=download

Merci 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
  1. <?php
  2. // Permet de générer un fichier rss à partir des dernières news
  3. // Nommer ce fichier  "rss.php" et le placer dans Module/news
  4. // --------------------------------
  5. // Codé par Fifi69
  6. //  Mise a jour : 25/03/08 15:00
  7. // Merci Steff et Garveur pour leurs tests, conseils et corrections ...
  8. // --------------------------------
  9.  
  10. if (! (defined ('__KWS__'))) { die ('Erreur d'appel de fichier.'); }
  11.  
  12. $rss_file = 'flux/rss.xml'; // Emplacement et nom fichier xml
  13. $id_grp = '1'; // Grade par défaut
  14.  
  15. //$rss_puce = 'flux/puce.png' // Ne pas dépasser 80 px
  16.  
  17. $rss_nb    = $_POST['int_rss_nb'];
  18. $rss_grade = $_POST['int_rss_grade'];
  19.  
  20. if (get_grade() >= GRD_MODOG)
  21. {
  22.     bloc_head('Mise à jour du RSS');
  23.     if ($rss_grade == '' || is_numeric($rss_nb) == false)
  24.     {
  25.         // Affichage des options : Nombre de news et grades maximum
  26.         echo '        
  27.         <form name="formulaire" method="post" action="index.php">
  28.         <input type="hidden" name="mod" id="mod" value="news" />
  29.     <input type="hidden" name="ac" id="ac" value="rss" />
  30.     <fieldset>
  31.         
  32.         <p>
  33.         <label style="display: inline; float: left; width: 200px;" for="nom_page2">Création du fichier :</label>
  34.         <strong>'.ax($url_site).$rss_file.'</strong>
  35.         </p>
  36.         <p>
  37.         <label style="display: inline; float: left; width: 200px;" for="grade">Grade maximum de la catégorie :</label>
  38.           <select name="int_rss_grade" id="int_rss_grade">
  39.       <option value="0" >Visiteurs</option>
  40.       <option value="">---------------------</option>';
  41.       // Recherche des grades et remplissage de la liste déroulante
  42.       $req_grp = reqmysql('SELECT `id`, `nom` FROM `groupes_grp`');
  43.       while ($grp = mysql_fetch_object($req_grp))
  44.       {
  45.                   $grp_id = $grp->id;
  46.                   if ($grp_id == $id_grp)
  47.                   {
  48.                     echo '
  49.                     <option value="'.$grp_id.'" selected="selected">'.$grp->nom.'</option>';
  50.                   }
  51.                   else
  52.                   {
  53.                     echo '
  54.                     <option value="'.$grp_id.'">'.$grp->nom.'</option>';
  55.                   }
  56.              }
  57.        echo '
  58.        </select>
  59.   </p>
  60.   <p>
  61.         <label style="display: inline; float: left; width: 200px;" for="nb">Nombre de news :</label>
  62.         <input type="text" value="5" name="int_rss_nb" id="int_rss_nb" size="2" />
  63.     </p>
  64.     <p>
  65.         <input type="submit" id="submit" value="Générer" onsubmit="return controle()" />
  66.     </p>
  67.     </fieldset>
  68.   </form>';
  69.     }
  70.     else
  71.     {
  72.         // Début du fichier XML
  73.         $xml = '<?xml version="1.0" encoding="iso-8859-1"?>' .chr(13);
  74.         $xml .= '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">' .chr(13);
  75.         $xml .= '<channel>' .chr(13);
  76.         $xml .= '<atom:link href="'.ax($url_site).'flux/rss.xml" rel="self" type="application/rss+xml" />' .chr(13);
  77.         $xml .= '<title>'.ax($nom_page).'</title>' .chr(13);
  78.         $xml .= '<link>'.ax($url_site).'</link>' .chr(13);
  79.         //$xml .= '<image>' .chr(13);
  80.         //$xml .='<url>'.ax($url_site).'favicon.png</url>' .chr(13);
  81.         //$xml .='<link>'.ax($url_site).'</link>' .chr(13);
  82.         //$xml .='</image>' .chr(13);
  83.         $xml .= '<description>Les dernieres news</description>' .chr(13);
  84.         $xml .= '<language>fr</language>' .chr(13);
  85.         $xml .= '<generator>KwsPHP</generator>' .chr(13);
  86.         //$xml .= '<copyright>Clos des Matines</copyright>' .chr(13);
  87.         $xml .= '<copyright>'.bbcode($copyrights,0,0,1,1).'</copyright>' .chr(13);
  88.         $xml .= '<webMaster>'.ax($email_expediteur).' ('.ax($nom_page).')</webMaster>' .chr(13);
  89.         $xml .= '<ttl>15</ttl>' .chr(13) .chr(13);
  90.         //    $puce_size = filesize($rss_puce);
  91.         
  92.         // extraction des données
  93.         $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);
  94.         
  95.         // Remplissage des items
  96.         while($tab=mysql_fetch_array($res))
  97.         {   
  98.             $titre=$tab['titre'];
  99.             $lien=$tab['id'];
  100.             $description=$tab['titre'];
  101.             $date=date("D, d M Y H:i:s", $tab['date']);
  102.             $ico = $tab['image'];
  103.             
  104.             $xml .= '<item>' .chr(13);
  105.             $xml .= '<title>'.$titre.'</title>' .chr(13);
  106.             //$xml .= '<enclosure '.ax($url_site).'image/puce1.gif" length="'.$puce_size.'" type="image/gif" />' .chr(13);
  107.             $xml .= '<link>'.ax($url_site).'index.php?mod=news&ac=commentaires&id='.$lien.'</link>' .chr(13);
  108.             $xml .= '<pubDate>'.$date.' GMT</pubDate>' .chr(13); 
  109.             $xml .= '<description>'.$description.'</description>' .chr(13);
  110.             $xml .= '<guid isPermaLink="true">'.ax($url_site).'/index.php?mod=news&ac=commentaires&id='.$lien.'</guid>' .chr(13);
  111.             $xml .= '</item>' .chr(13) .chr(13);    
  112.         }
  113.             
  114.         // Fin du fichier XML
  115.         $xml .= '</channel>' .chr(13);
  116.         $xml .= '</rss>';
  117.         
  118.         // écriture du fichier
  119.         $fp = fopen("./".$rss_file, 'w+');
  120.         fputs($fp, $xml);
  121.         fclose($fp);
  122.         chmod("./".$rss_file, 0777 );
  123.         
  124.         // $txt=str_replace("<","<",$xml);
  125.                 $txt=str_replace("<","<",$xml);
  126.         $txt=str_replace(chr(13),"<br />",$txt);
  127.         
  128.         echo '
  129.         <div style="text-align:center;">Fichier déposé à l'emplacement suivant</div>
  130.         <div style="text-align:center;font-weight: bold ;">'.ax($url_site).$rss_file.'<br /><br />
  131.             - <a href="http://validator.w3.org/feed/check.cgi?url='.ax($url_site).$rss_file.'" target="_blank">Contrôler sa validité</a> -<br />
  132.             - <a href="index.php?mod=news&ac=gestion">Retour</a> -</div><hr />
  133.         <div style="text-align:left;">'.$txt.'</div>';
  134.         
  135.     }
  136. close_table();
  137. }
  138. else
  139. {
  140.     ZoneReserve();
  141. }
  142. $aff_drt=1;
  143. ?>


Edité samedi 22 mars 2008 : 11:20 par mike007

Edité mercredi 26 mars 2008 : 15:28 par Fifi69

- Site de la Cie Temps'Danse


Infos CMS KwsPHP


Informations : Avant de poster un sujet sur le forum

Veuillez avant tout vérifiez la comparaison de vos fichiers sur votre site
Mon compte / Outils / Comparaison


La recherche avancée du forum (en ciblant au mieux les options de la recherche)
La Faq - La documentation - La documentation en vidéo - Le sujet "Install et Mise à jour"
Vous devez lire en priorité le topic de la 1.6 pour en découvrir ses fonctionnalités


Afficher



σmike007
starsj7.png
Dieu Supreme


avatar
Hors ligne

Nombre de posts: 7551 (1.02/Jour)
Inscrit(e) le: 05 juillet 2006
Visiter son site
Imprimer Permalien samedi 22 mars 2008 à 11:19  
je ne peux etre qu'indulgent face a ce genre d'initiative,

Si plus de personne pouvait faire ce genre de chose, on avancerai encore plus vite

je n'ai pas testé, mais je suppose que ça fonctionne, et le temps d'une amélioration certaine, je bascule ce topic en annonce et en modifie légèrement le titre car cela devrais en interesser plus d'un

Vous êtes satisfait de l'aide apportée !! Vous avez l'âme généreuse !!

Faite un don du montant souhaité
Un petit don (même de 1 euro) de chaque personne satisfaite permet de témoigner de votre reconnaissance pour le temps passé. merci


Mes Modules ou ceux que j'ai repris en V1.6 : ICI. Module Humour
bbcode_sup => Voir le forum dédié (youtube, daily, zoomimg, deezer, divx, clearbox, apostrophe word, etc...)


ΨFifi69
Manager
starsr6.png


avatar
Hors ligne

Nombre de posts: 1191 (0.17/Jour)
Inscrit(e) le: 28 juillet 2007
Visiter son site
Imprimer Permalien lundi 24 mars 2008 à 14:54  
Merci Mike;

Pour un premier essai, je suis flatté !

Je viens de compléter le code : Le contenu du fichier XML s'affiche également dans le bloc central.
Je cherche maintenant à afficher une image par item en récupérant l'image de la catégorie...

Réponse ci-dessus posté le samedi 22 mars 2008 : 11:35

Re..
Je viens de mettre à jour le code.
-Ajout de la balise <generator>KwsPHP</generator> (C'était la moindre des choses !)
-Ajout d'un lien direct vers un Validateur rss afin de contrôler la qualité du fichier.

PS: pour les images, j'abandonne. Il semblerait qu'il faille utiliser un lecteur pour utiliser cette option. Autrement dit, ça ne marche pas avec Firefox sans module complémentaire... J'ai quand même laissé mes recherches en commentaire au cas où une âme charitable voudrait se faire les dents sur ce problème.

Réponse ci-dessus posté le samedi 22 mars 2008 : 14:46

Re...

Mise à jour du code :
Le nombre de news et le grade sont au choix de l'utilisateur.

Attention le fichier doit obligatoirement s'appeler : rss.php

Edité lundi 24 mars 2008 : 14:56 par Fifi69

- Site de la Cie Temps'Danse


σjack
starsj6.png
Dieu


avatar
Hors ligne

Nombre de posts: 1624 (0.22/Jour)
Inscrit(e) le: 24 juin 2006
Visiter son site
Imprimer Permalien mardi 25 mars 2008 à 13:24  
Très interessant tout ça.

Je viens d'essayer, ça marche presque, sauf que le lien renvoyé par le rss est de la forme (dans le titre du flux) :
http://www.tech-radiotherapie.info//index.php?mod=news=commentaires=40
On dirait que les & deviennent des =

Pour voir, abonne toi à http://www.tech-radiotherapie.info/flux/rss.xml et essaye de suivre un lien depuis le fux.

Edit : j'ai comme un doute sur mon lecteur de flux ...

Edité mardi 25 mars 2008 : 13:36 par jack

Tech-radiotherapie.info, Le site des techniciens et dosimétristes de radiothérapie


Imprimer Permalien mercredi 26 mars 2008 à 14:27  
Grand merci à fifi pour son aide et son travail.

Tu es le bien venu à http://besmainfo.hostarea.org/ smiley sg3agbjg3ag.gif smiley sg3agbjg3ag.gif smiley sg3agbjg3ag.gif

Edité mercredi 26 mars 2008 : 14:44 par ttaki2004


ΨFifi69
Manager
starsr6.png


avatar
Hors ligne

Nombre de posts: 1191 (0.17/Jour)
Inscrit(e) le: 28 juillet 2007
Visiter son site
Imprimer Permalien mercredi 26 mars 2008 à 15:39  
ttaki2004;

Je suis content que ton problème soit résolu.
Lors de mon premier post, je ne pensais pas que le topic prendrait une telle ampleur.

Je t'invite à compléter le sujet sur :
Afficher les grades dans la gestion des news

Edité mercredi 26 mars 2008 : 15:43 par Fifi69

Edité jeudi 27 mars 2008 : 12:45 par mike007

- Site de la Cie Temps'Danse


σmike007
starsj7.png
Dieu Supreme


avatar
Hors ligne

Nombre de posts: 7551 (1.02/Jour)
Inscrit(e) le: 05 juillet 2006
Visiter son site
Imprimer Permalien jeudi 27 mars 2008 à 12:45  
ah, bah voila, tu vois un peu ce que c'est de faire du support de quelque chose qui devient interessant et qui plus est, a été mis en annonce. Nous c'est pour tout le portail, c pas une mince affaire smiley sg3agp.gif

Vous êtes satisfait de l'aide apportée !! Vous avez l'âme généreuse !!

Faite un don du montant souhaité
Un petit don (même de 1 euro) de chaque personne satisfaite permet de témoigner de votre reconnaissance pour le temps passé. merci


Mes Modules ou ceux que j'ai repris en V1.6 : ICI. Module Humour
bbcode_sup => Voir le forum dédié (youtube, daily, zoomimg, deezer, divx, clearbox, apostrophe word, etc...)


ΨFifi69
Manager
starsr6.png


avatar
Hors ligne

Nombre de posts: 1191 (0.17/Jour)
Inscrit(e) le: 28 juillet 2007
Visiter son site
Imprimer Permalien lundi 16 juin 2008 à 11:06  
Ça c'est sur....

Mais c'est super gratifiant quand le problème est résolu !
Panneau haut
J'adore
Pancarte


Réponse ci-dessus posté le jeudi 27 mars 2008 : 13:20



Bonsoir;

Ce code était suffisant pour une utilisation avec le marque page dynamique de Firefox (l'ancien fichier reprenait le titre de la news dans le contenu de chaque item).

Cependant, je voulais que les membres puissent afficher plus de détails en pleine page.
J'ai donc fait évoluer le code pour que chaque item reprenne le détail de la news sans le BBcode.

Télécharger

Réponse ci-dessus posté le lundi 19 mai 2008 : 22:18



Bonjours à tous;

Le fichier est adapté pour la Version 1.6

- Site de la Cie Temps'Danse


Imprimer Permalien lundi 16 juin 2008 à 11:57  
voila le message d'ereur que j'obtiens quand je veux generer les news rss:


Warning: fopen(./flux/rss.xml) [function.fopen]: failed to open stream: No such file or directory in /home/www/c30c9a800cb2104786dd6b91201a2807/web/modules/news/rss.php on line 135

Warning: fputs(): supplied argument is not a valid stream resource in /home/www/c30c9a800cb2104786dd6b91201a2807/web/modules/news/rss.php on line 136

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/c30c9a800cb2104786dd6b91201a2807/web/modules/news/rss.php on line 137


σGarveur
starsj7.png
Dieu Supreme


avatar
Hors ligne

Nombre de posts: 3238 (0.46/Jour)
Inscrit(e) le: 17 juillet 2007
Visiter son site
Imprimer Permalien lundi 16 juin 2008 à 12:13  
Bonjour,

Modifies la ligne 13 du fichier rss.php afin de donner un nom et un chemin valide pour ton flux (par défaut c'est dans le répertoire flux à la racine de ton site il faut donc au moins le créer)

A+

Avoir l'air coñ n'est qu'une question de point de vue....


Imprimer Permalien lundi 16 juin 2008 à 12:23  
effectivement j'avais oublié de creer le dossier flux à la racine du site, idiot que je suis^^

merci


fleche bas[Résolu] [News] Générer son flux RSS : Explications  [42 réponses]

Répondre



puce Index du Forum  » Divers  » Webmastering