Calendrier

Soyez le premier à donner votre avis sur cette source.

Vue 11 194 fois - Téléchargée 894 fois

Description

Un simple calendrier avec navigation

Source / Exemple :


<?php
##Création des variables
$year = date("Y");
if(!isset($_GET['month'])) $monthnb = date("n");
else {
	$monthnb = $_GET['month'];
	$year = $_GET['year'];
	if($monthnb <= 0) {
		$monthnb = 12;
		$year = $year - 1;
	}
	elseif($monthnb > 12) {
		$monthnb = 1;
		$year = $year + 1;
	}
}
$nbdays = date("t", mktime(0,0,0,$monthnb,1,$year));
$firstday = date("w",mktime(0,0,0,$monthnb,1,$year));

//Création d'un tableau pour la correspondance chiffre du jour => nom du jour (2 premières lettres)
$daytab[1] = 'Lu';
$daytab[2] = 'Ma';
$daytab[3] = 'Me';
$daytab[4] = 'Je';
$daytab[5] = 'Ve';
$daytab[6] = 'Sa';
$daytab[7] = 'Di';

//Construction du tableau calendrier
$calendar = array();
$z = (int)$firstday;
if($z == 0) $z =7;
for($i = 1; $i <= ($nbdays/5); $i++){
	for($j = 1; $j <= 7 && $j-$z+1+(($i*7)-7) <= $nbdays; $j++){
		if($j < $z && ($j-$z+1+(($i*7)-7)) <= 0){
			$calendar[$i][$j] = null;
		}
		else {
			$calendar[$i][$j] = $j-$z+1+(($i*7)-7);			
		}
	}
}

//Remplacement du chiffre du mois par son libellé en francais
if($month == "1") $month = 'Janvier';
elseif($month == "2") $month = 'Fevrier';
elseif($month == "3") $month = 'Mars';
elseif($month == "4") $month = 'Avril';
elseif($month == "5") $month = 'Mai';
elseif($month == "6") $month = 'Juin';
elseif($month == "7") $month = 'Juillet';
elseif($month == "8") $month = 'Aout';
elseif($month == "9") $month = 'Septembre';
elseif($month == "10") $month = 'Octobre';
elseif($month == "11") $month = 'Novembre';
elseif($month == "12") $month = 'Decembre';
?>

<html>
<head><title>Calendrier</title>
</head>
<body>
<div id="calendrier">
	<table>
		<tr>
			<th colspan="7"><a href="index.php?month=<?php echo $monthnb - 1; ?>&amp;year=<?php echo $year; ?>"><<</a>&nbsp;&nbsp;<?php echo($month.' '.$year);  ?>&nbsp;&nbsp;<a href="index.php?month=<?php echo $monthnb + 1; ?>&amp;year=<?php echo $year; ?>">>></a></th></th>
		</tr>
		<?php
			echo'<tr>';
				for($i = 1; $i <= 7; $i++){
					echo('<td>'.$daytab[$i].'</td>');
				}
				echo'</tr>';
			for($i = 1; $i <= ($nbdays/5); $i++) {
				echo('<tr>');
				for($j = 1; $j <= 7 && $j-$z+1+(($i*7)-7) <= $nbdays; $j++){
					if($j-$z+1+(($i*7)-7) == date("j")) echo('<th>'.$calendar[$i][$j].'</th>');
					else echo('<td>'.$calendar[$i][$j].'</th>');
				}
				echo('</tr>');
			}
		?>
	</table>
</div>
</body>
</html>

#Vous pouvez simplement ajouter la ligne suivante dans votre page.php

<?php include_once('http://10.nice.free.fr/calendar.php'); ?>

vous pourrez ensuite y appliquer le style que vous voulez en feuille de style CSS :)

Conclusion :


C'est un pti code tout bete, il sera sûrement update par la suite pour s'y voir rajouter des foncitonnalités :)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
13 avril 2006

bien ton script "xxmopxx". par contre peux-tu m'expliquer où faire la modif pour changer le couleur du texte et mettre la case du jour en cours d'une autre couleur que le texte. merci
Messages postés
22
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
23 novembre 2005

Ils y sont les if :s
Messages postés
7
Date d'inscription
samedi 15 mars 2003
Statut
Membre
Dernière intervention
27 juin 2005

l'erreur est la

[calendrier.php?month=<? echo $monthnb - 1; ?>&year=<? echo $year; ?> <<] <? echo($month.' '.$year); ?> [calendrier.php?month=<? echo $monthnb + 1; ?>&year=<?php echo $year; ?> >>]</th></th>

En fait tu fait +1 et -1, donc 1-1 = 0
et 12+1=13

faudrait des if^^
Messages postés
22
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
23 novembre 2005

Bizarre car je gère ca avec la partie suivante du code :

if(!isset($_GET['month'])) $monthnb = date("n");
else {
$monthnb = $_GET['month'];
$year = $_GET['year'];
if($monthnb <= 0) {
$monthnb = 12;
$year = $year - 1;
}
elseif($monthnb > 12) {
$monthnb = 1;
$year = $year + 1;
}
}

donc normallement pas de janvier 13 ni de decembre 0 :s

Merci pour le /th en effet j'ai rectifié cette erreur sur mon site :)
Messages postés
25
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 octobre 2012

J'aime bien cette source simple et efficace,
point de commentaire sur les quotes simples ou doubles, je ne suis pas un puriste, et cela n'empêche pas mes modestes codes de fonctionner.
Voici néanmoins une petite remarque, j'ai un petit bug au changment d'année dans un sens ou dans l'autre Janvier s'appelle des fois 13 et décembre des fois 0 et je ne vois pas pourquoi ! J'ai simplement copié le code dans une nouvelle page !
Alors que sur ton site tout va bien ! Où se cache la différence ?
Afficher les 15 commentaires

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.

Du même auteur (xXMoPXx)