Calendrier par semaine avec actions

Soyez le premier à donner votre avis sur cette source.

Snippet vu 78 519 fois - Téléchargée 19 fois

Contenu du snippet

Il s'agit d'un calendrier par semaine, et non par mois.
Ce calendrier affiche donc 1 seule semaine à la fois... Par défaut la semaine en cours.

Ce calendrier gère également les clics gauche et droit de la souris sur les jours de la semaine... Permettant une intéraction directe avec une base de données par exemple (Ajax...).
Dans l'exemple, l'intéraction envoie simplement une fenètre d'Alert() avec le jour sur lequel on a cliqué... A chacun d'y ajouter les actions qu'il désire.

Le clic droit est également géré... Permettant une action différente de celle du clic gauche. Le menu habituel du clic droit a donc été bloqué.

La date du jour est affichée en jaune pour plus de lisibilité.

Source / Exemple :


<?php
if(isset($_GET["lundi"])) // Une semaine précise est demandée
{
	$ts = $_GET["lundi"];
}
else //On prendra la semaine d'aujourd'hui
{
	$day = (date('w') - 1); //Jour dans la semaine... Lundi = 0
	$diff = $day * 86400; //Différence en secondes par rapport au lundi
	$ts = (mktime() - $diff); //On récupère le TimeStamp du lundi
	//$ts = mktime();
}

//Initialisation des variables
$week = date('W', $ts); //Semaine en cours
$avant = $ts - 604800; //TimeStamp Lundi précédant
$apres = $ts + 604800; //TimeStamp Lundi suivant

?>
<html>
<head>
	<title>Calendrier par Semaine - Semaine <?echo $week;?></title>
	<script type="text/javascript">
		var msg = ""; //Initialisation de la variable "msg"
		
		function actionDate(time, e) //Action appelée lorsqu'on clique sur une date.
		{
			if( (!document.all && e.which == 3) || (document.all && event.button == 2)) //Clic avec le bouton droit (la gestion est différente d'un navigateur à un autre)
			{
				msg = "Clic droit: " + time;
			}
			else //Clic avec le bouton gauche
			{
				msg = "Clic gauche: " + time;
			}
			alert(msg);
			//return(true); //Non utilisé ici... Syntaxiquement correct
		}
		
		function no_menu() //Fonction qui désactive le menu du clic droit :)
		{
			return(false);
		}
		document.oncontextmenu = no_menu; // On appele la fonction "no_menu" si le menu du clic droit est appelé
	</script>
</head>
<body>
	<table align="center" border="1" width="420px">
		<tr>
			<td align="center" width="14%"><b>Lun</b></td>
			<td align="center" width="14%"><b>Mar</b></td>
			<td align="center" width="14%"><b>Mer</b></td>
			<td align="center" width="14%"><b>Jeu</b></td>
			<td align="center" width="14%"><b>Ven</b></td>
			<td align="center" width="14%"><b>Sam</b></td>
			<td align="center"><b>Dim</b></td>
		</tr>
		<tr>
			<?
			for($i=1;$i<8;$i++) //Pour chaque jour de la semaine... Lundi = 1
			{
				if( ($i == date('w')) && ($week == date('W')) ) //Il s'agit d'aujourd'hui!
				{
					?>
					<td align="center" style="background-color:#FFFF00;" onMouseUp="actionDate('<?echo date('d M Y', $ts);?>', event)">
						<?echo date('d M Y', $ts);?>
					</td>
					<?
				}
				else
				{
					?>
					<td align="center" style="background-color:#FFFFFF;" onMouseUp="actionDate('<?echo date('d M Y', $ts);?>', event)">
						<?echo date('d M Y', $ts);?>
					</td>
					<?
				}
				$ts += 86400; //On passe au jour suivant
			}
			?>
		</tr>
	</table>
	<div align="center">
		<a href="./semaine.php?lundi=<?echo $avant;?>"><<</a>&nbsp;Semaine&nbsp;<?echo $week;?>&nbsp;<a href="./semaine.php?lundi=<?echo $apres;?>">>></a>
	</div>
</body>
</html>

Conclusion :


Il s'agit là de ma 1ere source, j'espère qu'elle vous plaira.
N'hésitez surtout pas à faire vos remarques afin que j'améliore mon code.

Merci à vous.

A voir également

Ajouter un commentaire

Commentaires

cs_daggoon
Messages postés
1
Date d'inscription
dimanche 24 octobre 2010
Statut
Membre
Dernière intervention
24 octobre 2010

Ce script est très bien mais comment afficher la date en français... Fev au lieu de Feb par exemple ?
SataN_sTn
Messages postés
12
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
27 avril 2007

Il y a un probleme sur le script, arrivé au dimanche, ca n'affiche plus la semaine en cours, mais la semaine suivant, il y a un soucis sur le faite que le lundi n'est pas le premier jours de la semaine, mais c'est le dimanche, enfin script a revoir :(
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
nan mais appeller deux fois date par jours, c'est pas une bonne idee c'est tout... tu pourrais y mettre un peu de math, ou mieux arranger ca, ca simplifierait les choses, ton code serait plus rapide
Tourach
Messages postés
2
Date d'inscription
jeudi 25 mai 2006
Statut
Membre
Dernière intervention
20 avril 2007

En même temps... Je vois pas pourquoi je rajouterai des fonctionnalités php dans mon code, alors que ce que j'ai fait suffit à afficher ce calendrier... J'avais besoin d'un calendrier par semaine pour un projet, vu que je n'en ai pas trouvé ici, je me suis dis autant proposer le mien.
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
t'as juste une boucle cote php....

remplace les <? par des <?php et les " par des '

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.