Dernière partie sur la façon de faire en automatique son flux


Dernier chapitre : l’automatisation d’un flux



 

Salut à vous tous,

 

Alors comment allez-vous ?

 

Pas trop de crises de nerfs, pour ce qui débute dans le code ? Non cool

 

Alors nous allons en finir avec la création d’un flux RSS, nous avions déjà vu ensemble :

 

1 – Le pourquoi de l’existence d’un flux, à quoi il pouvait bien servir (http://www.liens-internes.com/article/quelques-bases-site-flux-rss)

2 – Pouvoir créer son propre flux RSS, la création d’un flux RSS 2.0 (http://www.liens-internes.com/article/description-dun-flux-rss)

 

Donc après ça, nous allons automatiser cette histoire, car après tout, on ne va pas s’amuser à chaque nouvelle publication le faire à la main, donc autant l’automatiser et après on sera tranquille, du moins normalement hi hi…

 

Migraine

 

Mais pour automatiser cette petite chose, il faudra faire appel à une base de données, et à faire, autant utiliser celle que vous avez pour vos news ou vos articles, et si vraiment vous n’en possédez pas, il est grand temps de vous y mettre et d’en avoir une.

 

Comment mettre en route en automatique son flux



 

Il est important d’avoir sous le coude le fameux fichier XML que nous avions vu dans le dernier article et prévoir un emplacement de ce fichier sur votre site (le dossier des données de votre site) relatif au script PHP qui lui servira à la fonction de mise à jour automatique, le mieux est de créer un dossier pour y placer tous vos fichiers de gestion concernant ce flux.

 

Détaillons ce fichier PHP, j’ai bien sûr gardé le fil conducteur de l’article précédant ainsi vous retrouver plus facilement vos petits au milieu (aie, j’ai une de ces migraines) :

 

1. <?php
2.
3. //Déclaration de la fonction Php :
4. function update_fluxRSS() {
5.
6. /* Générer votre fichier XML en une seule fois. Il faut stocker tout votre
7. fichier dans une variable php : $xml.
8. Déclarer ce fichier XML et ensuite la version du flux RSS 2.0.
9. Ajouter les éléments d’information du channel.
10. */
11.
12.
13. $xml = ‘<?xml version= »1.0″ encoding= »UTF-8″?>';
14. $xml .= ‘<rss version= »2.0″>';
15. $xml .= ‘<channel>';
16. $xml .= ‘ <title>le nom de mon site</title>';
17. $xml .= ‘ <link>http://www.mon-site.fr</link>';
18. $xml .= ‘ <description>L’actualité de mon site web</description>';
19. $xml .= ‘ <image>';
20. $xml .= ‘ <title>Titre de l’image</title>';
21. $xml .= ‘ <url>http://www.mon-site.fr/logo.png</url> ‘;
22. $xml .= ‘ <link>http://www. mon-site.fr /conception-de-site-web</link> ‘;
23. $xml .= ‘ <description>Les articles sur la conception de site web</description>';
24. $xml .= ‘ <width>90</width>';
25. $xml .= ‘ <height>90</width>';
26. $xml .= ‘ </image>';
27. $xml .= ‘<language>fr</language>’
28. $xml .= ‘<copyright>Copyright © 2015 Mon site</copyright>’
29. $xml .= ‘<pubDate>Tue, August 18, 2015 08:00:00 GMT</pubDate>’
30. $xml .= ‘<category>Conception de site web </category>’
31. $xml .= ‘ <generator>PHP/MySQL</generator>';
32.
33.
34.
35.
36. /* Connexion à votre base de données pour aller récupérer les
37. items à inclure dans ce flux RSS.
38. */
39.
40. // Exemple : les 20 premiers éléments à partir du dernier ajouté dans la base de données (prendre le nombre qui vous convient)
41. $index_selection = 0;
42. $limitation = 20;
43.
44. //Connexion à votre base de données (vos logins)
45. try {
46. $bdd = new PDO(‘mysql:host=localhost;dbname=flux_rss’, ‘nom_utilisateur’, ‘mot_de_passe’);
47. }
48. catch(Exception $e) {die(‘Erreur : ‘.$e->getMessage());}
49.
50. //Préparation de la requête et exécution de cette requête pour obtenir les informations :
51. $reponse = $bdd->prepare(‘SELECT * FROM flux_rss ORDER BY pubDate DESC LIMIT :index_selection, :limitation’) or die(print_r($bdd->errorInfo()));
52. $reponse->bindParam(‘index_selection’, $index_selection, PDO::PARAM_INT);
53. $reponse->bindParam(‘limitation’, $limitation, PDO::PARAM_INT);
54. $reponse->execute();
55.
56. //Informations récupérées, on pense à ajouter un à un les items à votre fichier
57. while ($donnees = $reponse->fetch())
58. {
59. $xml .= ‘<item>';
60. $xml .= ‘<title>’.stripcslashes($donnees[‘title’]).'</title>';
61. $xml .= ‘<link>’.$donnees[‘link’].'</link>';
62. $xml .= ‘<guid isPermaLink= »true »>’.$donnees[‘link’].'</guid>';
63. $xml .= ‘<pubDate>’.(date(« D, d M Y H:i:s O », strtotime($donnees[‘pubDate’]))).'</pubDate>';
64. $xml .= ‘<description>’.stripcslashes($donnees[‘description’]).'</description>';
65. $xml .= ‘</item>';
66. }
67.
68. //Conclusion de la requête
69. $reponse->closeCursor();
70.
71. //Fermeture du channel et du flux RSS.
72. $xml .= ‘</channel>';
73. $xml .= ‘</rss>';
74.
75. /* L’ensemble de votre fichier RSS est à présent inclus dans la variable $xml.
76. Il faut l’écrire dans votre fichier XML et mettre à jour votre flux.
77. Il faut utiliser les fonctions de php File pour écrire dans ce fichier.
78.
79. Prendre note que l’adresse URL du fichier doit être relative obligatoirement !
80. */
81.
82. //Ouverture du fichier en mode écriture
83. $fp = fopen(« flux_rss.xml », ‘w+’);
84.
85. //Écriture du flux RSS
86. fputs($fp, $xml);
87.
88. //On referme le fichier
89. fclose($fp);
90.
91. } //Fermeture de la fonction
92. ?>

 

Sauvegardé, ce fichier en .php dans le dossier cité plus haut on lui donnera le nom de mise_a_jour_flux.php

 

Automatisation flux rss

 

Ce n’est pas encore fini, faut pas rêver, il faut encore faire deux trois petites choses pour automatiser réellement tout cela.

 

Mettre en route automatiquement son flux

 

Nous allons créer un autre fichier .php pour amorcer la fonction update de la mise à jour du flux :

 

1. <?php
2.
3. //Récupération du fichier php qui contient le code pour mettre à jour le flux RSS
4. include_once(« url_relative/mise_a_jour_flux.php »);
5.
6. //On appelle la fonction de mise à jour du fichier
7. update_fluxRSS();
8.
9. ?>

 

Voilà, à présent, il vous suffit de mettre en fonction (réglage) votre programme cron (genre crontab par exemple) pour automatiser (update) cela sur votre site selon le temps qu’il vous convient de rafraichissement.

 

Cron

 

Et bien sûr penser à insérer votre flux sur la page de votre site :

 

<link rel= »alternate » type= »application/rss+xml » title= »Mon flux RSS » href= »http://www.mon-site.fr/flux.xml » />

 

Et à le signaler par une image (bon, là c’est un exemple, vous mettrez votre propre chemin (URL) de votre icône)

 

<a href= »http://www.mon-site.fr/flux.xml »>

<img src= »http://www.mon-site.fr/images/template/rss.png » alt= »Flux RSS » border= »0″ />
Flux RSS News
</a>

 

C’est enfin fini, je prends deux aspirines et je me couche

 

Chut je dors

 

Allez, amusez-vous bien, on se retrouve sur le forum

Les commentaires directement sur le forum

Guide pour conception de site web d'autres informations d'optimisation