date.chapril.org-framadate/choix_date.php

601 lines
27 KiB
PHP
Raw Normal View History

2011-05-15 01:32:47 +02:00
<?php
//==========================================================================
//
//Université de Strasbourg - Direction Informatique
//Auteur : Guilhem BORGHESI
//Création : Février 2008
//
//borghesi@unistra.fr
//
//Ce logiciel est régi par la licence CeCILL-B soumise au droit français et
//respectant les principes de diffusion des logiciels libres. Vous pouvez
//utiliser, modifier et/ou redistribuer ce programme sous les conditions
//de la licence CeCILL-B telle que diffusée par le CEA, le CNRS et l'INRIA
//sur le site "http://www.cecill.info".
//
//Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
//pris connaissance de la licence CeCILL-B, et que vous en avez accepté les
//termes. Vous pouvez trouver une copie de la licence dans le fichier LICENCE.
//
//==========================================================================
//
//Université de Strasbourg - Direction Informatique
//Author : Guilhem BORGHESI
//Creation : Feb 2008
//
//borghesi@unistra.fr
//
//This software is governed by the CeCILL-B license under French law and
//abiding by the rules of distribution of free software. You can use,
//modify and/ or redistribute the software under the terms of the CeCILL-B
//license as circulated by CEA, CNRS and INRIA at the following URL
//"http://www.cecill.info".
//
//The fact that you are presently reading this means that you have had
//knowledge of the CeCILL-B license and that you accept its terms. You can
//find a copy of this license in the file LICENSE.
//
//==========================================================================
session_start();
include_once('creation_sondage.php');
2011-05-15 03:56:54 +02:00
if (file_exists('bandeaux_local.php')) {
include_once('bandeaux_local.php');
} else {
include_once('bandeaux.php');
2011-05-15 01:32:47 +02:00
}
2011-05-15 03:56:54 +02:00
//si les variables de session ne snot pas valides, il y a une erreur
2011-05-15 05:56:11 +02:00
if (!issetAndNoEmpty('nom', $_SESSION) && !issetAndNoEmpty('adresse', $_SESSION) && !issetAndNoEmpty('commentaires', $_SESSION) && !issetAndNoEmpty('mail', $_SESSION)) {
2011-05-15 03:56:54 +02:00
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">'."\n";
echo '<html>'."\n";
echo '<head>'."\n";
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'."\n";
echo '<title>'.NOMAPPLICATION.'</title>'."\n";
echo '<link rel="stylesheet" type="text/css" href="style.css">'."\n";
echo '</head>'."\n";
echo '<body>'."\n";
logo();
bandeau_tete();
bandeau_titre(_("Error!"));
echo '<div class=corpscentre>'."\n";
print "<H2>" . _("You haven't filled the first section of the poll creation.") . " !</H2>"."\n";
print _("Back to the homepage of ") . ' ' . '<a href="index.php">' . NOMAPPLICATION . '</a>.' . "\n";
echo '<br><br><br>'."\n";
echo '</div>'."\n";
//bandeau de pied
//sur_bandeau_pied();
bandeau_pied();
echo '</body>'."\n";
echo '</html>'."\n";
} else { //sinon on peut afficher le calendrier normalement
//partie creation du sondage dans la base SQL
//On prépare les données pour les inserer dans la base
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('confirmation') || issetAndNoEmpty('confirmation_x')) {
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
if ($_SESSION["horaires$i"][0] == "" && $_SESSION["horaires$i"][1] == "" && $_SESSION["horaires$i"][2] == "" && $_SESSION["horaires$i"][3] == "" && $_SESSION["horaires$i"][4] == "") {
$choixdate.=",";
$choixdate .= $_SESSION["totalchoixjour"][$i];
} else {
for ($j=0;$j<$_SESSION["nbrecaseshoraires"];$j++) {
if ($_SESSION["horaires$i"][$j]!="") {
$choixdate.=",";
$choixdate .= $_SESSION["totalchoixjour"][$i];
$choixdate.="@";
2011-05-29 03:39:36 +02:00
// On remplace la virgule et l'arobase pour ne pas avoir de problème par la suite
$choixdate .= str_replace(array(',', '@'), array('&#44;', '&#64;'), $_SESSION["horaires$i"][$j]);
2011-05-15 05:56:11 +02:00
}
2011-05-15 03:56:54 +02:00
}
}
}
}
$_SESSION["toutchoix"]=substr("$choixdate",1);
ajouter_sondage();
}
//nombre de cases par défaut
2011-05-15 05:56:11 +02:00
if(!issetAndNoEmpty('nbrecaseshoraires', $_SESSION)) {
2011-05-15 03:56:54 +02:00
$_SESSION["nbrecaseshoraires"]=5;
2011-05-15 05:56:11 +02:00
} elseif ((issetAndNoEmpty('ajoutcases') || issetAndNoEmpty('ajoutcases_x')) && $_SESSION["nbrecaseshoraires"] == 5) {
2011-05-15 03:56:54 +02:00
$_SESSION["nbrecaseshoraires"]=10;
}
//valeurs de la date du jour actuel
$jourAJ=date("j");
$moisAJ=date("n");
$anneeAJ=date("Y");
2011-05-15 05:56:11 +02:00
// Initialisation des jour, mois et année
if (issetAndNoEmpty('jour', $_SESSION) === false) {
$_SESSION['jour']= date('j');
}
if (issetAndNoEmpty('mois', $_SESSION) === false) {
$_SESSION['mois']= date('n');
}
if (issetAndNoEmpty('annee', $_SESSION) === false) {
$_SESSION['annee']= date('Y');
}
2011-05-15 03:56:54 +02:00
//mise a jour des valeurs de session si bouton retour a aujourd'hui
2011-05-15 05:56:11 +02:00
if ((!issetAndNoEmpty('anneeavant_x') && !issetAndNoEmpty('anneeapres_x') && !issetAndNoEmpty('moisavant_x') && !issetAndNoEmpty('moisapres_x') && !issetAndNoEmpty('choixjourajout')) && !issetAndNoEmpty('choixjourretrait') || (issetAndNoEmpty('retourmois') || issetAndNoEmpty('retourmois_x'))){
2011-05-15 03:56:54 +02:00
$_SESSION["jour"]=date("j");
$_SESSION["mois"]=date("n");
$_SESSION["annee"]=date("Y");
}
//mise a jour des valeurs de session si mois avant
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('moisavant') || issetAndNoEmpty('moisavant_x')) {
if ($_SESSION["mois"] == 1) {
$_SESSION["mois"] = 12;
$_SESSION["annee"] = $_SESSION["annee"]-1;
2011-05-15 03:56:54 +02:00
} else {
$_SESSION["mois"] -= 1;
}
//On sauvegarde les heures deja entrées
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
//affichage des 5 cases horaires
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
}
2011-05-15 03:56:54 +02:00
}
}
}
//mise a jour des valeurs de session si mois apres
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('moisapres') || issetAndNoEmpty('moisapres_x')) {
if ($_SESSION["mois"] == 12) {
$_SESSION["mois"] = 1;
2011-05-15 03:56:54 +02:00
$_SESSION["annee"] += 1;
} else {
$_SESSION["mois"] += 1;
}
//On sauvegarde les heures deja entrées
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
//affichage des 5 cases horaires
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
}
2011-05-15 03:56:54 +02:00
}
}
}
//mise a jour des valeurs de session si annee avant
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('anneeavant') || issetAndNoEmpty('anneeavant_x')) {
2011-05-15 03:56:54 +02:00
$_SESSION["annee"] -= 1;
//On sauvegarde les heures deja entrées
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
//affichage des 5 cases horaires
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
}
2011-05-15 03:56:54 +02:00
}
}
}
//mise a jour des valeurs de session si annee apres
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('anneeapres') || issetAndNoEmpty('anneeapres_x')) {
2011-05-15 03:56:54 +02:00
$_SESSION["annee"] += 1;
//On sauvegarde les heures deja entrées
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
//affichage des 5 cases horaires
for ($j = 0;$j < $_SESSION["nbrecaseshoraires"]; $j++) {
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
}
2011-05-15 03:56:54 +02:00
}
}
}
//valeurs du nombre de jour dans le mois et du premier jour du mois
2011-05-15 05:56:11 +02:00
$nbrejourmois = date("t", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"]));
$premierjourmois = date("N", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"])) - 1;
2011-05-15 03:56:54 +02:00
//le format du sondage est DATE
2011-05-15 05:56:11 +02:00
$_SESSION["formatsondage"] = "D".$_SESSION["studsplus"];
2011-05-15 03:56:54 +02:00
//traduction de la valeur du mois
if (is_integer($_SESSION["mois"]) && $_SESSION["mois"] > 0 && $_SESSION["mois"] < 13) {
$motmois=strftime('%B', mktime(0, 0, 0, $_SESSION["mois"], 10));
} else {
$motmois=strftime('%B');
}
//debut de la page web
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">'."\n";
echo '<html>'."\n";
echo '<head>'."\n";
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'."\n";
echo '<title>'.NOMAPPLICATION.'</title>'."\n";
echo '<link rel="stylesheet" type="text/css" href="style.css">'."\n";
echo '<script type="text/javascript" src="block_enter.js"></script>';
echo '</head>'."\n";
echo '<body>'."\n";
//Debut du formulaire et bandeaux de tete
echo '<form name="formulaire" action="choix_date.php" method="POST" onkeypress="javascript:process_keypress(event)">'."\n";
logo();
bandeau_tete();
bandeau_titre(_("Poll dates (2 on 2)"));
sous_bandeau_choix();
//affichage de l'aide pour les jours
echo '<div class=bodydate>'."\n";
echo _("Select your dates amoung the free days (green). The selected days are in blue.<br> You can unselect a day previously selected by clicking again on it.") ."\n";
echo '</div>'."\n";
//debut du tableau qui affiche le calendrier
echo '<div class=calendrier>'."\n";
echo '<table align=center>'."\n";
echo '<tr><td><input type="image" name="anneeavant" value="<<" src="images/rewind.png"></td><td><input type="image" name="moisavant" value="<" src="images/previous.png"></td><td width="150px" align="center"> '.$motmois.' '.$_SESSION["annee"].' </td><td><input type="image" name="moisapres" value=">" src="images/next.png"></td><td><input type="image" name="anneeapres" value=">>" src="images/fforward.png"></td><td></td><td></td><td></td><td></td><td></td><td><input type="image" name="retourmois" value="Aujourd\'hui" src="images/reload.png"></td></tr>'."\n";
echo '</table>'."\n";
echo '<table>'."\n";
echo '<tr>'."\n";
//affichage des jours de la semaine en haut du tableau
for($i = 0; $i < 7; $i++) {
2011-05-15 05:56:11 +02:00
echo '<td class="joursemaine">'. strftime('%A',mktime(0,0,0,0, $i,10)) .'</td>';
2011-05-15 03:56:54 +02:00
}
echo '</tr>'."\n";
//ajout d'une entrée dans la variable de session qui contient toutes les dates
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('choixjourajout')) {
2011-05-15 03:56:54 +02:00
if (!isset($_SESSION["totalchoixjour"])) {
$_SESSION["totalchoixjour"]=array();
}
// Test pour éviter les doublons dans la variable qui contient toutes les dates
2011-05-15 05:56:11 +02:00
$journeuf = true;
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('choixjourajout') === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"])) {
$journeuf=false;
}
2011-05-15 03:56:54 +02:00
}
}
// Si le test est passé, alors on insere la valeur dans la variable de session qui contient les dates
2011-05-15 05:56:11 +02:00
if ($journeuf && issetAndNoEmpty('choixjourajout') === true) {
array_push ($_SESSION["totalchoixjour"],mktime (0,0,0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"]));
2011-05-15 03:56:54 +02:00
sort ($_SESSION["totalchoixjour"]);
2011-05-15 05:56:11 +02:00
$cle=array_search (mktime (0,0,0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"]), $_SESSION["totalchoixjour"]);
2011-05-15 03:56:54 +02:00
//On sauvegarde les heures deja entrées
2011-05-15 05:56:11 +02:00
for ($i = 0; $i < $cle; $i++) {
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
}
2011-05-15 03:56:54 +02:00
}
}
2011-05-15 05:56:11 +02:00
for ($i = $cle; $i < count($_SESSION["totalchoixjour"]); $i++) {
$k = $i + 1;
if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
$_SESSION["horaires$k"][$j] = $_POST["horaires$i"][$j];
}
2011-05-15 03:56:54 +02:00
}
}
unset($_SESSION["horaires$cle"]);
}
}
//retrait d'une entrée dans la variable de session qui contient toutes les dates
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('choixjourretrait')) {
2011-05-15 03:56:54 +02:00
//On sauvegarde les heures deja entrées
2011-05-15 05:56:11 +02:00
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
2011-05-15 03:56:54 +02:00
//affichage des 5 cases horaires
2011-05-15 05:56:11 +02:00
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
2011-05-15 03:56:54 +02:00
}
}
2011-05-15 05:56:11 +02:00
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $_POST["choixjourretrait"][0], $_SESSION["annee"])) {
for ($j = $i; $j < count($_SESSION["totalchoixjour"]); $j++) {
$k = $j+1;
$_SESSION["horaires$j"] = $_SESSION["horaires$k"];
2011-05-15 03:56:54 +02:00
}
2011-05-15 05:56:11 +02:00
array_splice($_SESSION["totalchoixjour"], $i,1);
2011-05-15 03:56:54 +02:00
}
}
}
//report des horaires dans toutes les cases
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('reporterhoraires')) {
$_SESSION["horaires0"] = $_POST["horaires0"];
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
$j = $i+1;
$_SESSION["horaires$j"] = $_SESSION["horaires$i"];
2011-05-15 03:56:54 +02:00
}
}
//report des horaires dans toutes les cases
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('resethoraires')) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
2011-05-15 03:56:54 +02:00
unset ($_SESSION["horaires$i"]);
}
}
// affichage du calendrier
echo '<tr>'."\n";
2011-05-15 05:56:11 +02:00
for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) {
$numerojour = $i-$premierjourmois+1;
2011-05-15 03:56:54 +02:00
// On saute a la ligne tous les 7 jours
2011-05-15 05:56:11 +02:00
if (($i%7) == 0 && $i != 0) {
2011-05-15 03:56:54 +02:00
echo '</tr><tr>'."\n";
}
// On affiche les jours precedants en gris et incliquables
2011-05-15 05:56:11 +02:00
if ($i < $premierjourmois) {
2011-05-15 03:56:54 +02:00
echo '<td class=avant></td>'."\n";
} else {
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
for ($j = 0; $j < count($_SESSION["totalchoixjour"]); $j++) {
//affichage des boutons ROUGES
if (date("j", $_SESSION["totalchoixjour"][$j]) == $numerojour && date("n", $_SESSION["totalchoixjour"][$j]) == $_SESSION["mois"] && date("Y", $_SESSION["totalchoixjour"][$j]) == $_SESSION["annee"]) {
echo '<td align=center class=choisi><input type=submit class="bouton OFF" name="choixjourretrait[]" value="'.$numerojour.'"></td>'."\n";
$dejafait = $numerojour;
}
2011-05-15 03:56:54 +02:00
}
}
//Si pas de bouton ROUGE alors on affiche un bouton VERT ou GRIS avec le numéro du jour dessus
2011-05-15 05:56:11 +02:00
if (isset($dejafait) === false || $dejafait != $numerojour){
2011-05-15 03:56:54 +02:00
//bouton vert
2011-05-15 05:56:11 +02:00
if (($numerojour >= $jourAJ && $_SESSION["mois"] == $moisAJ && $_SESSION["annee"] == $anneeAJ) || ($_SESSION["mois"] > $moisAJ && $_SESSION["annee"] == $anneeAJ) || $_SESSION["annee"] > $anneeAJ) {
2011-05-15 03:56:54 +02:00
echo '<td align=center class=libre><input type=submit class="bouton ON" name="choixjourajout[]" value="'.$numerojour.'"></td>'."\n";
} else { //bouton gris
echo '<td class=avant>'.$numerojour.'</td>'."\n";
}
}
}
}
//fin du tableau
echo '</tr>'."\n";
echo '</table>'."\n";
echo '</div>'."\n";
//traitement de l'entrée des heures dans les cases texte
$errheure = $erreur = false;
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('choixheures') || issetAndNoEmpty('choixheures_x')) {
2011-05-15 03:56:54 +02:00
//On sauvegarde les heures deja entrées
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('nbrecaseshoraires', $_SESSION) === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
//affichage des 5 cases horaires
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
}
2011-05-15 03:56:54 +02:00
}
}
//affichage des horaires
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('nbrecaseshoraires', $_SESSION) === true) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
//affichage des 5 cases horaires
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
$case = $j + 1;
2011-05-15 03:56:54 +02:00
2011-05-15 05:56:11 +02:00
if (isset($_POST['horaires'.$i]) === false || isset($_POST['horaires'.$i][$j]) === false) {
2011-05-15 03:56:54 +02:00
$errheure[$i][$j]=true;
$erreur=true;
2011-05-15 05:56:11 +02:00
$_SESSION["horaires$i"][$j]=$_POST["horaires$i"][$j];
continue;
2011-05-15 03:56:54 +02:00
}
2011-05-15 05:56:11 +02:00
//si c'est un creneau type 8:00-11:00
if (preg_match("/(\d{1,2}:\d{2})-(\d{1,2}:\d{2})/", $_POST["horaires$i"][$j], $creneaux)) {
//on recupere les deux parties du preg_match qu'on redécoupe autour des ":"
$debutcreneau=explode(":", $creneaux[1]);
$fincreneau=explode(":", $creneaux[2]);
//comparaison des heures de fin et de debut
//si correctes, on entre les données dans la variables de session
if ($debutcreneau[0] < 24 && $fincreneau[0] < 24 && $debutcreneau[1] < 60 && $fincreneau[1] < 60 && ($debutcreneau[0] < $fincreneau[0] || ($debutcreneau[0] == $fincreneau[0] && $debutcreneau[1] < $fincreneau[1]))) {
$_SESSION["horaires$i"][$j] = $creneaux[1].'-'.$creneaux[2];
} else { //sinon message d'erreur et nettoyage de la case
$errheure[$i][$j]=true;
$erreur=true;
}
} elseif (preg_match(";^(\d{1,2}h\d{0,2})-(\d{1,2}h\d{0,2})$;i", $_POST["horaires$i"][$j], $creneaux)) { //si c'est un creneau type 8h00-11h00
//on recupere les deux parties du preg_match qu'on redécoupe autour des "H"
$debutcreneau=preg_split("/h/i", $creneaux[1]);
$fincreneau=preg_split("/h/i", $creneaux[2]);
//comparaison des heures de fin et de debut
//si correctes, on entre les données dans la variables de session
if ($debutcreneau[0] < 24 && $fincreneau[0] < 24 && $debutcreneau[1] < 60 && $fincreneau[1] < 60 && ($debutcreneau[0] < $fincreneau[0] || ($debutcreneau[0] == $fincreneau[0] && $debutcreneau[1] < $fincreneau[1]))) {
$_SESSION["horaires$i"][$j] = $creneaux[1].'-'.$creneaux[2];
} else { //sinon message d'erreur et nettoyage de la case
$errheure[$i][$j]=true;
$erreur=true;
}
} elseif (preg_match(";^(\d{1,2}):(\d{2})$;", $_POST["horaires$i"][$j], $heures)) { //si c'est une heure simple type 8:00
//si valeures correctes, on entre les données dans la variables de session
if ($heures[1] < 24 && $heures[2] < 60) {
$_SESSION["horaires$i"][$j] = $heures[0];
} else { //sinon message d'erreur et nettoyage de la case
$errheure[$i][$j]=true;
$erreur=true;
}
} elseif (preg_match(";^(\d{1,2})h(\d{0,2})$;i", $_POST["horaires$i"][$j], $heures)) { //si c'est une heure encore plus simple type 8h
//si valeures correctes, on entre les données dans la variables de session
if ($heures[1] < 24 && $heures[2] < 60) {
$_SESSION["horaires$i"][$j] = $heures[0];
} else { //sinon message d'erreur et nettoyage de la case
$errheure[$i][$j]=true;
$erreur=true;
}
} elseif (preg_match(";^(\d{1,2})-(\d{1,2})$;", $_POST["horaires$i"][$j], $heures)) { //si c'est un creneau simple type 8-11
//si valeures correctes, on entre les données dans la variables de session
if ($heures[1] < $heures[2] && $heures[1] < 24 && $heures[2] < 24) {
$_SESSION["horaires$i"][$j] = $heures[0];
} else { //sinon message d'erreur et nettoyage de la case
$errheure[$i][$j]=true;
$erreur=true;
}
} elseif (preg_match(";^(\d{1,2})h-(\d{1,2})h$;", $_POST["horaires$i"][$j], $heures)) { //si c'est un creneau H type 8h-11h
//si valeures correctes, on entre les données dans la variables de session
if ($heures[1] < $heures[2] && $heures[1] < 24 && $heures[2] < 24) {
$_SESSION["horaires$i"][$j] = $heures[0];
} else { //sinon message d'erreur et nettoyage de la case
$errheure[$i][$j]=true;
$erreur=true;
}
} elseif ($_POST["horaires$i"][$j]=="") { //Si la case est vide
unset($_SESSION["horaires$i"][$j]);
} else { //pour tout autre format, message d'erreur
2011-05-29 03:39:36 +02:00
//$errheure[$i][$j]=true;
//$erreur=true;
2011-05-15 05:56:11 +02:00
$_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
2011-05-15 03:56:54 +02:00
}
}
}
}
}
echo '<div class=bodydate>'."\n";
//affichage de tous les jours choisis
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('totalchoixjour', $_SESSION) && (!issetAndNoEmpty('choixheures_x') || $erreur)) {
2011-05-15 03:56:54 +02:00
//affichage des jours
echo '<br>'."\n";
echo '<H2>'. _("Selected days") .' :</H2>'."\n";
//affichage de l'aide pour les jours
echo _("For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- \"8h\", \"8H\" or \"8:00\" to give a meeting's start hour,<br>- \"8-11\", \"8h-11h\", \"8H-11H\" ou \"8:00-11:00\" to give a meeting's start and end hour,<br>- \"8h15-11h15\", \"8H15-11H15\" ou \"8:15-11:15\" for the same thing but with minutes.") .'<br><br>'."\n";
echo '<table>'."\n";
echo '<tr>'."\n";
echo '<td></td>'."\n";
2011-05-15 05:56:11 +02:00
for ($i = 0; $i < $_SESSION["nbrecaseshoraires"]; $i++) {
$j = $i+1;
2011-05-15 03:56:54 +02:00
echo '<td classe=somme>'. _("Time") .' '.$j.'</center></td>'."\n";
}
2011-05-15 05:56:11 +02:00
if ($_SESSION["nbrecaseshoraires"] < 10) {
2011-05-15 03:56:54 +02:00
echo '<td classe=somme><input type="image" name="ajoutcases" src="images/add-16.png"></td>'."\n";
}
echo '</tr>'."\n";
//affichage de la liste des jours choisis
for ($i=0;$i<count($_SESSION["totalchoixjour"]);$i++) {
echo '<tr>'."\n";
if ($_SESSION["langue"]=="EN") {
2011-05-15 05:56:11 +02:00
echo '<td>'.date("l, F jS Y", $_SESSION["totalchoixjour"][$i]).' : </td>'."\n";
2011-05-15 03:56:54 +02:00
} else {
2011-05-15 05:56:11 +02:00
echo '<td>'.strftime(_("%A, den %e. %B %Y"), $_SESSION["totalchoixjour"][$i]).' : </td>'."\n";
2011-05-15 03:56:54 +02:00
}
$affichageerreurfindeligne=false;
//affichage des cases d'horaires
for ($j=0;$j<$_SESSION["nbrecaseshoraires"];$j++) {
//si on voit une erreur, le fond de la case est rouge
2011-05-15 05:56:11 +02:00
if (isset($errheure[$i][$j]) && $errheure[$i][$j]) {
2011-05-15 03:56:54 +02:00
echo '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'" style="background-color:#FF6666;"></td>'."\n";
$affichageerreurfindeligne=true;
} else { //sinon la case est vide normalement
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('horaires'.$i, $_SESSION) === false || issetAndNoEmpty($j, $_SESSION['horaires'.$i]) === false) {
if (issetAndNoEmpty('horaires'.$i, $_SESSION) === true) {
$_SESSION["horaires$i"][$j] = '';
} else {
$_SESSION["horaires$i"] = array();
$_SESSION["horaires$i"][$j] = '';
}
}
2011-05-15 03:56:54 +02:00
echo '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'"></td>'."\n";
}
}
if ($affichageerreurfindeligne) {
echo '<td><b><font color=#FF0000>'. _("Bad format!") .'</font></b></td>'."\n";
}
echo '</tr>'."\n";
}
echo '</table>'."\n";
//affichage des boutons de formulaire pour annuler, effacer les jours ou créer le sondage
echo '<table>'."\n";
echo '<tr>'."\n";
echo '<td><input type=submit name="reset" value="'. _("Remove all days") .'"></td><td><input type=submit name="reporterhoraires" value="'. _("Copy hours of the first day") .'"></td><td><input type=submit name="resethoraires" value="'. _("Remove all hours") .'"></td></tr>'."\n";
echo'<tr><td><br></td></tr>'."\n";
echo '<tr><td>'. _("Next") .'</td><td><input type=image name="choixheures" value="'. _("Next") .'" src="images/next-32.png"></td></tr>'."\n";
echo '</table>'."\n";
//si un seul jour et aucunes horaires choisies, : message d'erreur
2011-05-15 05:56:11 +02:00
if ((issetAndNoEmpty('choixheures') || issetAndNoEmpty('choixheures_x')) && (count($_SESSION["totalchoixjour"])=="1" && $_POST["horaires0"][0]=="" && $_POST["horaires0"][1]=="" && $_POST["horaires0"][2]=="" && $_POST["horaires0"][3]=="" && $_POST["horaires0"][4]=="")) {
2011-05-15 03:56:54 +02:00
echo '<table><tr><td colspan=3><font color=#FF0000>'. _("Enter more choices for the voters") .'</font><br></td></tr></table>'."\n";
$erreur=true;
}
2011-05-15 01:32:47 +02:00
}
2011-05-15 03:56:54 +02:00
//s'il n'y a pas d'erreur et que le bouton de creation est activé, on demande confirmation
2011-05-15 05:56:11 +02:00
if (!$erreur && (issetAndNoEmpty('choixheures') || issetAndNoEmpty('choixheures_x'))) {
2011-05-15 03:56:54 +02:00
$taille_tableau=sizeof($_SESSION["totalchoixjour"])-1;
2011-05-15 05:56:11 +02:00
$jour_arret = $_SESSION["totalchoixjour"][$taille_tableau]+200000;
2011-05-15 03:56:54 +02:00
if ($_SESSION["langue"]=="EN") {
2011-05-15 05:56:11 +02:00
$date_fin=date("l, F jS Y", $jour_arret);
2011-05-15 03:56:54 +02:00
} else {
2011-05-15 05:56:11 +02:00
$date_fin=strftime(_("%A, den %e. %B %Y"), $jour_arret);
2011-05-15 03:56:54 +02:00
}
echo '<br><div class="presentationdatefin">'. _("Your poll will expire automatically 2 days after the last date of your poll.") .'<br></td></tr><tr><td><br>'. _("Removal date") .' : <b> '.$date_fin.'</b><br><br>'."\n";
echo '</div>'."\n";
echo '<div class="presentationdatefin">'."\n";
echo '<font color="#FF0000">'. _("Once you have confirmed the creation of your poll, you will be automatically redirected on the page of your poll. <br><br>Then, you will receive quickly an email contening the link to your poll for sending it to the voters.") .'</font>'."\n";
echo'</div>'."\n";
// echo'<p class=affichageexport>'."\n";
// echo 'Pour finir la cr&eacute;ation du sondage, cliquez sur le bouton <img src="images/add-16.png" alt="ajout"> ci-dessous'."\n";
// echo '</p>'."\n";
echo '<table>'."\n";
echo '<tr><td>'. _("Back to hours") .'</td><td></td><td><input type="image" name="retourhoraires" src="images/back-32.png"></td></tr>'."\n";
echo'<tr><td>'. _("Create the poll") .'</td><td></td><td><input type="image" name="confirmation" value="Valider la cr&eacute;ation" src="images/add.png"></td></tr>'."\n";
echo '</table>'."\n";
}
echo '</tr>'."\n";
echo '</table>'."\n";
echo '<a name=bas></a>'."\n";
//fin du formulaire et bandeau de pied
echo '</form>'."\n";
//bandeau de pied
echo '<br><br><br><br>'."\n";
echo '</div>'."\n";
bandeau_pied_mobile();
echo '</body>'."\n";
echo '</html>'."\n";
//bouton de nettoyage de tous les jours choisis
2011-05-15 05:56:11 +02:00
if (issetAndNoEmpty('reset')) {
for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) {
for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
2011-05-15 03:56:54 +02:00
unset($_SESSION["horaires$i"][$j]);
}
}
unset($_SESSION["totalchoixjour"]);
unset($_SESSION["nbrecaseshoraires"]);
echo '<meta http-equiv="refresh" content="0">';
}
}