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

Signaler
Messages postés
48
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
5 août 2009
-
 Sergio -
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

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

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.
je l'ai essayé mais il se trouve qu'il faut passer en PDO.
Messages postés
1
Date d'inscription
vendredi 23 octobre 2015
Statut
Membre
Dernière intervention
23 octobre 2015

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>

Messages postés
2
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
6 avril 2010

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
Messages postés
1
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
15 juin 2011

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
Afficher les 34 commentaires