par
niconicochan » 13 août 2014, 10:58
Bonjour,
J'ai utilisé un calendrier avec du code php déjà préparé
mais qui à l'air facilement modifiable.
Ca aurait été un pru trop difficile pour moi
de faire le calendrier entièrement par moi-même.
Je vous montre le programme:
<?php
/*première partie*/
# 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";
}
?>
/*deuxième partie*/
<?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("d", 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\"";
$var = Date("d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode)));
$afficheJour = "<input type=\"submit\" name=\"tonNomTropSawgIci\" value=\"" . $var . "\"</input>";
}
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;
}
?>
/*troisième partie*/
<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 : 40px; text-decoration: none; } .ligne li a:hover{ color: #800080; list-style: none; text-decoration: none; } li.itemCurrentItem { color: #FF0000;/* A vous de configurer l'apparence de la date du jour */ } li.itemSelectedItem { color: #0099FF;/* A vous de configurer l'apparence du jour sélectionné */ }li.itemExistingItem { color: #3300FF; }
</style>
En fait, je souhaitais au départ remplacer les points par des cases (les points des <li>...</li>),
mais l'input rajouté dans:
if (1) {
$class = " class=\"itemExistingItem\"";
$var = Date("d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode)));
$afficheJour = "<input type=\"submit\" name=\"tonNomTropSawgIci\" value=\"" . $var . "\"</input>";
}
me donne les cases du coup.
Je souhaiterais maintenant enlever les points.
Je peux enlever les balises <ul> </ul> <li> et </li> dans
# 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>";
mais ça risque d'être compliqué à gérer avec le fichier:
<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 : 40px; text-decoration: none; } .ligne li a:hover{ color: #800080; list-style: none; text-decoration: none; } li.itemCurrentItem { color: #FF0000;/* A vous de configurer l'apparence de la date du jour */ } li.itemSelectedItem { color: #0099FF;/* A vous de configurer l'apparence du jour sélectionné */ }li.itemExistingItem { color: #3300FF; }
</style>
Je ne sais pas si vous pouvez m'aider, me donner des conseils?
Egalement, j'aimerais pouvoir faire du mon calendrier un bloc, une image.
Je souhaiterais créer une animation javascript par la suite avec une fonction moveSprite et deux variables.
Du coup, je dois définir l'image sur laquelle je souhaite affecter une animation avec src="..." dans ma page js.
Comment avec css et le html je pourrais faire pour faire de mon calendrier un bloc, une image
sur laquelle je pourrai travailler avec une animation?
Bonjour,
J'ai utilisé un calendrier avec du code php déjà préparé
mais qui à l'air facilement modifiable.
Ca aurait été un pru trop difficile pour moi
de faire le calendrier entièrement par moi-même.
Je vous montre le programme:
[php]
<?php
/*première partie*/
# 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";
}
?>
[/php]
[php]
/*deuxième partie*/
<?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("d", 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\"";
$var = Date("d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode)));
$afficheJour = "<input type=\"submit\" name=\"tonNomTropSawgIci\" value=\"" . $var . "\"</input>";
}
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;
}
?>
[/php]
[css]
/*troisième partie*/
<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 : 40px; text-decoration: none; } .ligne li a:hover{ color: #800080; list-style: none; text-decoration: none; } li.itemCurrentItem { color: #FF0000;/* A vous de configurer l'apparence de la date du jour */ } li.itemSelectedItem { color: #0099FF;/* A vous de configurer l'apparence du jour sélectionné */ }li.itemExistingItem { color: #3300FF; }
</style>
[/css]
En fait, je souhaitais au départ remplacer les points par des cases (les points des <li>...</li>),
mais l'input rajouté dans:
[php]
if (1) {
$class = " class=\"itemExistingItem\"";
$var = Date("d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode)));
$afficheJour = "<input type=\"submit\" name=\"tonNomTropSawgIci\" value=\"" . $var . "\"</input>";
}
[/php]
me donne les cases du coup.
Je souhaiterais maintenant enlever les points.
Je peux enlever les balises <ul> </ul> <li> et </li> dans
[css]
# 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>";
[/css]
mais ça risque d'être compliqué à gérer avec le fichier:
[css]
<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 : 40px; text-decoration: none; } .ligne li a:hover{ color: #800080; list-style: none; text-decoration: none; } li.itemCurrentItem { color: #FF0000;/* A vous de configurer l'apparence de la date du jour */ } li.itemSelectedItem { color: #0099FF;/* A vous de configurer l'apparence du jour sélectionné */ }li.itemExistingItem { color: #3300FF; }
</style>
[/css]
Je ne sais pas si vous pouvez m'aider, me donner des conseils?
Egalement, j'aimerais pouvoir faire du mon calendrier un bloc, une image.
Je souhaiterais créer une animation javascript par la suite avec une fonction moveSprite et deux variables.
Du coup, je dois définir l'image sur laquelle je souhaite affecter une animation avec src="..." dans ma page js.
Comment avec css et le html je pourrais faire pour faire de mon calendrier un bloc, une image
sur laquelle je pourrai travailler avec une animation?