8791 sujets

Développement web côté serveur, CMS

Bonsoir,

Tout est dans le titre : j'aimerais pouvoir afficher du contenu dans une div en fonction du jour de l'année.

Cela me motive pour m'entrainer au PHP. Je me dis que cette fonction doit être assez courante mais je n'arrive pas à trouver de tutos sur le sujet. À programmer ce ne dois être la mer à boire, non ?

Si vous aviez une piste à me soumettre - je ne m'attends pas à ce que vous me donniez la réponse toute prête mais... éventuellement un tuto - d'avance je vous remercie.
Modifié par Olivier C (29 Nov 2011 - 21:24)
Et bien... en bon catho de service, dans un coin de chacune de mes pages je voudrais afficher du texte : le saint du jour, plus deux ou trois autres bricoles associées si besoin. Et cela donc, pour chacun des jours de l'année.

J'ai vu qu'il existait des solutions en js, mais en php se serait mieux non ?
Salut,

pour faire ça tu as besoin :
- d'une table SQL 'Jour' ayant pour champs : le jour (clef primaire) et le texte (à afficher).
- une fonction PHP 'afficher_jour()' qui va récupérer le contenu de ta table grâce à la requête "SELECT texte from Jour WHERE jour='".date('Y-m-d')."' "; et en afficher le contenu.


[Rq:le paramètre dans la fonction date() suppose que tu travailles avec une base de données mysql. Le format à adopter peut changer suivant le type de BdD, et de sa configuration.]
Zed13 a écrit :
pour faire ça tu as besoin :
- d'une table SQL 'Jour' ayant pour champs : le jour (clef primaire) et le texte (à afficher).

Merci Zed13, on peu le faire en XML ? Je ne suis pas très chaud pour la BDD. Quoi qu'il en soit je ne comprends pas bien, mais bon : ça me donne toujours des pistes. Je vais essayer d'aller voir un peu plus en profondeur du côté du site du zéro...
C'est bon j'ai trouvé dans le principe, j'ai testé sous Mamp et ça marche : il faut entrer la fonction php date() dans une variable genre $dateInfo (c'est cela que je n'arrivait pas à trouver). Ensuite j'utilise des conditions php en switch (c'est pus clair que les "if"). Maintenant il me faut peaufiner et réaliser le petit plugin, mais le principe est là.

Bien à vous
Salut,
Olivier C a écrit :
on peu le faire en XML ? Je ne suis pas très chaud pour la BDD.

Tu peux stocker dans du XML, auquel cas SimpleXML te sera d'une grande utilité.
$calendrier = Array();
$calendrier['0101'] = 'Marcel';
$calendrier['0102'] = 'Robert';
$calendrier['0103'] = 'Rachid';
...

echo 'C\'est la saint ' . $calendrier[date('dm')];
jb_gfx a écrit :
$calendrier = Array();
$calendrier['0101'] = 'Marcel';
$calendrier['0102'] = 'Robert';
$calendrier['0103'] = 'Rachid';
...

echo 'C\'est la saint ' . $calendrier[date('dm')];

Merci Victor et GFX. Ma solution, que j'ai décrite plus haut, est proche de celle de jb_gfx :

Olivier C a écrit :
<?php
$dateInfo = date ("dm"); //ici je paramètre la date sur 4 chiffres en ne prenant en compte que les jours et les mois

switch ($dateInfo){

case 2111:
echo "Présentation de la Vierge Marie au Temple";
break;

case 2211:
echo "Sainte Cécile de Rome";
break;

case 2311:
echo "Saint Clément Ier de Rome";
break;

etc...

default:
echo "Le calendrier est indisponible...";
}
?>

Mais je vais essayer celle de jb_gfx car elle me semble plus concise.

Bien à vous
Modifié par Olivier C (24 Nov 2011 - 19:53)
Ah oui ! la solution en tableau est mieux, car beaucoup plus condensée :
Olivier C a écrit :
<?php
$dateInfo[2111] = "Présentation de la Vierge Marie au Temple";
$dateInfo[2211] = "Sainte Cécile de Rome";
$dateInfo[2311] = "Saint Clément Ier de Rome";
$dateInfo[2411] = "Sainte Flora";
$dateInfo[2511] = "Sainte Catherine d'Alexandrie";
$dateInfo[2611] = "Saint Innocent d'Irkoutsk";
$dateInfo[2711] = "Fête de la Vierge Marie en son icône du signe";
$dateInfo[2811] = "Sainte Catherine Labouré";
echo $dateInfo[date(dm)];
?>

Merci pour le tuyaux jb_gfx. Smiley cligne Et voilà: maintenant je j'ai mis un doigt dedant je crois que je vais prendre plaisir à me plonger sérieusement dans le PHP. Autrement que pour créer une condition ou recopier une boucle d'appel de mon CMS. Smiley biggrin
Modifié par Olivier C (24 Nov 2011 - 22:44)
Victor BRITO a écrit :
Tu peux stocker dans du XML, auquel cas SimpleXML te sera d'une grande utilité.

Mmmm... je vais garder ça pour plus tard, une Bible en ligne par exemple... qui prendrait trop de place dans ma BDD, et surtout éditable en plugin facile à installer sur un WordPress par exemple...
Modifié par Olivier C (24 Nov 2011 - 22:44)
Je continue mon calendrier pour m'entrainer au PHP, c'est génial et vraiment motivant car beaucoup plus complexe qu'il n'y parrait (enfin pour moi) : si je veux dépasser le simple calendrier afichant le saint du jour il faut que je compose pas moins de 13 niveaux de priorité entre les différentes fêtes religieuses possibles pour un même jour. Il y a des fêtes fixes et d'autre votives, ces dernières étant le plus souvent calées sur la date de Pâques. Celle-ci est très complexe à définir (avec l'algorithme de Oudin), heureusement une fonction PHP mache tout le travail : easter_date()...

Voici donc ma question pour ce post : y a t'il un moyen de donner une valeur de priorité pour une variable pour savoir ensuite quelle est celle qui finalement doit être retenue (par comparaison des valeurs des variables) ? Ou faut-il faire une lourde imbrication de "if" et de "else" pour mes futurs 13 tableaux php ?
Modifié par Olivier C (29 Nov 2011 - 21:23)
Je suis pas tout à fait certain de comprendre, mais je serais tenté de dire :


$dateInfo[2111] = Array(
 [10] => 'Truc',
 [2] => 'Machin',
 [6] => 'Bidule',
),
$dateInfo[2211] = Array(
 [10] => 'Truc',
 [2] => 'Machin',
 [6] => 'Bidule',
),
$dateInfo[2311] = Array(
 [10] => 'Truc',
 [2] => 'Machin',
 [6] => 'Bidule',
);


Les clés numériques de tes tableaux de second niveaux deviennent tes valeurs de priorités.