$traitement){ $configurer_traitements[] = array( 'saisie' => 'checkbox', 'options' => array( 'nom' => 'traitements_choisis', 'label' => $traitement['titre'], 'datas' => array( $type_traitement => $traitement['description'] ) ) ); $configurer_traitements[] = array( 'saisie' => 'fieldset', 'options' => array( 'nom' => 'options', 'label' => $traitement['titre'], 'li_class' => "$type_traitement options_traiter" ), 'saisies' => saisies_transformer_noms($traitement['options'], '/^.*$/', "traitements[$type_traitement][\\0]") ); } $contexte['_configurer_traitements'] = $configurer_traitements; // Si on demande un avertissement et qu'il y a déjà des traitements de configurés if (_request('avertissement') == 'oui') $contexte['message_ok'] = $traitements ? _T('formidable:traitements_avertissement_modification') : _T('formidable:traitements_avertissement_creation'); } else{ $contexte['editable'] = false; } // On enlève l'éventuel avertissement pour le prochain envoi $contexte['action'] = parametre_url(self(), 'avertissement', ''); return $contexte; } function formulaires_editer_formulaire_traitements_verifier($id_formulaire){ include_spip('inc/saisies'); $erreurs = array(); $traitements_disponibles = traitements_lister_disponibles(); // On regarde quels traitements sont demandés $traitements_choisis = _request('traitements_choisis'); if (is_array($traitements_choisis)) foreach ($traitements_choisis as $type_traitement){ $erreurs = array_merge($erreurs, saisies_verifier(saisies_transformer_noms($traitements_disponibles[$type_traitement]['options'], '/^.*$/', "traitements[$type_traitement][\\0]"))); } return $erreurs; } function formulaires_editer_formulaire_traitements_traiter($id_formulaire){ $retours = array(); $id_formulaire = intval($id_formulaire); // On récupère tout le tableau des traitements $traitements = _request('traitements'); // On ne garde que les morceaux qui correspondent aux traitements choisis $traitements_choisis = _request('traitements_choisis'); if (!$traitements_choisis) $traitements_choisis = array(); $traitements_choisis = array_flip($traitements_choisis); $traitements = array_intersect_key($traitements, $traitements_choisis); // Et on l'enregistre tel quel $ok = sql_updateq( 'spip_formulaires', array( 'traitements' => serialize($traitements) ), 'id_formulaire = '.$id_formulaire ); // On va sur la page de visualisation quand c'est fini if ($ok){ $retours['redirect'] = parametre_url(generer_url_ecrire('formulaire'), 'id_formulaire', $id_formulaire); } else{ $retours['editable'] = true; $retours['message_erreur'] = _T('formidable:erreur_base'); } return $retours; } ?>