Editeur flux rss 2 via un formulaire

Soyez le premier à donner votre avis sur cette source.

Vue 10 491 fois - Téléchargée 747 fois

Description

Script pour créer facilement un fichier rss 2.00 sur son serveur, via un formulaire.
La méthode pour le réaliser n'est certainement pas la meilleure, mais ca fonctionne.
(Certains diront certainemetnt d'utiliser des classes).
Je suis nul en php donc je fais comme je peux (certaines parties de ce code ont été réalisé par un ami).

Installation :
- Copier le répertoire 'editeur_rss' sur votre site.
- Ouvrer le fichier 'enregistrer_donnees.php' et modifier les lignes 6 à 12 avec vos informations.
- Lancer la page 'editer_news.php'.

N'oubliez pas de mettre le fichier 'rss.xml' en CHMOD 666.

Source / Exemple :


Page 'editer_news.php' :

<html>
<head>
<title>Editeur RSS</title>

<link rel="stylesheet" href="style_pages.css" type="text/css">

<body style="text-align: center">
<h1 align="center">Publications de news</h1>
<p align="center">&nbsp;</p>
<table border="0">
  <form name="formulaire" action="enregistrer_donnees.php" method="POST" enctype="multipart/form-data">
	    
	  <tr> 
      <td width="231" align="center">
		<h3>Titre de votre news</h3>
		</td>
      <td width="317" align="center"><input type="text" name="titre" size="72"></td>
    </tr>
    <tr> 
      <td align="center">
		<h3>Votre message</h3>
		<h3>&nbsp;</h3>
		<h3>&nbsp;</h3>
		</td>
      <td align="center"><textarea rows="9" name="description" cols="55"></textarea></td>
    </tr>
    	<tr>
      <td width="231" align="center">
		<h3>Lien</h3>
		</td>
      <td width="317" align="center">
		<input type="text" name="linkarticle" value="http://" size="72" size="45"></td>
    	</tr>
    <tr> 
      <td align="center">
		&nbsp;</td>
      <td align="center">&nbsp;</td>
    </tr>
    	<tr>
      <td width="231" align="center">
		<h3>Posté par</h3>
		</td>
      <td width="317" align="center"><input type="text" name="auteur" size="72"></td>
    	</tr>
    <tr> 
      <td align="center">&nbsp;</td>
      <td align="center">&nbsp;</td>
    </tr>
    <tr> 
      <td align="center">
		<h3>Jour de publication</h3>
		</td>
      <td align="center">
	  <select name="day">
          <option value="Mon, ">Lundi</option>
          <option value="Tue, ">Mardi</option>
          <option value="Wed, ">Mercredi</option>
          <option value="Thu, ">Jeudi</option>
          <option value="Fri, ">Vendredi</option>
          <option value="Sat, ">Samedi</option>
          <option value="Sun, ">Dimanche</option>
        </select>&nbsp;&nbsp;&nbsp;
	  <select name="jour">
          <option value="01 ">01</option>
          <option value="02 ">02</option>
          <option value="03 ">03</option>
          <option value="04 ">04</option>
          <option value="05 ">05</option>
          <option value="06 ">06</option>
          <option value="07 ">07</option>
          <option value="08 ">08</option>
          <option value="09 ">09</option>
          <option value="10 ">10</option>
          <option value="11 ">11</option>
          <option value="12 ">12</option>
          <option value="13 ">13</option>
          <option value="14 ">14</option>
          <option value="15 ">15</option>
          <option value="16 ">16</option>
          <option value="17 ">17</option>
          <option value="18 ">18</option>
          <option value="19 ">19</option>
          <option value="20 ">20</option>
          <option value="21 ">21</option>
          <option value="22 ">22</option>
          <option value="23 ">23</option>
          <option value="24 ">24</option>
          <option value="25 ">25</option>
          <option value="26 ">26</option>
          <option value="27 ">27</option>
          <option value="28 ">28</option>
          <option value="29 ">29</option>
          <option value="30 ">30</option>
          <option value="31 ">31</option>
        </select>&nbsp;&nbsp;&nbsp; <select name="mois">
          <option value="Jan ">Janvier</option>
          <option value="Feb ">Février</option>
          <option value="Mar ">Mars</option>
          <option value="Apr ">Avril</option>
          <option value="May ">Mai</option>
          <option value="Mar ">Juin</option>
          <option value="Jul ">Juillet</option>
          <option value="Aug ">Août</option>
          <option value="Sep ">Septembre</option>
          <option value="Oct ">Octobre</option>
          <option value="Nov ">Novembre</option>
          <option value="Dec ">Décembre</option>
        </select>&nbsp;&nbsp;&nbsp; <select name="annee">
          <option value="2007 ">2007</option>
          <option value="2008 ">2008</option>
          <option value="2009 ">2009</option>
          <option value="2010 ">2010</option>
          <option value="2011 ">2011</option>
          <option value="2012 ">2012</option>
          <option value="2013 ">2013</option>
          <option value="2014 ">2014</option>
          <option value="2015 ">2015</option>
          <option value="2016 ">2016</option>
          <option value="2017 ">2017</option>
          <option value="2018 ">2018</option>
          <option value="2019 ">2019</option>
          <option value="2020 ">2020</option>
          <option value="2021 ">2021</option>
          <option value="2022 ">2022</option>
          <option value="2023 ">2023</option>
          <option value="2024 ">2024</option>
          <option value="2025 ">2025</option>
          <option value="2026 ">2012</option>
          <option value="2027 ">2013</option>
          <option value="2028 ">2014</option>
          <option value="2029 ">2015</option>
          <option value="2030 ">2016</option>
          <option value="2031 ">2031</option>
          <option value="2032 ">2032</option>
          <option value="2033 ">2033</option>
          <option value="2034 ">2034</option>
          <option value="2035 ">2035</option>
          <option value="2036 ">2036</option>
          <option value="2037 ">2037</option>
          <option value="2038 ">2038</option>
          <option value="2039 ">2039</option>
          <option value="2040 ">2040</option>
          <option value="2041 ">2041</option>
          <option value="2042 ">2042</option>
          <option value="2043 ">2043</option>
          <option value="2044 ">2044</option>
          <option value="2045 ">2045</option>
          <option value="2046 ">2046</option>
          <option value="2047 ">2047</option>
          <option value="2048 ">2048</option>
          <option value="2049 ">2049</option>
          <option value="2050 ">2050</option>
        </select></td>
    </tr>
    <tr> 
      <td align="center">
		<h3>Heure de publication</h3>
		</td>
      <td align="center">
	    <select name="heure">
          <option value="00">00</option>
          <option value="01">01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
        </select> heures&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <select name="minutes">
          <option value="00">00</option>
          <option value="05">05</option>
          <option value="10">10</option>
          <option value="15">15</option>
          <option value="20">20</option>
          <option value="25">25</option>
          <option value="30">30</option>
          <option value="35">35</option>
          <option value="40">40</option>
          <option value="45">45</option>
          <option value="50">10</option>
          <option value="55">55</option>
        </select> minutes</td>
    </tr>
    <tr> 
      <td colspan="2" align="center">&nbsp;<p><input type="submit" value="Prévisualiser"></td>
    </tr>
  </form>
</table>
</body>
</html>

Page  'enregistrer_donnees.php' :
<?
// Configuration
$cfg['file_to_edit'] = "rss.xml";
$cfg['page_retour'] = "editer_news.php";

$titresite = "Nom de votre site" ;
$linksite = "http://www.mosnite.com" ;
$descriptionsite = "Description de votre site." ;
$langue = "fr" ;
$copyright = "Copyright VOUS" ;
$titreimage = "Nom IMAGE RSS" ;
$urlimage = "http://www.monsite.com/icone_rss.gif" ;

$titre = stripslashes($_POST['titre']) ;
$description = stripslashes($_POST['description']) ;
$linkarticle = $_POST['linkarticle'] ;
$minutes = $_POST['minutes'] ;
$day = $_POST['day'] ;
$auteur = $_POST['auteur'] ;
$jour = $_POST['jour'] ;
$mois = $_POST['mois'] ;
$annee = $_POST['annee'] ;
$heure = $_POST['heure'] ;
$minutes = $_POST['minutes'] ;
$secondes = ":00" ;

$text = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
$text .= "<rss version=\"2.0\">\n";
$text .= "<channel>\n";
$text .= "<title>".$titresite."</title>\n";
$text .= "<link>".$linksite."</link>\n";
$text .= "<description>".$descriptionsite."</description> \n";
$text .= "<language>".$langue."</language> \n";
$text .= "<copyright>".$copyright."</copyright>\n";
$text .= "<image>\n";
$text .= "<title>".$titreimage."</title>\n";
$text .= "<url>".$urlimage."</url>\n";
$text .= "<link>".$linksite."</link>\n";
$text .= "</image>\n";
$text .= "<item>\n";

$text .= "<title>".$titre."";
$text .= " - Posté à ";
$text .= "$heure";
$text .= ":$minutes";
$text .= " Le ";
$text .= "$jour";
$text .= "$mois";
$text .= " Par ";
$text .= "$auteur";
$text .= "</title>\n";

$text .= "<link>".$linkarticle."</link>\n";
$text .= "<pubDate>".$day."$jour";
$text .= "$mois";
$text .= "$annee";
$text .= "$heure";
$text .= ":$minutes";
$text .= "$secondes";
$text .= " +0100</pubDate>\n";
$text .= "<description>".$description."</description>\n";
$text .= "</item>\n";
$text .= "</channel>\n";
$text .= "</rss>\n";

$handle = fopen($cfg['file_to_edit'],"w");
fwrite($handle, stripslashes($text));
echo "<div align=\"center\">";
echo "<a href=\"".$cfg['page_retour']."\">Retour</a>";
echo "</div>";

?>

Exemple fichier 'rss.xml' créé :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>Nom de votre site</title>
<link>http://www.mosnite.com</link>
<description>Description de votre site.</description> 
<language>fr</language> 
<copyright>Copyright VOUS</copyright>
<image>
<title>Nom IMAGE RSS</title>
<url>http://www.monsite.com/icone_rss.gif</url>
<link>http://www.monsite.com</link>
</image>
<item>
<title>htrh - Posté à 00:00 Le 01 Jan  Par trhetrh</title>
<link>http://</link>
<pubDate>Mon, 01 Jan 2007 00:00:00 +0100</pubDate>
<description>votre message</description>
</item>
</channel>
</rss>

Conclusion :


Merci à l'aide de mon pote pour ce script.

Tous les commentaires seront les bienvenues.

Il est aussi facilement possible d'ajouter un mot de passe pour restreindre l'accès à la page d'édition.

A noter qu'il est possible de créer qu'un seul 'item'.
Néanmoins, il est possible de modifier facilement le code pour en créer d'autres.

Bonne utilisation.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008
11 janv. 2007 à 12:44
tu aurais pu faire simple!!!!!! une base de donnée avec la date, url , titre et la création dynamique de ton flux.....
Un truc du genre
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>ton titre</title>';
$xml .= '<link>url de ton site</link>';
$xml .= '<description>description de ton site</description>';
$xml .= '<copyright>© ton site</copyright>';
$xml .= '<language>fr</language>';

ensuite tu te connecte a ta base
et tu extrait
while($row= mysql_fetch_array($res)){
$titre=$row["tag"];
$adresse=$row["url"];
$contenu=$row["titre"];
$mydate=$row["date"];
$datephp=date("D, d M Y H:i:s +0100", strtotime($mydate));

$xml .= '';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= ''.$datephp.'

';
$xml .= '<description>'.$titre.'</description>';
$xml .= '';
}

$xml .= '</channel>';
$xml .= '</rss>';

$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);

echo 'flux généré
[fluxrss.xml voir la page]';

et hop

bon allez courage
cs_ben05 Messages postés 37 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 4 février 2009
11 janv. 2007 à 17:34
Salut,

Merci pour ton commentaire. Bien entendu c'est possible avec une base de donnée, mais le bit était de le faire sans.
Car il y a beaucoup de personne non expérimenté comme moi, qui n'aime pas trop utiliser les bases de donnée.
Donc au lieu de forcer tout le monde à utiliser des bases de données, je préfère proposer une alternative.

Donc à tout ce qui ne savent pas trop utiliser une base de donnée, ou ne peuvent en disposer chez leur hébergeur... vous pourrez utiliser cette source sans base de donnée !!!
cs_guigui71 Messages postés 3 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 7 mars 2008
7 mars 2008 à 11:10
Comment modifier le script pour créer plusieurs Items à la suite?
kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008
7 mars 2008 à 12:37
Ben en fait d'expérience, plutôt passer par une base de donnée c'est quand même plus pratique mais au cas ou passe par fputs
cs_guigui71 Messages postés 3 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 7 mars 2008
7 mars 2008 à 13:35
C'est à dire?
"fputs" il faut modifier quoi?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.