Ivation > Autres > Comment publier automatiquement un article en PHP ?

Comment publier automatiquement un article en PHP ?

Le 01/06/2008 à 09:05 - par Camille - dans Autres

Image utilisateur

Plusieurs personnes me demandent régulièrement comment on peut développer une fonctionnalité permettant de programmer un article et que ce dernier soit publié automatiquement, sans même que vous interveniez.

Voici donc quelques pistes qui vous permettront de réaliser un tel système sans trop de difficultés normalement, il faut cependant avoir une base en PHP/SQL.

Piste 1 : avec les dates SQL


C'est la technique que j'utilise sur Ivation : c'est très simple, faut-il encore que vous utilisiez les dates SQL (date, datetime, time) et non des timestamps PHP (time(), etc.).

Le principe est simple : sur la création d'un article, vous mettez un champ date. Celui, par défaut, a la date actuelle au format SQL. Pour programmer un article, il suffit d'entrer une date future, genre "2008-06-02 22:01:12" et de mettre le statut de l'article "en ligne".

Maintenant il suffit d'ajouter une clause WHERE dans votre requête qui liste tous les articles. Pour être plus précis, il faut ajouter WHERE article_date <= NOW(), NOW() est la date actuelle dans le jargon SQL.

Exemple concret :

Code : PHP
1: <?php
2: $rqt_list_articles = mysql_query( 'SELECT article_id, article_titre, article_date FROM articles WHERE article_date <= NOW() ORDER BY article_date DESC' ) or exit(mysql_error());
3: 
4: while( $donnees_article = mysql_fetch_assoc( $rqt_list_articles ) )
5: {
6:      // On affiche tous les articles
7: }
8: ?>

Piste 2 : utiliser Webcron


Pour ceux qui ne savent, une tâche Cron permet d'exécuter un script à une date bien précise. Imaginez que vous vouliez envoyer un mail à tous vos membres pour Noël sans même intervenir ? Les tâches Cron servent à cela.

Webcron, quant à lui, est un service gratuit qui permet d'exécuter des tâches Cron, car normalement il faut un serveur pour faire ce genre de chose.

La technique est de faire un champ "billet programmé" et de mettre une date de publication. Après il suffit de faire un script qui s'occupera de publier les articles qui ont été programmés.

Il suffit par exemple de créer une tâche Cron qui est exécutée toutes les heures, pour publier les articles tout seuls.

Mot de fin


Personnellement, je vous conseille vivement la première technique, car elle est plus souple, plus simple. Si vous utilisez les timestamps PHP, alors passez aux dates SQL, y'a pas plus flexible. ;o)

J'ai proposé 2 pistes pour réaliser un système simple afin de publier automatiquement vos articles à une date précise. Cette liste, n'est, bien sûr, pas exhaustive.

Derniers articles Flux RSS de Ivation

Tous les commentaires

Avatar de eMeRiKa
eMeRiKa

La première solution peut être faite avec un timestamp. Il suffit d'utiliser mktime pour déterminer le timestamp de la date future. :)

#1 - Le 01/06/2008 à 10:28 - Répondre

Avatar de scientifix94
scientifix94

J'en suis un qui te l'avais demandé donc ce billet est très intéressant...Merci Cam :-)

PS:Tu intégreras des smileys dans les commentaires? En voici des bons si tu en veux des petits simples: http://www.svay.com/blog/index/2004/09/09/174-des-smileys-pour-votre-blog.

#2 - Le 01/06/2008 à 15:12 - Répondre

Avatar de C.Moreau
C.Moreau

Ah super l'article ! Merci pour ces petites astuces ;)

PS : Niquel ton bloc "Derniers articles" ! =)))

#3 - Le 01/06/2008 à 15:35 - Répondre

Avatar de Camille
Camille

@eMeRiKa : bien vu, je n'ai jamais testé mais ça doit se faire effectivement (bien que je préfère mon système).

@scientifix94 : faut que je fasse ça pour les smileys oui.

@C.Moreau : ça fait plaisir. :)

#4 - Le 01/06/2008 à 16:25 - Répondre

Avatar de eMeRiKa
eMeRiKa

C'est pas vraiment ton système qui est remis en cause, c'est tjs le même principe. Certains préfère travailler avec des dates en Timestamp et d'autres les dates SQL, c'est une question de goûts !

#5 - Le 01/06/2008 à 16:31 - Répondre

Avatar de scientifix94
scientifix94

@Camille : Pourquoi certaines fois on peut voir une image qui n'est pas dans un répertoire quand on fait des smileys. Exemple: :-)

#6 - Le 01/06/2008 à 20:13 - Répondre

Avatar de OyoKooN
OyoKooN

Je connaissais mais c'est vraiment sympa ce genre d'articles !

#7 - Le 01/06/2008 à 21:16 - Répondre

Avatar de GeekFG
GeekFG

idem que @eMeRiKa je préfère les timestamps ^^'

#8 - Le 03/06/2008 à 22:28 - Répondre

Avatar de BAALOUDJ Bouguerra
BAALOUDJ Bouguerra

Bonjour ,
je suis un chercheur indépendant .
voilà , cela fait plus de 15 ans de recherche et de fouille je suis enfin arrivé à trouver coment peut-on remédier le changement climatique d'une part, d'autre part je suis arrivé à trouver un système nouveau pour exterminer le virus du SIDA et celui du CANCER.
pour cela , je veux bien annoncer la couleur pour tous concerné qu'il se mette en contact avec moi pour enfin nous nous mettions en accord.
voilà mon tél même la nuit: 00213663863899
merci au revoir.

#9 - Le 11/07/2008 à 21:49 - Répondre

Avatar de micka39
micka39

Je préfère aussi les timestamps .
En tout cas merci pour la commande SQL NOW() je ne la connaissais pas .

#10 - Le 26/09/2008 à 22:40 - Répondre

Poster un commentaire

Nouveau commentaire






* champs obligatoires