'."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''._("Error!").' - '.NOMAPPLICATION.''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; framanav(); logo(); bandeau_tete(); bandeau_titre(_("Error!")); echo '
'."\n"; print "

" . _("You haven't filled the first section of the poll creation.") . " !

"."\n"; print _("Back to the homepage of ") . ' ' . '' . NOMAPPLICATION . '.' . "\n"; echo '
'."\n"; //bandeau de pied //sur_bandeau_pied(); bandeau_pied(); echo ''."\n"; echo ''."\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 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.="@"; // On remplace la virgule et l'arobase pour ne pas avoir de problème par la suite $choixdate .= str_replace(array(',', '@'), array(',', '@'), $_SESSION["horaires$i"][$j]); } } } } } $_SESSION["toutchoix"]=substr("$choixdate",1); ajouter_sondage(); } //nombre de cases par défaut if(!issetAndNoEmpty('nbrecaseshoraires', $_SESSION)) { $_SESSION["nbrecaseshoraires"]=5; } elseif ((issetAndNoEmpty('ajoutcases') || issetAndNoEmpty('ajoutcases_x')) && $_SESSION["nbrecaseshoraires"] == 5) { $_SESSION["nbrecaseshoraires"]=10; } //valeurs de la date du jour actuel $jourAJ=date("j"); $moisAJ=date("n"); $anneeAJ=date("Y"); // 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'); } //mise a jour des valeurs de session si bouton retour a aujourd'hui if ((!issetAndNoEmpty('anneeavant_x') && !issetAndNoEmpty('anneeapres_x') && !issetAndNoEmpty('moisavant_x') && !issetAndNoEmpty('moisapres_x') && !issetAndNoEmpty('choixjourajout')) && !issetAndNoEmpty('choixjourretrait') || (issetAndNoEmpty('retourmois') || issetAndNoEmpty('retourmois_x'))){ $_SESSION["jour"]=date("j"); $_SESSION["mois"]=date("n"); $_SESSION["annee"]=date("Y"); } //mise a jour des valeurs de session si mois avant if (issetAndNoEmpty('moisavant') || issetAndNoEmpty('moisavant_x')) { if ($_SESSION["mois"] == 1) { $_SESSION["mois"] = 12; $_SESSION["annee"] = $_SESSION["annee"]-1; } else { $_SESSION["mois"] -= 1; } //On sauvegarde les heures deja entrées 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]; } } } } //mise a jour des valeurs de session si mois apres if (issetAndNoEmpty('moisapres') || issetAndNoEmpty('moisapres_x')) { if ($_SESSION["mois"] == 12) { $_SESSION["mois"] = 1; $_SESSION["annee"] += 1; } else { $_SESSION["mois"] += 1; } //On sauvegarde les heures deja entrées 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]; } } } } //mise a jour des valeurs de session si annee avant if (issetAndNoEmpty('anneeavant') || issetAndNoEmpty('anneeavant_x')) { $_SESSION["annee"] -= 1; //On sauvegarde les heures deja entrées 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]; } } } } //mise a jour des valeurs de session si annee apres if (issetAndNoEmpty('anneeapres') || issetAndNoEmpty('anneeapres_x')) { $_SESSION["annee"] += 1; //On sauvegarde les heures deja entrées 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]; } } } } //valeurs du nombre de jour dans le mois et du premier jour du mois $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; //le format du sondage est DATE $_SESSION["formatsondage"] = "D".$_SESSION["studsplus"]; //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 ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''._("Poll dates (2 on 2)").' - '.NOMAPPLICATION.''."\n"; echo ''."\n"; echo ''; echo ''."\n"; echo ''."\n"; //Debut du formulaire et bandeaux de tete framanav(); logo(); bandeau_tete(); bandeau_titre(_("Poll dates (2 on 2)")); sous_bandeau_choix(); echo '
'."\n"; //ajout pyg pour la cohérence graphique echo '
'; //affichage de l'aide pour les jours echo '
'."\n"; echo '

