diff --git a/htdocs/opensurvey/fonctions.php b/htdocs/opensurvey/fonctions.php index 437f851d67b..b3aa1c15cfc 100644 --- a/htdocs/opensurvey/fonctions.php +++ b/htdocs/opensurvey/fonctions.php @@ -220,7 +220,7 @@ function dol_survey_random($car) * * @return void */ -function ajouter_sondage($origin) +function ajouter_sondage() { global $db; @@ -228,26 +228,6 @@ function ajouter_sondage($origin) $sondage=dol_survey_random(16); - if ($_SESSION["formatsondage"]=="A"||$_SESSION["formatsondage"]=="A+") { - //extraction de la date de fin choisie - if ($_SESSION["champdatefin"]) { - if ($_SESSION["champdatefin"]>time()+250000) { - $date_fin=$_SESSION["champdatefin"]; - } - } else { - $date_fin=time()+15552000; - } - } - - if ($_SESSION["formatsondage"]=="D"||$_SESSION["formatsondage"]=="D+") { - //Calcul de la date de fin du sondage - $taille_tableau=count($_SESSION["totalchoixjour"])-1; - $date_fin=$_SESSION["totalchoixjour"][$taille_tableau]+200000; - } - - if (is_numeric($date_fin) === false) { - $date_fin = time()+15552000; - } $allow_comments = empty($_SESSION['allow_comments']) ? 0 : 1; $allow_spy = empty($_SESSION['allow_spy']) ? 0 : 1; @@ -258,7 +238,7 @@ function ajouter_sondage($origin) $opensurveysondage->mail_admin = $_SESSION['adresse']; $opensurveysondage->nom_admin = $_SESSION['nom']; $opensurveysondage->titre = $_SESSION['titre']; - $opensurveysondage->date_fin = $date_fin; + $opensurveysondage->date_fin = $_SESSION['champdatefin']; $opensurveysondage->format = $_SESSION['formatsondage']; $opensurveysondage->mailsonde = $_SESSION['mailsonde']; $opensurveysondage->allow_comments = $allow_comments; diff --git a/htdocs/opensurvey/public/choix_autre.php b/htdocs/opensurvey/public/choix_autre.php index 5a49562989c..1037be6f714 100644 --- a/htdocs/opensurvey/public/choix_autre.php +++ b/htdocs/opensurvey/public/choix_autre.php @@ -27,11 +27,6 @@ require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php"); -$erreur = false; -$testdate = true; -$date_selected = ''; - - /* * Action */ @@ -71,36 +66,26 @@ if (isset($_POST["confirmecreation"]) || isset($_POST["confirmecreation_x"])) $toutchoix=substr("$toutchoix",1); $_SESSION["toutchoix"]=$toutchoix; - if (GETPOST('champdatefin')) + //test de remplissage des cases + $testremplissage = ''; + for ($i=0;$i<$_SESSION["nbrecases"];$i++) { - $registredate=explode("/",$_POST["champdatefin"]); - if (is_array($registredate) === false || count($registredate) !== 3) { - $testdate = false; - $date_selected = $_POST["champdatefin"]; - } else { - $time = mktime(0,0,0,$registredate[1],$registredate[0],$registredate[2]); - if ($time === false || date('d/m/Y', $time) !== $_POST["champdatefin"]) { - $testdate = false; - $date_selected = $_POST["champdatefin"]; - } else { - if (mktime(0,0,0,$registredate[1],$registredate[0],$registredate[2]) > time() + 250000) { - $_SESSION["champdatefin"]=mktime(0,0,0,$registredate[1],$registredate[0],$registredate[2]); - } - } + if (isset($_POST["choix"][$i])) + { + $testremplissage="ok"; } - } else { - $_SESSION["champdatefin"]=time()+15552000; } - if ($testdate === true) - { + //message d'erreur si aucun champ renseigné + if ($testremplissage != "ok") { + setEventMessage($langs->trans("ErrorOpenSurveyOneChoice"), 'errors'); + } else { + //format du sondage AUTRE $_SESSION["formatsondage"]="A"; // Add into database ajouter_sondage(); - } else { - $_POST["fin_sondage_autre"] = 'ok'; } } @@ -157,43 +142,9 @@ print ''."\n"; print'
'."\n"; print ''."\n"; -print ''."\n"; +print ''."\n"; print '
'."\n"; -//test de remplissage des cases -$testremplissage = ''; -for ($i=0;$i<$_SESSION["nbrecases"];$i++) -{ - if (isset($_POST["choix"][$i])) - { - $testremplissage="ok"; - } -} - -//message d'erreur si aucun champ renseigné -if ($testremplissage != "ok" && (isset($_POST["fin_sondage_autre"]) || isset($_POST["fin_sondage_autre_x"]))) { - print "
" . $langs->trans("ErrorOpenSurveyOneChoice") . "

"."\n"; - $erreur = true; -} - -//message d'erreur si mauvaise date -if ($testdate === false) { - print "
" . $langs->trans("ErrorOpenSurveyDateFormat") . "

"."\n"; -} - -if ((isset($_POST["fin_sondage_autre"]) || isset($_POST["fin_sondage_autre_x"])) && !$erreur) { - //demande de la date de fin du sondage - print '
'."\n"; - print '
'."\n"; - print '
'. $langs->trans("InfoExpiration") .'

'."\n"; - print $langs->trans("RemovalDate") .' : DD/MM/YYYY'; - print '
'."\n"; - print '
'."\n"; - print ''."\n"; - print ''."\n"; - print '
'. $langs->trans("CreatePoll") .'
'."\n"; -} - //fin du formulaire et bandeau de pied print ''."\n"; diff --git a/htdocs/opensurvey/public/choix_date.php b/htdocs/opensurvey/public/choix_date.php index 8afb1477303..b2c8f998351 100644 --- a/htdocs/opensurvey/public/choix_date.php +++ b/htdocs/opensurvey/public/choix_date.php @@ -27,19 +27,115 @@ require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php"); +//le format du sondage est DATE +$_SESSION["formatsondage"] = "D"; + +//traitement de l'entrée des heures dans les cases texte +$erreur = false; /* * Actions */ // Insert survey -if (GETPOST('confirmation') || GETPOST('confirmation_x')) +if (GETPOST('confirmation')) { - if (is_array($_SESSION['totalchoixjour'])) + + //On sauvegarde les heures deja entrées + if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('nbrecaseshoraires', $_SESSION) === true) { $nbofchoice=count($_SESSION["totalchoixjour"]); - for ($i = 0; $i < $nbofchoice; $i++) - { + + for ($i = 0; $i < $nbofchoice; $i++) { + //affichage des 5 cases horaires + for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) { + + $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j]; + + $case = $j + 1; + + if (isset($_POST['horaires'.$i]) === false || isset($_POST['horaires'.$i][$j]) === false) { + $errheure[$i][$j]=true; + $erreur=true; + 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; + } + + 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] = ''; + } + } + } + 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]; @@ -55,11 +151,22 @@ if (GETPOST('confirmation') || GETPOST('confirmation_x')) } } } + + if (isset($errheure)) { + setEventMessage($langs->trans("ErrorBadFormat"), 'errors'); + } } - else dol_print_error('','array not defined'); - $_SESSION["toutchoix"]=substr("$choixdate",1); - ajouter_sondage(); + //If just one day and no other time options, error message + if (count($_SESSION["totalchoixjour"])=="1" && $_POST["horaires0"][0]=="" && $_POST["horaires0"][1]=="" && $_POST["horaires0"][2]=="" && $_POST["horaires0"][3]=="" && $_POST["horaires0"][4]=="") { + setEventMessage($langs->trans("MoreChoices"), 'errors'); + $erreur=true; + } + + if (!$erreur) { + $_SESSION["toutchoix"]=substr("$choixdate",1); + ajouter_sondage(); + } } // Reset days @@ -96,7 +203,7 @@ if (! isset($_SESSION["nbrecaseshoraires"])) { $_SESSION["nbrecaseshoraires"]=5; } -elseif ((GETPOST('ajoutcases') || GETPOST('ajoutcases_x')) && $_SESSION["nbrecaseshoraires"] == 5) +elseif (GETPOST('ajoutcases') && $_SESSION["nbrecaseshoraires"] == 5) { $_SESSION["nbrecaseshoraires"]=10; } @@ -112,14 +219,14 @@ if (! isset($_SESSION['mois'])) $_SESSION['mois']= date('n'); if (! isset($_SESSION['annee'])) $_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'))){ +if ((!issetAndNoEmpty('choixjourajout')) && !issetAndNoEmpty('choixjourretrait') || issetAndNoEmpty('retourmois')){ $_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 (issetAndNoEmpty('moisavant')) { if ($_SESSION["mois"] == 1) { $_SESSION["mois"] = 12; $_SESSION["annee"] = $_SESSION["annee"]-1; @@ -141,7 +248,7 @@ if (issetAndNoEmpty('moisavant') || issetAndNoEmpty('moisavant_x')) { } //mise a jour des valeurs de session si mois apres -if (issetAndNoEmpty('moisapres') || issetAndNoEmpty('moisapres_x')) { +if (issetAndNoEmpty('moisapres')) { if ($_SESSION["mois"] == 12) { $_SESSION["mois"] = 1; $_SESSION["annee"] += 1; @@ -164,7 +271,7 @@ if (issetAndNoEmpty('moisapres') || issetAndNoEmpty('moisapres_x')) { } //mise a jour des valeurs de session si annee avant -if (issetAndNoEmpty('anneeavant') || issetAndNoEmpty('anneeavant_x')) { +if (issetAndNoEmpty('anneeavant')) { $_SESSION["annee"] -= 1; //On sauvegarde les heures deja entrées @@ -181,7 +288,7 @@ if (issetAndNoEmpty('anneeavant') || issetAndNoEmpty('anneeavant_x')) { } //mise a jour des valeurs de session si annee apres -if (issetAndNoEmpty('anneeapres') || issetAndNoEmpty('anneeapres_x')) { +if (issetAndNoEmpty('anneeapres')) { $_SESSION["annee"] += 1; //On sauvegarde les heures deja entrées @@ -201,9 +308,6 @@ if (issetAndNoEmpty('anneeapres') || issetAndNoEmpty('anneeapres_x')) { $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"; - //traduction de la valeur du mois if (is_integer($_SESSION["mois"]) && $_SESSION["mois"] > 0 && $_SESSION["mois"] < 13) { @@ -380,113 +484,10 @@ print ''."\n"; print ''."\n"; print ''."\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) - { - $nbofchoice=count($_SESSION["totalchoixjour"]); - for ($i = 0; $i < $nbofchoice; $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) - { - $nbofchoice=count($_SESSION["totalchoixjour"]); - for ($i = 0; $i < $nbofchoice; $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]; - } - } - } - } -} - print '
'."\n"; // affichage de tous les jours choisis -if (issetAndNoEmpty('totalchoixjour', $_SESSION) && (!issetAndNoEmpty('choixheures_x') || $erreur)) -//if (1==1 || GETPOST($_SESSION['totalchoixjour']) && (! GETPOST('choixheures_x') || $erreur)) +if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) { //affichage des jours print '
'."\n"; @@ -509,37 +510,22 @@ if (issetAndNoEmpty('totalchoixjour', $_SESSION) && (!issetAndNoEmpty('choixheur //affichage de la liste des jours choisis $nbofchoice=count($_SESSION["totalchoixjour"]); + for ($i=0; $i<$nbofchoice; $i++) { print ''."\n"; print ''.dol_print_date($_SESSION["totalchoixjour"][$i], 'daytext').' ('.dol_print_date($_SESSION["totalchoixjour"][$i], '%A').')'; - $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]) { print ''."\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] = ''; - } - } - + print ''."\n"; } } - - if ($affichageerreurfindeligne) { - print ''. $langs->trans("ErrorBadFormat") .''."\n"; - } - print ''."\n"; } @@ -550,27 +536,7 @@ if (issetAndNoEmpty('totalchoixjour', $_SESSION) && (!issetAndNoEmpty('choixheur print ''."\n"; print ''."\n"; print'

'."\n"; - print ''."\n"; - print ''."\n"; - - //si un seul jour et aucunes horaires choisies, : message d'erreur - if ((GETPOST('choixheures') || GETPOST('choixheures_x')) && (count($_SESSION["totalchoixjour"])=="1" && $_POST["horaires0"][0]=="" && $_POST["horaires0"][1]=="" && $_POST["horaires0"][2]=="" && $_POST["horaires0"][3]=="" && $_POST["horaires0"][4]=="")) { - print '
'. $langs->trans("MoreChoices") .'
'."\n"; - $erreur=true; - } -} - -//s'il n'y a pas d'erreur et que le bouton de creation est activé, on demande confirmation -if (!$erreur && (GETPOST('choixheures') || GETPOST('choixheures_x'))) { - $taille_tableau=count($_SESSION["totalchoixjour"])-1; - $jour_arret = $_SESSION["totalchoixjour"][$taille_tableau]+200000; - $date_fin=dol_print_date($jour_arret, 'dayhourtext'); - - print '
'. $langs->trans("PollWillExpire",2) .'
'. $langs->trans("RemovalDate") .' : '.$date_fin.'
'."\n"; - print '
'."\n"; - print ''."\n"; - print ''."\n"; - print''."\n"; + print ''."\n"; print '
'. $langs->trans("BackToHoursSetup") .'
'. $langs->trans("CreatePoll") .'
'."\n"; } diff --git a/htdocs/opensurvey/public/create_survey.php b/htdocs/opensurvey/public/create_survey.php index 850a87b9dbd..9a178b280ee 100644 --- a/htdocs/opensurvey/public/create_survey.php +++ b/htdocs/opensurvey/public/create_survey.php @@ -78,10 +78,32 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre") || GET } else { $_SESSION['allow_spy'] = false; } + + $testdate = false; + + if (GETPOST('champdatefin')) + { + $registredate=explode("/",$_POST["champdatefin"]); + if (is_array($registredate) && count($registredate) === 3) { + $time = mktime(0,0,0,$registredate[1],$registredate[0],$registredate[2]); + + if ($time !== false && date('d/m/Y', $time) === $_POST["champdatefin"]) { + //Expire date is not before today + if ($time - dol_now() > 0) { + $testdate = true; + $_SESSION['champdatefin'] = $time; + } + } + } + } + + if (!$testdate) { + setEventMessage($langs->trans('ErrorOpenSurveyDateFormat'), 'errors'); + } if (! isValidEmail($adresse)) $erreur_adresse = true; - if ($titre && $nom && $adresse && !$erreur_adresse) + if ($titre && $nom && $adresse && !$erreur_adresse && $testdate) { if (! empty($creation_sondage_date)) { @@ -104,6 +126,8 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre") || GET * View */ +$form = new Form($db); + $arrayofjs=array(); $arrayofcss=array('/opensurvey/css/style.css'); llxHeader('', $langs->trans("OpenSurvey"), "", 0, 0, $arrayofjs, $arrayofcss); @@ -122,7 +146,7 @@ print ''."\n"; print ''."\n"; if (! $_SESSION["titre"] && (GETPOST('creation_sondage_date') || GETPOST('creation_sondage_autre') || GETPOST('creation_sondage_date_x') || GETPOST('creation_sondage_autre_x'))) { - print ""."\n"; + setEventMessage($langs->trans("FieldMandatory"), 'errors'); } print ''."\n"; @@ -134,7 +158,7 @@ print '" . $langs->trans("FieldMandatory") . ""."\n"; + setEventMessage($langs->trans("FieldMandatory"), 'errors'); } print ''."\n"; @@ -144,13 +168,24 @@ print '" .$langs->trans("FieldMandatory") . " "."\n"; + setEventMessage($langs->trans("FieldMandatory"), 'errors'); } elseif ($erreur_adresse && (GETPOST('creation_sondage_date') || GETPOST('creation_sondage_autre') || GETPOST('creation_sondage_date_x') || GETPOST('creation_sondage_autre_x'))) { $langs->load('errors'); - print ""."\n"; + setEventMessage($langs->trans("ErrorBadEMail", $adresse), 'errors'); } +print ''."\n"; print '
'. $langs->trans("PollTitle") .'" . $langs->trans("FieldMandatory") . "
" . $langs->trans("ErrorBadEMail", $adresse) . "
'. $langs->trans("ExpireDate") .''; + +if (!GETPOST('champdatefin')) { + //172800 = 48 hours + $champdatefin = time() + 172800; +} else { + $champdatefin = -1; +} + +print $form->select_date($champdatefin,'champdatefin','','','',"add",1,1); + print '
'."\n";