BlueGEEK Journal

Accueil > Programmes > Projets PHP pour Sites WEB > Agendas > Mon Agenda Perpétuel en PHP > I - MAPP - Mon Agenda Perpétuel en PHP (Projet) > Agenda Perpétuel en PHP (1)

PHP, Agenda

Agenda Perpétuel en PHP (1)

Version 1

mercredi 4 octobre 2006, par bluegyn_spip

Comment créer un agenda perpétuel en PHP ?

- Inspiré du manuel Micro Application PHP 5 astuces d’experts

Un petit script PHP qui permet d’afficher 1 petit calendrier du mois en injectant uniquement le Mois (m)et l’année (a)

J’ai simplifié le script en

- décalant les semaines à la française

  • (du Lundi au Dimanche)
  • au lieu du dimanche au samedi

J’ai supprimé l’imbrication des 2 tableaux

- en argumentant la balise CAPTION du second tableau

J’ai remplacé la fonction "Nombre de jour par mois"

- par la macro beaucoup plus simple et étudiée pour : date("t")

En annexe

- Détail du script php

- Téléchargement


Exemples

affiche_mois ?m=1

Affiche le mois de Janvier courant

affiche_mois ?m=12&a=2006

Affiche le mois de Décembre 2006

affiche_mois.php
inc_dates.php

<?php

### AFFICHE MOIS ###

# Affiche le planning du mois

###



include("inc/inc_dates.php");



echo "<style>body {font-family:arial;}</style>";



$m = isset($_GET['m']) ? $_GET['m'] : date("n");

$a = isset($_GET['a']) ? $_GET['a'] : date("Y");



// Nombre de jours du mois = date("t", timestamp);

$longueur_mois = date("t", mktime(0,0,0,$m,1,$a));



################################################################################

# TITRE MOIS ANNEE Ex Mars 2006

################################################################################



echo "

<table align='center' border='0' cellspacing='1' cellpadding='1'><tr>

<caption><big>$fr_mois[$m] $a</big></caption>";



################################################################################

# Affiche la ligne d'entete des jours de la semaine Dim, Lun etc ..

################################################################################

for ($i=0;$i<7;$i++)

{

 echo "<th bgcolor='yellow'>".$fr_jour_court[$i+1]."</th>"; // Décale d'un Jour +1 pour commencer le lundi

};

echo "</tr>"; // Fin ligne entête

################################################################################



echo "<tr>";

/**  Place le 1er jour du mois

* sur la colonne correspondant de la semaine

* Pour ce faire place des cases vides en début de 1ere semaine du mois  

**/

$tab=getdate(mktime(0,0,0,$m,$i,$a));

$premierjour=$tab["wday"];     // 0 = Dim

//$premierjour=($premierjour+8)%7;

for($i=0;$i<$premierjour;$i++)

{

 echo"<td>&nbsp;</td>";

}



################################################################################

# remplit maintenant ligne a pres ligne les jours restants

# chaque ligne étant une semaine qui commence / dim = 0 et termine / sam = 6

for($i=0;$i<$longueur_mois;$i++)

{

 if( ($i+$premierjour) % 7 == 0) // Tous les 7 jours décomptés

 {

   echo"</tr><tr>"; // Saute la ligne suivante

 }

 $defaut=date("d"); // Surligne le jour en cours

 

 echo"<td align='right' bgcolor='skyblue'>";

//  echo ($i==$defaut-1) ? "<b>".($i+1)."</b>" : $i+1; // Décale d'un jour pour rattraper le Lundi

 echo $i+1; // Décale d'un jour pour rattraper le Lundi

 

 echo "</td>";

}

echo "

</tr>

</table>

";

?>