Skip to content
Extraits de code Groupes Projets
Valider d898827a rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

feat(#150): possibilité de déclarer des traitements sans aucune option

fix #150
parent d2db1200
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!151issue150_traitement_sans_config
......@@ -59,18 +59,20 @@ function formulaires_editer_formulaire_traitements_charger($id_formulaire) {
foreach ($traitements_disponibles as $type_traitement => $traitement) {
$saisie_traitements_choisis['options']['data'][$type_traitement] = $traitement['description'];
$saisie_options_traitements['saisies'][] = [
'saisie' => 'fieldset',
'options' => [
'nom' => "options_$type_traitement",
'label' => $traitement['titre'],
'class' => "$type_traitement options_traiter",
'afficher_si' => "@traitements_choisis@ IN '$type_traitement'",
'onglet' => 'on',
'onglet_vertical' => 'on',
],
'saisies' => saisies_transformer_noms($traitement['options'], '/^.*$/', "traitements[$type_traitement][\\0]")
];
if (isset($traitement['options'])) {
$saisie_options_traitements['saisies'][] = [
'saisie' => 'fieldset',
'options' => [
'nom' => "options_$type_traitement",
'label' => $traitement['titre'],
'class' => "$type_traitement options_traiter",
'afficher_si' => "@traitements_choisis@ IN '$type_traitement'",
'onglet' => 'on',
'onglet_vertical' => 'on',
],
'saisies' => saisies_transformer_noms($traitement['options'], '/^.*$/', "traitements[$type_traitement][\\0]")
];
}
}
$configurer_traitements = saisies_transformer_option($configurer_traitements, 'conteneur_class', '#(.*)#', '\1 pleine_largeur');
......@@ -99,6 +101,9 @@ function formulaires_editer_formulaire_traitements_verifier($id_formulaire) {
if (is_array($traitements_choisis)) {
foreach ($traitements_choisis as $type_traitement) {
if (!isset($traitements_disponibles[$type_traitement]['options'])) {
continue;
}
$erreurs_traitement_brut = saisies_verifier(
saisies_transformer_noms(
$traitements_disponibles[$type_traitement]['options'],
......@@ -126,18 +131,23 @@ function formulaires_editer_formulaire_traitements_traiter($id_formulaire) {
$id_formulaire = intval($id_formulaire);
include_spip('inc/formidable');
// On récupère tout le tableau des traitements
// On récupère tout le tableau des options de traitement
$traitements = _request('traitements');
// On ne garde que les morceaux qui correspondent aux traitements choisis
// Et tout les traitemenrs choisis
$traitements_choisis = _request('traitements_choisis');
if (!$traitements_choisis) {
$traitements_choisis = array();
}
$traitements_choisis = array_flip($traitements_choisis);
// Parmis toutes les options passées, ne prendre que celle des traitements choisis
$traitements = array_intersect_key($traitements, $traitements_choisis);
// On gère le cas des traitements sans options
$traitements_sans_option = array_map(function($i) {return [];}, array_diff_key($traitements_choisis, $traitements));//Même si pas d'option, on fait un pseudo tableau d'option
$traitements = array_merge($traitements, $traitements_sans_option);
// Si besoin, on crée un dossier pour stocker les fichiers
$erreur_creation_dossier = formidable_creer_dossier_formulaire($id_formulaire);
if ($erreur_creation_dossier) {
$retours['message_erreur'] = $erreur_creation_dossier;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter