Je souhaite créer un calendrier.
J'ai pris du code php déjà préparé car c'est compliqué pour
moi du tout faire tout seul et comme le code à l'air assez basique
il semble aussi assez simple à adapter selon nos besoins.
J'ai de grosses difficultés de compréhension à partir d'un certain moment,
car il y a des choses que je ne comprends vraiment pas.
Je voudrais vous poser des questions sur des points bien précis .
Je vous montre les fichiers:
<?php # fonctions utiles, $valeur
# représente une date au format AAAA-MM-JJ
function getSecond($valeur) {
return substr($valeur, 17, 2);
}
function getMinute($valeur) {
return substr($valeur, 14, 2);
}
function getHour($valeur) {
return substr($valeur, 11, 2);
}
function getDay($valeur) {
return substr($valeur, 8, 2);
}
function getMonth($valeur) {
return substr($valeur, 5, 2);
}
function getYear($valeur) {
return substr($valeur, 0, 4);
}
function monthNumToName($mois) {
$tableau = Array("", "Janvier", "Février",
"Mars", "Avril", "Mai", "Juin", "Juillet",
"Aôut", "Septembre", "Octobre", "Novembre", "Décembre");
return (intval($mois) > 0 && intval($mois)
< 13) ? $tableau[intval($mois)] : "Indéfini";
}
?>
Ca, ça va assez bien.Le code suivant me pose problème.
<?php
# Fonction pour afficher le calendrier
function showCalendar($periode) {
$leCalendrier = "";
# Tableau des valeurs possibles pour un numéro
# de jour dans la semaine
$tableau = Array("0", "1", "2", "3", "4", "5", "6", "0");
$nb_jour = Date("t", mktime(0, 0, 0, getMonth($periode),
1, getYear($periode)));
$pas = 0;
$indexe = 1;
# Affichage du mois et de l'année
$leCalendrier .= "<h2>" . monthNumToName
(getMonth($periode)) . " " . getYear($periode) . "</h2>";
# Affichage des entêtes
$leCalendrier .= "
<ul id=\"libelle\">
\t<li>L</li>
\t<li>M</li>
\t<li>M</li>
\t<li>J</li>
\t<li>V</li>
\t<li>S</li>
\t<li>D</li>
</ul>";
# Tant que l'on n'a pas affecté tous les jours du mois traité
while ($pas < $nb_jour) {
if ($indexe == 1) $leCalendrier .=
"\n\t<ul class=\"ligne\">";
# Si le jour calendrier == jour de la semaine en cours
if (Date("w", mktime(0, 0, 0, getMonth($periode),
1 + $pas, getYear($periode))) == $tableau[$indexe]) {
# Si jour calendrier == aujourd'hui
$afficheJour = Date("j", mktime(0, 0, 0,
getMonth($periode), 1 + $pas, getYear($periode)));
if (Date("Y-m-d", mktime(0, 0, 0, getMonth($periode),
1 + $pas, getYear($periode))) == Date("Y-m-d")) {
$class = " class=\"itemCurrentItem\"";
}
else {
# 1 est toujours vrai => on affiche
# un lien à chaque fois
# A vous de faire les tests
# nécessaire si vous gérer un agenda par exemple
if (1) {
$class = " class=\"itemExistingItem\"";
$afficheJour = "<a href=\"\">" . Date("j",
mktime(0, 0, 0, getMonth($periode), 1 +
$pas, getYear($periode))) . "</a>";
}
else {
$class = "";
}
}
# Ajout de la case avec la date
$leCalendrier .= "\n\t\t<li$class>
$afficheJour</li>";
$pas++;
}
#
else {
# Ajout d'une case vide
$leCalendrier .= "\n\t\t<li> </li>";
}
if ($indexe == 7 && $pas < $nb_jour)
{ $leCalendrier
.= "\n\t</ul>"; $indexe = 1;} else {$indexe++;}
}
# Ajustement du tableau
for ($i = $indexe; $i <= 7; $i++) {
$leCalendrier .= "\n\t\t<li> </li>";
}
$leCalendrier .= "\n\t</ul>\n";
# Retour de la chaine contenant le Calendrier
return $leCalendrier;
}
?>
Je suis perdu à partir du moment où on me parle des variables $pas et $indexe.Je ne sais pas du tout qu'est-ce que c'est, à quoi elles servent et comment elles fonctionnent.
Je ne comprends donc pas non plus
1 + $pas un peu plus loin, ni
if(1){...} à nouveau un peu plus loin.Quant aux liens je ne sais pas non plus de quoi il s'agit:
# un lien à chaque fois
# A vous de faire les tests
# nécessaire si vous gérer un agenda par exemple
Si quelqu'un peut m'éclairer sur ces points ça m'avancerait beaucoup.Le reste m'a l'air assez facile à comprendre,
mais pour ce qui est des points évoqués je ne comprends rien du tout.
<style type="text/css">
calendrier.css?201208241130"css">#calendrier li{ list-style: none; } #libelle { width: 210px; margin: 0 auto; padding: 0; } .ligne { width: 210px; margin: 0 auto; padding: 0; } #libelle li { float : left; width : 30px; } .ligne li { color: #000000; float : left; width : 30px; } .ligne li a:hover{ list-style: none; text-decoration: none; } li.itemCurrentItem { color: #FF0000;/* A vous de configurer l'apparence de la date du jour */ } li.itemSelectedItem { color: #093;/* A vous de configurer l'apparence du jour sélectionné */ }
</style>
