PHP: Check if there are at most MAX_SLOTS_PER_POLL dates before create a poll
This commit is contained in:
parent
51fbee139d
commit
96c28738c4
@ -74,6 +74,9 @@ const LOG_FILE = 'admin/stdout.log';
|
|||||||
// Days (after expiration date) before purge a poll
|
// Days (after expiration date) before purge a poll
|
||||||
const PURGE_DELAY = 60;
|
const PURGE_DELAY = 60;
|
||||||
|
|
||||||
|
// Max slots per poll
|
||||||
|
const MAX_SLOTS_PER_POLL = 366;
|
||||||
|
|
||||||
// Config
|
// Config
|
||||||
$config = [
|
$config = [
|
||||||
/* general config */
|
/* general config */
|
||||||
|
@ -124,6 +124,19 @@ if (!isset($_SESSION['form']->title) || !isset($_SESSION['form']->admin_name) ||
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (!empty($_POST['days'])) {
|
if (!empty($_POST['days'])) {
|
||||||
|
// Remove empty dates
|
||||||
|
$_POST['days'] = array_filter($_POST['days'], function($d) {return !empty($d);});
|
||||||
|
|
||||||
|
// Check if there are at most MAX_SLOTS_PER_POLL slots
|
||||||
|
if (count($_POST['days']) > MAX_SLOTS_PER_POLL) {
|
||||||
|
// Display step 2
|
||||||
|
$smarty->assign('title', __('Step 2 date', 'Poll dates (2 on 3)'));
|
||||||
|
$smarty->assign('choices', $_SESSION['form']->getChoices());
|
||||||
|
$smarty->assign('error', __f('Error', 'You can\'t select more than %d dates', MAX_SLOTS_PER_POLL));
|
||||||
|
|
||||||
|
$smarty->display('create_date_poll_step_2.tpl');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
// Clear previous choices
|
// Clear previous choices
|
||||||
$_SESSION['form']->clearChoices();
|
$_SESSION['form']->clearChoices();
|
||||||
@ -236,6 +249,7 @@ if (!isset($_SESSION['form']->title) || !isset($_SESSION['form']->admin_name) ||
|
|||||||
// Display step 2
|
// Display step 2
|
||||||
$smarty->assign('title', __('Step 2 date', 'Poll dates (2 on 3)'));
|
$smarty->assign('title', __('Step 2 date', 'Poll dates (2 on 3)'));
|
||||||
$smarty->assign('choices', $_SESSION['form']->getChoices());
|
$smarty->assign('choices', $_SESSION['form']->getChoices());
|
||||||
|
$smarty->assign('error', null);
|
||||||
|
|
||||||
$smarty->display('create_date_poll_step_2.tpl');
|
$smarty->display('create_date_poll_step_2.tpl');
|
||||||
|
|
||||||
|
@ -368,6 +368,7 @@
|
|||||||
"CANT_CONNECT_TO_DATABASE": "Kann nicht mit der Datenbank verbinden",
|
"CANT_CONNECT_TO_DATABASE": "Kann nicht mit der Datenbank verbinden",
|
||||||
"Password is empty": "DE_Le mot de passe est vide.",
|
"Password is empty": "DE_Le mot de passe est vide.",
|
||||||
"Passwords do not match": "DE_Les mot de passes ne correspondent pas.",
|
"Passwords do not match": "DE_Les mot de passes ne correspondent pas.",
|
||||||
"Poll id already used": "DE_L'identifiant est déjà utilisé"
|
"Poll id already used": "DE_L'identifiant est déjà utilisé",
|
||||||
|
"You can't select more than %d dates": "DE_Vous ne pouvez pas choisir plus de %d dates"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -368,6 +368,7 @@
|
|||||||
"CANT_CONNECT_TO_DATABASE": "Unable to connect to database",
|
"CANT_CONNECT_TO_DATABASE": "Unable to connect to database",
|
||||||
"Password is empty": "Password is empty.",
|
"Password is empty": "Password is empty.",
|
||||||
"Passwords do not match": "Passwords do not match.",
|
"Passwords do not match": "Passwords do not match.",
|
||||||
"Poll id already used": "Identifier is already used"
|
"Poll id already used": "Identifier is already used",
|
||||||
|
"You can't select more than %d dates": "You can't select more than %d dates"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -368,6 +368,7 @@
|
|||||||
"CANT_CONNECT_TO_DATABASE": "No se puede conectar a la base de datos",
|
"CANT_CONNECT_TO_DATABASE": "No se puede conectar a la base de datos",
|
||||||
"Password is empty": "ES_Le mot de passe est vide.",
|
"Password is empty": "ES_Le mot de passe est vide.",
|
||||||
"Passwords do not match": "ES_Les mot de passes ne correspondent pas.",
|
"Passwords do not match": "ES_Les mot de passes ne correspondent pas.",
|
||||||
"Poll id already used": "ES_L'identifiant est déjà utilisé"
|
"Poll id already used": "ES_L'identifiant est déjà utilisé",
|
||||||
|
"You can't select more than %d dates": "ES_Vous ne pouvez pas choisir plus de %d dates"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -382,6 +382,7 @@
|
|||||||
"CANT_CONNECT_TO_DATABASE": "Impossible de se connecter à la base de données",
|
"CANT_CONNECT_TO_DATABASE": "Impossible de se connecter à la base de données",
|
||||||
"Password is empty": "Le mot de passe est vide.",
|
"Password is empty": "Le mot de passe est vide.",
|
||||||
"Passwords do not match": "Les mots de passe ne correspondent pas.",
|
"Passwords do not match": "Les mots de passe ne correspondent pas.",
|
||||||
"Poll id already used": "L'identifiant est déjà utilisé"
|
"Poll id already used": "L'identifiant est déjà utilisé",
|
||||||
|
"You can't select more than %d dates": "Vous ne pouvez pas choisir plus de %d dates"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -366,6 +366,7 @@
|
|||||||
"The column already exists": "IT_La colonne existe déjà",
|
"The column already exists": "IT_La colonne existe déjà",
|
||||||
"MISSING_VALUES": "Valori mancanti",
|
"MISSING_VALUES": "Valori mancanti",
|
||||||
"CANT_CONNECT_TO_DATABASE": "Impossibile connettersi al database",
|
"CANT_CONNECT_TO_DATABASE": "Impossibile connettersi al database",
|
||||||
"Poll id already used": "IT_L'identifiant est déjà utilisé"
|
"Poll id already used": "IT_L'identifiant est déjà utilisé",
|
||||||
|
"You can't select more than %d dates": "IT_Vous ne pouvez pas choisir plus de %d dates"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -364,6 +364,7 @@
|
|||||||
"Failed to delete column": "Fracàs de la supression de colomna",
|
"Failed to delete column": "Fracàs de la supression de colomna",
|
||||||
"The column already exists": "La colomna existís ja",
|
"The column already exists": "La colomna existís ja",
|
||||||
"MISSING_VALUES": "Mancan de valors",
|
"MISSING_VALUES": "Mancan de valors",
|
||||||
"CANT_CONNECT_TO_DATABASE": "Impossible de se connectar a la banca de donadas"
|
"CANT_CONNECT_TO_DATABASE": "Impossible de se connectar a la banca de donadas",
|
||||||
|
"You can't select more than %d dates": "OC_Vous ne pouvez pas choisir plus de %d dates"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -17,6 +17,12 @@
|
|||||||
<div class="col-md-10 col-md-offset-1">
|
<div class="col-md-10 col-md-offset-1">
|
||||||
<h3>{__('Step 2 date', 'Choose the dates of your poll')}</h3>
|
<h3>{__('Step 2 date', 'Choose the dates of your poll')}</h3>
|
||||||
|
|
||||||
|
{if $error != null}
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
<p>{$error}</p>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
<p>{__('Step 2 date', 'To schedule an event you need to propose at least two choices (two hours for one day or two days).')}</p>
|
<p>{__('Step 2 date', 'To schedule an event you need to propose at least two choices (two hours for one day or two days).')}</p>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user