Skip to content
Extraits de code Groupes Projets

issue150_traitement_sans_config

Fermé Maïeul requested to merge gh-fdf4c590/151/unknown/refs/pull/151/head into master
1 fichier
+ 19
0
Comparer les modifications
  • Côte à côte
  • En ligne
@@ -45,11 +45,30 @@ function formulaires_editer_formulaire_traitements_charger($id_formulaire) {
'data' => [],
]
];
// Calcul des traitements avec option pour le afficher_si du fieldset `options_des_traitements`
$traitements_disponibles_avec_options = array_keys(array_filter(
$traitements_disponibles,
function ($t) {
return isset($t['options']);
}
));
$afficher_si_fieldset_options = implode(
' || ',
array_map(
function ($t) {
return "@traitements_choisis@ IN '$t'";
},
$traitements_disponibles_avec_options
)
);
$saisie_options_traitements = [
'saisie' => 'fieldset',
'options' => [
'nom' => 'options_traitements',
'label' => '<:formidable:options_traitements:>',
'afficher_si' => $afficher_si_fieldset_options
],
'saisies' => [],
];
@@ -59,18 +78,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 +120,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 +150,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;
Chargement en cours