Moved poll expiration date to first form and removed odd forms

This commit is contained in:
Marcos García de La Fuente 2014-01-05 18:40:53 +01:00
parent 4f57e82975
commit 97bd5df498
4 changed files with 178 additions and 246 deletions

View File

@ -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;

View File

@ -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 '</tr></table>'."\n";
print'<br>'."\n";
print '<table><tr>'."\n";
print '<td></td><td><input type="submit" class="button" name="fin_sondage_autre" value="'.dol_escape_htmltag($langs->trans("NextStep")).'" src="images/next-32.png"></td>'."\n";
print '<td></td><td><input type="submit" class="button" name="confirmecreation" value="'.dol_escape_htmltag($langs->trans("CreatePoll")).'" src="images/next-32.png"></td>'."\n";
print '</tr></table>'."\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 "<br><font color=\"#FF0000\">" . $langs->trans("ErrorOpenSurveyOneChoice") . "</font><br><br>"."\n";
$erreur = true;
}
//message d'erreur si mauvaise date
if ($testdate === false) {
print "<br><font color=\"#FF0000\">" . $langs->trans("ErrorOpenSurveyDateFormat") . "</font><br><br>"."\n";
}
if ((isset($_POST["fin_sondage_autre"]) || isset($_POST["fin_sondage_autre_x"])) && !$erreur) {
//demande de la date de fin du sondage
print '<br>'."\n";
print '<div class=presentationdatefin>'."\n";
print '<br>'. $langs->trans("InfoExpiration") .'<br><br>'."\n";
print $langs->trans("RemovalDate") .' : <input type="text" name="champdatefin" value="'.$date_selected.'" size="10" maxlength="10"> DD/MM/YYYY';
print '</div>'."\n";
print '<br>'."\n";
print '<table>'."\n";
print '<tr><td>'. $langs->trans("CreatePoll") .'</td><td><input type="image" name="confirmecreation" src="images/add.png"></td></tr>'."\n";
print '</table>'."\n";
}
//fin du formulaire et bandeau de pied
print '</form>'."\n";

View File

@ -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 '</tr>'."\n";
print '</table>'."\n";
print '</div></center>'."\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 '<div class="bodydate"><center>'."\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 '<br>'."\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 '<tr>'."\n";
print '<td>'.dol_print_date($_SESSION["totalchoixjour"][$i], 'daytext').' ('.dol_print_date($_SESSION["totalchoixjour"][$i], '%A').')</td>';
$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 '<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
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 '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'"></td>'."\n";
}
}
if ($affichageerreurfindeligne) {
print '<td><b><font color=#FF0000>'. $langs->trans("ErrorBadFormat") .'</font></b></td>'."\n";
}
print '</tr>'."\n";
}
@ -550,27 +536,7 @@ if (issetAndNoEmpty('totalchoixjour', $_SESSION) && (!issetAndNoEmpty('choixheur
print '<tr>'."\n";
print '<td><input type="submit" class="button" name="reset" value="'. dol_escape_htmltag($langs->trans("RemoveAllDays")) .'"></td><td><input type="submit" class="button" name="reporterhoraires" value="'. dol_escape_htmltag($langs->trans("CopyHoursOfFirstDay")) .'"></td><td><input type="submit" class="button" name="resethoraires" value="'. dol_escape_htmltag($langs->trans("RemoveAllHours")) .'"></td></tr>'."\n";
print'<tr><td colspan="3"><br><br></td></tr>'."\n";
print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="choixheures" value="'. $langs->trans("NextStep"). '"></td></tr>'."\n";
print '</table>'."\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 '<table><tr><td colspan=3><font color=#FF0000>'. $langs->trans("MoreChoices") .'</font><br></td></tr></table>'."\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 '<br><div class="presentationdatefin">'. $langs->trans("PollWillExpire",2) .'</td></tr><tr><td><br>'. $langs->trans("RemovalDate") .' : <b> '.$date_fin.'</b><br>'."\n";
print '</div>'."\n";
print '<table>'."\n";
print '<tr><td>'. $langs->trans("BackToHoursSetup") .'</td><td></td><td><input type="image" name="retourhoraires" src="images/back-32.png"></td></tr>'."\n";
print'<tr><td>'. $langs->trans("CreatePoll") .'</td><td></td><td><input type="image" name="confirmation" value="'.$langs->trans('CreatePoll').'" src="images/add.png"></td></tr>'."\n";
print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="confirmation" value="'. $langs->trans("NextStep"). '"></td></tr>'."\n";
print '</table>'."\n";
}

View File

@ -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 '<table class="border" width="100%">'."\n";
print '<tr><td class="fieldrequired">'. $langs->trans("PollTitle") .'</td><td><input type="text" name="titre" size="40" maxlength="80" value="'.$_SESSION["titre"].'"></td>'."\n";
if (! $_SESSION["titre"] && (GETPOST('creation_sondage_date') || GETPOST('creation_sondage_autre') || GETPOST('creation_sondage_date_x') || GETPOST('creation_sondage_autre_x')))
{
print "<td><font color=\"#FF0000\">" . $langs->trans("FieldMandatory") . "</font></td>"."\n";
setEventMessage($langs->trans("FieldMandatory"), 'errors');
}
print '</tr>'."\n";
@ -134,7 +158,7 @@ print '<input type="text" name="nom" size="40" maxlength="40" value="'.$_SESSION
if (! $_SESSION["nom"] && (GETPOST('creation_sondage_date') || GETPOST('creation_sondage_autre') || GETPOST('creation_sondage_date_x') || GETPOST('creation_sondage_autre_x')))
{
print "<td><font color=\"#FF0000\">" . $langs->trans("FieldMandatory") . "</font></td>"."\n";
setEventMessage($langs->trans("FieldMandatory"), 'errors');
}
print '</tr>'."\n";
@ -144,13 +168,24 @@ print '<input type="text" name="adresse" size="40" maxlength="64" value="'.$_SES
if (!$_SESSION["adresse"] && (GETPOST('creation_sondage_date') || GETPOST('creation_sondage_autre') || GETPOST('creation_sondage_date_x') || GETPOST('creation_sondage_autre_x')))
{
print "<td><font color=\"#FF0000\">" .$langs->trans("FieldMandatory") . " </font></td>"."\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 "<td><font color=\"#FF0000\">" . $langs->trans("ErrorBadEMail", $adresse) . "</font></td>"."\n";
setEventMessage($langs->trans("ErrorBadEMail", $adresse), 'errors');
}
print '<tr><td class="fieldrequired">'. $langs->trans("ExpireDate") .'</td><td>';
if (!GETPOST('champdatefin')) {
//172800 = 48 hours
$champdatefin = time() + 172800;
} else {
$champdatefin = -1;
}
print $form->select_date($champdatefin,'champdatefin','','','',"add",1,1);
print '</tr>'."\n";
print '</table>'."\n";