Auteur |
Message |
ostead
Messages : 38
Inscrit le : 02/11/2002 |
Posté le 14/04/2004 à 15:54:31
Message N°1 #
|
Salut à tous!
J'ai récupéré un bout de code sur le net pour faire un calendrier. J'aimerais bricoler un peu de code mais je n'arrive pas à trouver comment afficher seulement 28 ou 30 jours selon le mois... Si quelqu'un a une piste ou deux à me donner ce serait sympa.
Voilà le code:
$month = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet",
"août", "septembre", "octobre", "novembre", "décembre");
if(empty($mois)) $mois = date("n");
if(empty($annee)) $annee = date("Y");
if(empty($jour)) $jour = date("d");
$nbre_jours = date("t", $sec);
if($mois > 12) $mois = $mois-12;
if($mois < 1) $mois = $mois+12;
$jour_num = date("w", mktime(0,0,0,$mois,01,$annee));
if($jour_num == 0) $jour_num = 7;
echo "<font face=\"verdana\" color=\"white\" size=\"2\">";
if($mois == 1) $mois_av = 12;
else $mois_av = $mois-1;
echo " <a class=\"lienblanc\" href=\"index.php?jour=".$jour;
echo "&mois=".$mois_av."&annee=".$annee."\">-</a> n";
echo $month[$mois-1];
if($mois == 12) $mois_ap = 1;
else $mois_ap = $mois+1;
echo " <a class=\"lienblanc\" href=\"index.php?jour=".$jour;
echo "&mois=".$mois_ap."&annee=".$annee."\"> +</a><br><a class=\"lienblanc\" ";
echo "href=\"index.php?jour=".$jour."&mois=".$mois."&annee=";
echo ($annee-1)."\">-</a>".$annee."<a class=\"lienblanc\" ";
echo "href=\"index.php?jour=";
echo $jour."&mois=".$mois."&annee=".($annee+1)."\">+</a></font>n</td>n </tr>n";
echo "<tr><td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"white\">lun</font></td><td width=\"40\" align=\"center\">";
echo "<font face=\"verdana\" size=\"2\" color=\"white\">mar</font></td>";
echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"white\">mer</font></td><td width=\"40\" align=\"center\">";
echo "<font face=\"verdana\" size=\"2\" color=\"white\">jeu</font></td>";
echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"white\">ven</font></td><td width=\"40\" align=\"center\">";
echo "<font face=\"verdana\" size=\"2\" color=\"white\">sam</font></td>";
echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"white\">dim</font></td></tr>n<tr>n";
$case = 0;
if($jour_num != 1)
{
while($jour_num > 1)
{
echo "<td width=\"40\"> </td>n";
$jour_num--;
$case++;
}
}
for($u = 1; $u <= $nbre_jours; $u++)
{
if($u == $jour)
{
echo "<td width=\"20\" align=\"center\" bgcolor=\"white\"><font ";
echo "face=\"verdana\" color=\"#336699\" size=\"2\">".$u."</font></td>n";
}
else
{
echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" ";
echo "color=\"white\" size=\"2\"><a class=\"lienblanc\" ";
echo "href=\"index.php?jour=";
echo $u."&mois=".$mois."&annee=".$annee."\">".$u."</a></font></td>n";
}
if(is_integer(($case+$u)/7) && $u < $nbre_jours)
echo "</tr>n<tr>n";
}
while(!is_integer(($case+$u-1)/7))
{
echo "<td width=\"40\"> </td>n";
$u++;
}
Merci d'avance et a plus! |
|
loranger
Messages : 392
Inscrit le : 04/04/2002 |
Posté le 14/04/2004 à 17:56:42
Message N°2 #
|
date("t", $timestamp);
te renvoie le nombre de jour du mois en question... |
|
ostead
Messages : 38
Inscrit le : 02/11/2002 |
Posté le 14/04/2004 à 22:34:47
Message N°3 #
|
Ca marche, je vais creuser dans cette direction! Merci beaucoup!
En passant, votre site est vraiment top. C'est vraiment une référence pour moi dans les sites php. Tout est toujours expliqué très simplement, j'adore! |
|
renaud
Messages : 321
Inscrit le : 10/05/2002 |
Posté le 15/04/2004 à 10:45:27
Message N°4 #
|
y a aussi la fonction cal_days_in_month |
|
ostead
Messages : 38
Inscrit le : 02/11/2002 |
Posté le 22/04/2004 à 10:59:42
Message N°5 #
|
Impec' c'est terminé, merci à tous!! |
|
ostead
Messages : 38
Inscrit le : 02/11/2002 |
Posté le 23/04/2004 à 10:17:40
Message N°6 #
|
Non, c'est pas fini en fait. J'ai une erreur que je n'arrive pas à virer: Undefined variable: _server. J'ai réussi à corriger toutes les autres quand je suis passé de easyphp 1.6 à 1.7 avec les histoires de variables à déclarer...
enfin, bref, celle-ci je n'y arrive pô!!
Voilà le bout de code incriminé!
if(!isset($_server)){
$_server = $_server['php_self'];
}
en fait je me sers de $_server['php_self'] pour la navigation dans le script. je pourrais mettre directement le nom de la page, mais vu qu'elle va probablement bouger plusieurs fois, j'ai préféré utiliser $_server['php_self'].
Voilà! |
|
maverick
Messages : 619
Inscrit le : 04/04/2002 |
Posté le 23/04/2004 à 16:11:54
Message N°7 #
|
essaie plutôt :
$_SERVER['PHP_SELF']
en majuscule
____________________
|
|
renaud
Messages : 321
Inscrit le : 10/05/2002 |
Posté le 23/04/2004 à 19:08:36
Message N°8 #
|
Mais à l'origine la variable $_SERVER est un tableau qui contient un certain nombre d'informations ... Alors si tu fais l'affectation $_SERVER = $_SERVER['PHP_SELF']; la variable ne sera plus un tableau et tu vas écraser toutes les autres informations ... |
|
ostead
Messages : 38
Inscrit le : 02/11/2002 |
Posté le 26/04/2004 à 10:04:49
Message N°9 #
|
C vrai, mais je ne vois pas vraiment comment faire...
Mais maintenant que ce problème est réglé, j'ai un souci.
Lorsque l'on navigue dans le calendrier, des valeurs sont passées dans l'url. c'est pourquoi j'ai ajouté
$mois = $_GET['mois'];
$jour = $_GET['jour'];
$annee = $_GET['annee'];
dans ma page. Tout fonctionne mais lorsque je reviens à l'index, ou lorsque je lance la page:
Notice: Undefined index: mois in... car évidememment aucune valeur n'est envoyé.
Le mystère, quoi...
@+ |
|
loranger
Messages : 392
Inscrit le : 04/04/2002 |
Posté le 26/04/2004 à 13:31:30
Message N°10 #
|
Et bien tout simplement en vérifiant si la variable en question existe :
if( isset($_GET['mois']) ){
$mois = $_GET['mois'];
} else {
$mois = valeur_par_defaut;
}[/quote]
ou encore, de façon plus condensée :
[quote]$mois = (isset($_GET['mois'])) ? $_GET['mois'] : date("m"); |
|