'._("Select your dates amoung the free days (green). The selected days are in blue.").'
'. _("You can unselect a day previously selected by clicking again on it.") .'

'."\n"; echo '
'."\n"; //debut du tableau qui affiche le calendrier echo '
'."\n"; echo ''."\n"; echo ''."\n"; //affichage des jours de la semaine en haut du tableau for($i = 0; $i < 7; $i++) { echo ''; } echo ''."\n"; //ajout d'une entrée dans la variable de session qui contient toutes les dates if (issetAndNoEmpty('choixjourajout')) { if (!isset($_SESSION["totalchoixjour"])) { $_SESSION["totalchoixjour"]=array(); } // Test pour éviter les doublons dans la variable qui contient toutes les dates $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; } } } // Si le test est passé, alors on insere la valeur dans la variable de session qui contient les dates if ($journeuf && issetAndNoEmpty('choixjourajout') === true) { array_push ($_SESSION["totalchoixjour"],mktime (0,0,0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"])); sort ($_SESSION["totalchoixjour"]); $cle=array_search (mktime (0,0,0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"]), $_SESSION["totalchoixjour"]); //On sauvegarde les heures deja entrées 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]; } } } 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]; } } } unset($_SESSION["horaires$cle"]); } } //retrait d'une entrée dans la variable de session qui contient toutes les dates if (issetAndNoEmpty('choixjourretrait')) { //On sauvegarde les heures deja entrées 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]; } } 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"]; } array_splice($_SESSION["totalchoixjour"], $i,1); } } } //report des horaires dans toutes les cases if (issetAndNoEmpty('reporterhoraires')) { $_SESSION["horaires0"] = $_POST["horaires0"]; for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) { $j = $i+1; $_SESSION["horaires$j"] = $_SESSION["horaires$i"]; } } //report des horaires dans toutes les cases if (issetAndNoEmpty('resethoraires')) { for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) { unset ($_SESSION["horaires$i"]); } } // affichage du calendrier echo ''."\n"; for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) { $numerojour = $i-$premierjourmois+1; // On saute a la ligne tous les 7 jours if (($i%7) == 0 && $i != 0) { echo ''."\n"; } // On affiche les jours precedants en gris et incliquables if ($i < $premierjourmois) { echo ''."\n"; } else { 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 ''."\n"; $dejafait = $numerojour; } } } //Si pas de bouton ROUGE alors on affiche un bouton VERT ou GRIS avec le numéro du jour dessus if (isset($dejafait) === false || $dejafait != $numerojour){ //bouton vert if (($numerojour >= $jourAJ && $_SESSION["mois"] == $moisAJ && $_SESSION["annee"] == $anneeAJ) || ($_SESSION["mois"] > $moisAJ && $_SESSION["annee"] == $anneeAJ) || $_SESSION["annee"] > $anneeAJ) { echo ''."\n"; } else { //bouton gris echo ''."\n"; } } } } //fin du tableau echo ''."\n"; echo '
'; echo ''."\n"; echo ''."\n"; echo $motmois.' '.$_SESSION["annee"]."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; echo '
'. strftime('%A',mktime(0,0,0,0, $i,10)) .'
'.$numerojour.'
'."\n"; echo '
'."\n"; //traitement de l'entrée des heures dans les cases texte $errheure = $erreur = false; if (issetAndNoEmpty('choixheures') || issetAndNoEmpty('choixheures_x') ) { //On sauvegarde les heures deja entrées 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]; } } } //affichage des horaires 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; if (isset($_POST['horaires'.$i]) === false || isset($_POST['horaires'.$i][$j]) === false) { $errheure[$i][$j]=true; $erreur=true; $_SESSION["horaires$i"][$j]=$_POST["horaires$i"][$j]; continue; } //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 //$errheure[$i][$j]=true; //$erreur=true; $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j]; } } } } } echo '
'."\n"; //affichage de tous les jours choisis if (issetAndNoEmpty('totalchoixjour', $_SESSION) && (!issetAndNoEmpty('choixheures_x') || $erreur)) { //affichage des jours echo '
'."\n"; echo '

'. _("Selected days") .' :

'."\n"; //affichage de l'aide pour les jours echo '

'._("For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)") .'

'."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; for ($i = 0; $i < $_SESSION["nbrecaseshoraires"]; $i++) { $j = $i+1; echo ''."\n"; } if ($_SESSION["nbrecaseshoraires"] < 10) { echo ''."\n"; } echo ''."\n"; //affichage de la liste des jours choisis for ($i=0;$i'."\n"; if ($_SESSION["langue"]=="EN") { echo ''."\n"; } else { echo ''."\n"; } $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 if (isset($errheure[$i][$j]) && $errheure[$i][$j]) { echo ''."\n"; $affichageerreurfindeligne=true; } else { //sinon la case est vide normalement 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] = ''; } } echo ''."\n"; } } if ($affichageerreurfindeligne) { echo ''."\n"; } echo ''."\n"; } echo '
'. _("Time") .' '.$j.'
'.date("l, F jS Y", $_SESSION["totalchoixjour"][$i]).' : '.strftime(_("%A, den %e. %B %Y"), $_SESSION["totalchoixjour"][$i]).' :

'. _("Bad format!") .'

'."\n"; //affichage des boutons de formulaire pour annuler, effacer les jours ou créer le sondage echo ''."\n"; echo ''."\n"; echo ''."\n"; # echo''."\n"; # echo ''."\n"; echo '

'. _("Next") .'
'."\n"; //patch vraiment crado : on donne le nom "choixheures_x" au bouton pour éviter d'avoir à cleaner le code echo '
'; echo '
'; //si un seul jour et aucunes horaires choisies, : message d'erreur 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]=="")) { echo '

'. _("Enter more choices for the voters") .'

'."\n"; $erreur=true; } } //s'il n'y a pas d'erreur et que le bouton de creation est activé, on demande confirmation if (!$erreur && (issetAndNoEmpty('choixheures') || issetAndNoEmpty('choixheures_x'))) { $taille_tableau=sizeof($_SESSION["totalchoixjour"])-1; $jour_arret = $_SESSION["totalchoixjour"][$taille_tableau]+2592000; if ($_SESSION["langue"]=="EN") { $date_fin=date("l, F jS Y", $jour_arret); } else { $date_fin=strftime(_("%A, den %e. %B %Y"), $jour_arret); } echo '

'. _("Your poll will expire automatically 2 days after the last date of your poll.") .'

'. _("Removal date") .' : '.$date_fin.'

'."\n"; echo '
'."\n"; echo '
'."\n"; echo '

'. _("Once you have confirmed the creation of your poll, you will be automatically redirected on the page of your poll."). '

' . _("Then, you will receive quickly an email contening the link to your poll for sending it to the voters.") .'

'."\n"; echo'
'."\n"; // echo'

'."\n"; // echo 'Pour finir la création du sondage, cliquez sur le bouton ajout ci-dessous'."\n"; // echo '

'."\n"; //echo ''."\n"; //echo ''."\n"; //echo''."\n"; //echo '
'. _("Back to hours") .'
'. _("Create the poll") .'
'."\n"; echo '

'; // patch crado : on attribue les noms de boutons avec _x pour faire croire qu'on a cliqué sur une image echo ''; echo ''; echo '
'; } /* echo ''."\n"; echo ''."\n";*/ echo ''."\n"; //fin du formulaire et bandeau de pied echo ''."\n"; //bandeau de pied //echo '



'."\n"; echo '
'."\n"; echo '
'; // ajout pyg pour cohérence graphique bandeau_pied_mobile(); echo ''."\n"; echo ''."\n"; //bouton de nettoyage de tous les jours choisis if (issetAndNoEmpty('reset')) { for ($i = 0; $i < count($_SESSION["totalchoixjour"]); $i++) { for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { unset($_SESSION["horaires$i"][$j]); } } unset($_SESSION["totalchoixjour"]); unset($_SESSION["nbrecaseshoraires"]); echo ''; } }