-
Citation/astuce du jour
Bonjour.
Je souhaiterais afficher une citation/astuce du jour sur la page d'accueil de mon site. Quelles sont les meilleures solutions pour faire ceci ?
Je pense de prime abord à un script lancé tous les jours vers 1h (par un cron ou équivalent) pour récupérer (dans une base de données) la citation du jour et la stocker dans un fichier XML. La page d'accueil lit ensuite simplement le fichier XML.
D'autres idées ?
-
Ta solution est simplement bonne, mais je ne pense pas qu'une structure XML soit nécessaire pour gérer une phrase.
-
si c'est un cron qui va lire une base de données pour générer un fichier xml pour être ensuite lus, pourquoi ne pas lire directement la base de données?
-
Le problème que je rencontre dans la lecture directe de la base de données, c'est la conservation de la même citation pour toute la journée et quel que soit l'utilisateur. Si je veux me passer du fichier intermédiaire, il faut que je modifie ma base pour marquer dans la table des citations (ou ailleurs), quelle citation utiliser pour le jour courant. Et pour ce faire il me faut quand même une procédure (un script) à lancer en début de journée pour sélectionner la citation du jour. Du coup, ajouter un fichier intermédiaire ne me coute pas grand chose.
-
Ta solution est celle qui vient à l'esprit en premier mais ce n'est pas forcément la plus simple : elle nécessite un cron, un script shell, un fichier temporaire, et un script php pour l'affichage...
Le plus simple si ton site n'a pas un trop fort traffic serait d'effectuer toutes les opérations au moment de l'affichage : avant d'afficher la citation en cours, par exemple contenue dans un simple fichier texte "motd.txt", le script vérifie la date de modification du fichier (filemtime) et enregistre dedans une citation au hasard si elle remonte à plus d'un jour.
Mais c'est peut-être encore bien évolué pour ce que tu veux : certains sites affichent sous le nom "citation du jour" une citation totalement aléatoire.
-
L'idée de tout réaliser par le script de génération de la page d'accueil me plaît. Je pense la reprendre, sans fichier mais avec une table supplémentaire dans la base de données. Constituée de deux champs, la date et l'identifiant de citation, cette table permettrait non seulement de stocker la citation du jour, mais également d'avoir un historique des citations affichées, évitant ainsi de tomber à nouveau sur une citation sélectionnée récemment.
Côté algorithme, je vois les choses comme ça : le script vérifie la présence d'une citation pour le jour courant. S'il n'y en a pas, il supprime de l'historique les citations les plus anciennes, en ajoute une pour le jour courant, sélectionnée au hasard parmi les citations non contenues dans l'historique. Dans tous les cas il affiche ensuite la citation du jour.
-
Je sais pas d'où tu sors tes citations mais si elles servent qu'à ça y'a encore plus simple : tu les prends dans l'ordre :o
echo $citations[floor(time()/3600/24) % count($citations)];
-
Sauf que la continuité dans l'attribution de l'identifiant de chaque citation n'est pas garantie dans la base de données et que, pour des raisons de performances, je ne me vois pas charger mes quelques 1500 identifiants dans un tableau. :?