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) { ...@@ -59,18 +59,20 @@ function formulaires_editer_formulaire_traitements_charger($id_formulaire) {
foreach ($traitements_disponibles as $type_traitement => $traitement) { foreach ($traitements_disponibles as $type_traitement => $traitement) {
$saisie_traitements_choisis['options']['data'][$type_traitement] = $traitement['description']; $saisie_traitements_choisis['options']['data'][$type_traitement] = $traitement['description'];
$saisie_options_traitements['saisies'][] = [ if (isset($traitement['options'])) {
'saisie' => 'fieldset', $saisie_options_traitements['saisies'][] = [
'options' => [ 'saisie' => 'fieldset',
'nom' => "options_$type_traitement", 'options' => [
'label' => $traitement['titre'], 'nom' => "options_$type_traitement",
'class' => "$type_traitement options_traiter", 'label' => $traitement['titre'],
'afficher_si' => "@traitements_choisis@ IN '$type_traitement'", 'class' => "$type_traitement options_traiter",
'onglet' => 'on', 'afficher_si' => "@traitements_choisis@ IN '$type_traitement'",
'onglet_vertical' => 'on', 'onglet' => 'on',
], 'onglet_vertical' => 'on',
'saisies' => saisies_transformer_noms($traitement['options'], '/^.*$/', "traitements[$type_traitement][\\0]") ],
]; 'saisies' => saisies_transformer_noms($traitement['options'], '/^.*$/', "traitements[$type_traitement][\\0]")
];
}
} }
$configurer_traitements = saisies_transformer_option($configurer_traitements, 'conteneur_class', '#(.*)#', '\1 pleine_largeur'); $configurer_traitements = saisies_transformer_option($configurer_traitements, 'conteneur_class', '#(.*)#', '\1 pleine_largeur');
...@@ -99,6 +101,9 @@ function formulaires_editer_formulaire_traitements_verifier($id_formulaire) { ...@@ -99,6 +101,9 @@ function formulaires_editer_formulaire_traitements_verifier($id_formulaire) {
if (is_array($traitements_choisis)) { if (is_array($traitements_choisis)) {
foreach ($traitements_choisis as $type_traitement) { foreach ($traitements_choisis as $type_traitement) {
if (!isset($traitements_disponibles[$type_traitement]['options'])) {
continue;
}
$erreurs_traitement_brut = saisies_verifier( $erreurs_traitement_brut = saisies_verifier(
saisies_transformer_noms( saisies_transformer_noms(
$traitements_disponibles[$type_traitement]['options'], $traitements_disponibles[$type_traitement]['options'],
...@@ -126,18 +131,23 @@ function formulaires_editer_formulaire_traitements_traiter($id_formulaire) { ...@@ -126,18 +131,23 @@ function formulaires_editer_formulaire_traitements_traiter($id_formulaire) {
$id_formulaire = intval($id_formulaire); $id_formulaire = intval($id_formulaire);
include_spip('inc/formidable'); 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'); $traitements = _request('traitements');
// On ne garde que les morceaux qui correspondent aux traitements choisis // Et tout les traitemenrs choisis
$traitements_choisis = _request('traitements_choisis'); $traitements_choisis = _request('traitements_choisis');
if (!$traitements_choisis) { if (!$traitements_choisis) {
$traitements_choisis = array(); $traitements_choisis = array();
} }
$traitements_choisis = array_flip($traitements_choisis); $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); $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 // Si besoin, on crée un dossier pour stocker les fichiers
$erreur_creation_dossier = formidable_creer_dossier_formulaire($id_formulaire); $erreur_creation_dossier = formidable_creer_dossier_formulaire($id_formulaire);
if ($erreur_creation_dossier) { if ($erreur_creation_dossier) {
$retours['message_erreur'] = $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