Reprise d'un code source existant sur ce site à l'adresse
http://www.phpcs.com/codes/CLASSE-PHP-MINI-CALENDRIER-AVEC-12-MOIS-AFFICHES_34299.aspx .
Réécriture objet clean et optimisé pour une utilisation rapide et un découpage affiche/traitement.
Je remercies l'auteur du premier code et l'invites à me contacter afin que l'on mette sur pied un code éventuellement plus évolué ;-)
NICOWEB
Source / Exemple :
<?
/*
- 09/06/2006 16:18pm
- include/Agenda.class.php
- fichier de classe permettant de gérer les fonctionnalités de l'agenda
- /
class Agenda
{
/* tableaux */
var $t_listeMoisFr = Array(1 => "Janvier",2 => "Février",3 => "Mars",4 => "Avril",5 => "Mai",6 => "Juin",7 => "Juillet",8 => "Août", 9 => "Septembre",10 => "Octobre",
11 => "Novembre",12 => "Décembre");
var $t_prop = array("convertDate" => "", "premierJour" => 0, "nombreJour" => 0, "anneeRec" => 0, "moisRec" => 0);
/* variables dites de chaine */
var $debutPremiereLigne;
var $finPremiereLigne;
var $autreLigne;
function Agenda($choixAnnee,$choixMois)
{
if ($choixAnnee != "") $this->t_prop['anneeRec'] = $choixAnnee;
if ($choixMois != "") $this->t_prop['moisRec'] = $choixMois;
$this->t_prop['convertDate'] = gregoriantojd($this->t_prop['moisRec'],1,$this->t_prop['anneeRec']);
$this->t_prop['premierJour'] = jddayofweek($this->t_prop['convertDate'],3)-1;
$this->t_prop['nombreJour'] = cal_days_in_month(1,$this->t_prop['moisRec'],$this->t_prop['anneeRec']);
if ($this->t_prop['premierJour'] == -1) $this->t_prop['premierJour'] = 6;
}
/*
- boolean
- afficherAgenda ( array t_propriete )
- méthode qui permet d'afficher à partir d'un tableau de propriétés spécifiques à un agenda/calendrier (ndr : ts de limites dans le temps) d'afficher le tableau de calendrier
- /
function afficherAgenda()
{
for($i=0;$i< $this->t_prop['premierJour'];$i++){ $this->debutPremiereLigne .= "<td> </td>";}
for($i=0;$i<(7-$this->t_prop['premierJour']);$i++){ $this->finPremiereLigne .= "<td>".($i+1)."</td>";}
$i2=0;
for($i = (7-$this->t_prop['premierJour']);$i < $this->t_prop['nombreJour'];$i++){
if($i2 == 7)
{
$this->autreLigne .= "</tr><tr>";
$i2 = 0;
}
$this->autreLigne .= "<td>".($i+1)."</td>";
$i2++;
}
$this->chaine_courante .= "<table border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n
<tr>
<td colspan=\"7\">[ <a href=\"?month=".$this->t_prop['moisRec']."\" target=\"_self\">".$this->t_listeMoisFr[$this->t_prop['moisRec']]."</a> ]</td>
</tr>\n
<tr>
<td>L</td><td>M</td><td>M</td><td>J</td><td>V</td><td>S</td><td>D</td>
</tr>\n
";
$this->chaine_courante .= "<tr>".$this->debutPremiereLigne.$this->finPremiereLigne."</tr>\n";
$this->chaine_courante .= "<tr>".$this->autreLigne."</tr>\n";
$this->chaine_courante .= "</table>";
if($this->chaine_courante == "") return false;
else return $chaine_courante;
}
}
$ag = new Agenda(date("m",time()),date("Y",time()));
print($ag->afficherAgenda());
?>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.