CALENDRIER + AGENDA TRÈS SIMPLE (GERER LES JOURS FÉRIÉS ET LES JOURS SPÉCIAUX)

astro53 48 Messages postés jeudi 18 octobre 2007Date d'inscription 5 août 2009 Dernière intervention - 10 sept. 2009 à 10:25 - Dernière réponse :  Sergio
- 11 mars 2018 à 08:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/source/50541-calendrier-agenda-tres-simple-gerer-les-jours-feries-et-les-jours-speciaux

Afficher la suite 
alex0915 1 Messages postés mardi 16 novembre 2010Date d'inscription 15 juin 2011 Dernière intervention - 15 juin 2011 à 10:30
Bonjour,

J'aurai quelques questions a vous poser svp:

- je cherche tout d'abord a modifier la couleur des jours normaux (non feries et non speciaux)
c'est a dire , les jours du 1 au 31 par exemple.

- Ensuite j'aimerais savoir comment faire en sorte d'enlever le concet d'admin user en gros enlever cette Div et rester en mode admin (afin aussi d'eviter les redirections)

Merci de vos reponses
magicman07 2 Messages postés samedi 29 septembre 2007Date d'inscription 6 avril 2010 Dernière intervention - 23 juil. 2011 à 11:53
bonjour et bravo pour ce code, il m'aide vraiment dans le travail que je suis en train de faire.
j'aurais une petite question ^^
je suis en train de regarder le code en détail et je voulais savoir s'il y avait une solution pour appliquer une période de début et de fin sur un évènement (en ajoutant bien sûr un champs à ma table). Genre sortie en bateau sur 3 jours.

Merci par avance pour vos idées, je continue à mater ton petit code vraiment sympathique !!!

Merci encore
abruzzes 1 Messages postés vendredi 23 octobre 2015Date d'inscription 23 octobre 2015 Dernière intervention - 23 oct. 2015 à 23:50
bonjour

j'ai un petit problème, quand j'ajoute un événement il s'enregistre bien dans la base.
mais la case du jour ne change pas de couleur, mais j'ai le message "Evénement ajouté" (en localhost ça fonctionne, mais pas sur le serveur).
quand je repase en mode user l'agenda et vide et rien ne se produit quand je clique dans la case avec l'èvénement.

merci par avance.

agenda.php

<?php
include('conf.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Agenda</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<?php
$list_fer=array(7);//Liste pour les jours ferié; EX: $list_fer=array(7,1)==>tous les dimanches et les Lundi seront des jours fériers

$sql="select dt from agenda";
$req=mysqli_query($db,$sql);
$k=0;
while($row = mysqli_fetch_array($req, MYSQLI_NUM))
{
$list_spe[$k]=$data[0];
$k++;
}
if($k==0)
$list_spe[0]="";
//$list_spe=array('1986-10-31','2009-4-12','2009-9-23');//Mettez vos dates des evenements ; NB format(annee-m-j)
if(isset($_GET['admin']))
$lien_redir="gestion.php";
else
$lien_redir="date_info.php";//Lien de redirection apres un clic sur une date, NB la date selectionner va etre ajouter à ce lien afin de la récuperer ultérieurement
if(isset($_GET['admin']))
$clic=1;//1==>Activer les clic sur tous les dates; 2==>Activer les clic uniquement sur les dates speciaux; 3==>Désactiver les clics sur tous les dates
else
$clic=2;
$col1="#d6f21a";//couleur au passage du souris pour les dates normales

$col2="#8af5b5";//couleur au passage du souris pour les dates speciaux

$col3="#6a92db";//couleur au passage du souris pour les dates férié

$mois_fr = Array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août","Septembre", "Octobre", "Novembre", "Décembre");


if(isset($_GET['mois']) && isset($_GET['annee']))
{
$mois=$_GET['mois'];
$annee=$_GET['annee'];
}
else
{
$mois=date("n");
$annee=date("Y");
}
$s=strlen($mois)-1;
if($mois<10)
$mois=$mois[$s];
$ccl2=array($col1,$col2,$col3);
$l_day=date("t",mktime(0,0,0,$mois,1,$annee));
$x=date("N", mktime(0, 0, 0, $mois,1 , $annee));
$y=date("N", mktime(0, 0, 0, $mois,$l_day , $annee));
$titre=$mois_fr[$mois]." : ".$annee;
//echo $l_day;
?>
<body>
<center>
!-- <div id="lien">
<?php
if(isset($_GET['admin']))
echo '<a href="../index.php?page=agenda">Passer en mode User</a>';
else
echo'<a href="agenda/agenda.php?admin">Passer en mode Admin</a>';
?>
</div> -->
<form name="dt" method="get" action="">
<?php
if(isset($_GET['admin']))
echo '<input type="hidden" name="admin" />';
?>
<select name="mois" id="mois" onChange="change()" class="liste">
<?php
for($i=1;$i<13;$i++)
{
echo '<option value="'.$i.'"';
if($i==$mois)
echo ' selected ';
echo '>'.$mois_fr[$i].'</option>';
}
?>
</select>
<select name="annee" id="annee" onChange="change()" class="liste">
<?php
for($i=1950;$i<2035;$i++)
{
echo '<option value="'.$i.'"';
if($i==$annee)
echo ' selected ';
echo '>'.$i.'</option>';
}
?>
</select>
</form>
<table class="tableau"><caption><?php echo $titre ;?></caption>
<tr><th>Lun</th><th>Mar</th><th>Mer</th><th>Jeu</th><th>Ven</th><th>Sam</th><th>Dim</th></tr>
<tr>
<?php
//echo $y;
$case=0;
if($x>1)
for($i=1;$i<$x;$i++)
{
echo '<td class="desactive"> </td>';
$case++;
}
for($i=1;$i<($l_day+1);$i++)
{
$f=$y=date("N", mktime(0, 0, 0, $mois,$i , $annee));
if($i<10)
$jj="0".$i;
else
$jj=$i;
if($mois<10)
$mm="0".$mois;
else
$mm=$mois;
$da=$annee."-".$mm."-".$jj;
$lien=$lien_redir;
$lien.="?dt=".$da;
echo "<td";
if(in_array($da, $list_spe))
{
echo " class='special' onmouseover='over(this,1,2)'";
if($clic==1||$clic==2)
echo " onclick='go_lien(\"$lien\",this)' ";
}
else if(in_array($f, $list_fer))
{
echo " class='ferier' onmouseover='over(this,2,2)'";
if($clic==1)
echo " onclick='go_lien(\"$lien\",this)' ";
}
else
{
echo" onmouseover='over(this,0,2)' ";
if($clic==1)
echo " onclick='go_lien(\"$lien\",this)' ";
}
echo" onmouseout='over(this,0,1)'>$i</td>";
$case++;
if($case%7==0)
echo "</tr><tr>";

}
if($y!=7)
for($i=$y;$i<7;$i++)
{
echo '<td class="desactive"> </td>';
}
?></tr>
</table>
<?php
if(isset($_GET['mod']))
echo "<div id='notif'>Calendrier modifié</div>";
elseif(isset($_GET['add']))
echo "<div id='notif'>Evénement ajouté</div>";
?>
</center>
</body></html>

<script type="text/javascript">
function change()
{
document.dt.submit();
}
function over(this_,a,t)
{
<?php
echo "var c2=['$ccl2[0]','$ccl2[1]','$ccl2[2]'];";
?>
var col;
if(t==2)
this_.style.backgroundColor=c2[a];
else
this_.style.backgroundColor="";
}
function go_lien(a,this_)
{
over(this_,0,1);
top.document.location=a;
}
</script>


gestion.php

<?php
include('conf.php');
if(isset($_POST['sup']))
{
$id=$_POST['upd'];
$dat=$_POST['dd'];
$d_l=explode('-',$dat);
$mois=$d_l[1];
$anne=$d_l[0];
$lien="&mois=".$mois."&annee=".$anne;
$l=$_POST['lieu'];
$e=$_POST['event'];
if($_POST['sup']==1)
$sql="delete from agenda where id=$id";
else
$sql="update agenda set lieu='$l' , event='$e' where id=$id";
mysqli_query($db,$sql);
header("location: agenda.php?admin&mod$lien");
}
else if(isset($_POST['lieu']))
{
$dat=$_POST['dd'];
$l=$_POST['lieu'];
$e=$_POST['event'];
$d_l=explode('-',$dat);
$mois=$d_l[1];
$anne=$d_l[0];
$lien="&mois=".$mois."&annee=".$anne;
$sql="insert into agenda (dt,lieu,event) values('$dat','$l','$e')";
mysqli_query($db,$sql);
echo $sql;
header("location: agenda.php?admin&add$lien");
}
else
{
$d=$_GET['dt'];
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Details de la date : <?php echo $d;?></title>
</head>
<body>
<h1>Gestion de la date : <?php echo $d;?></h1>
<?php
$sql="select * from agenda where dt='$d'";
$req=mysqli_query($db,$sql);
if(mysqli_num_rows($req)==1)
while($data = mysqli_fetch_array($req))
{
$mod=1;
$id=$data['id'];
$loc=$data['event'];
$eve=$data['lieu'];
}
else
{
$mod=0;
$loc="";
$eve="";
}
?>
<form name="gr" action="gestion.php" method="post"><input type='hidden' id='dd' name='dd' value='<?php echo $d; ?>'>
<table >
<tr height="50px"><td width="150px"><strong>Evenement</strong></td><td><input type="text" name="lieu" value="<?php echo $loc;?>"/></td></tr>
<tr height="50px"><td><strong>Lieu</strong></td><td><input type="text" name="event" value="<?php echo $eve;?>"/></td></tr>
<tr height="50px">
<?php
if($mod==0)
echo "<td colspan='2'><input type='submit' value='Ajouter'></td>";
else
{
echo "<td colspan='2'><input type='submit' value='Modifier'>  <input type='button' value='Supprimer' onclick='supp()'>";
echo "<input type='hidden' id='sup' name='sup' value='0'><input type='hidden' name='upd' value='$id'></td>";
}
?>
</tr>
</table>
</form>
</body></html>
<?php
}
?>
<script type="text/javascript">
function supp()
{
if(confirm("Etes vous sur de supprimer cette Date")==true)
{
document.getElementById('sup').value=1;
gr.submit();
}
}
</script>


date_info.php

<?php
include('conf.php');
$d=$_GET['dt'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Details de la date : <?php echo $d;?></title>
</head>
<body>
<h1>Detail de la date : <?php echo $d;?></h1>
<?php
$sql="select * from agenda where dt='$d'";
$req=mysqli_query($db,$sql);
if(mysqli_num_rows($req)==0)
echo "Aucune information pour cette date";
else
while($data = mysqli_fetch_array($req))
{
?>
<table >
<tr height="50px"><td width="150px"><strong>Evenement</strong></td><td><?php echo $data['event'];?></td></tr>
<tr height="50px"><td><strong>Lieu</strong></td><td><?php echo $data['lieu'];?></td></tr>
</table>
<?php
}
?>
</body>
</html>

je l'ai essayé mais il se trouve qu'il faut passer en PDO.
Bonjour, votre agenda fonctionne bien mais j'ai juste un souci avec l'url lorsque l'on change le mois ou l'année.
L'url générée est ?mois=4&annee=2018 mais je voudrais plutôt avoir .4.2018.html
Comment faire pour modifier l'url générée ?
Merci de votre aide.
Commenter la réponse de astro53

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.