0) { $err = formulaire_modifier($id_formulaire); } if (_request('redirect')) { $redirect = parametre_url( urldecode(_request('redirect')), 'id_formulaire', $id_formulaire, '&' ) . $err; include_spip('inc/headers'); redirige_par_entete($redirect); } else { return array($id_formulaire,$err); } } /** * Crée un nouveau formulaire et retourne son ID * * @return int id_formulaire */ function formulaire_inserer() { $champs = array( 'statut' => 'prop', 'date_creation' => date('Y-m-d H:i:s'), ); // Envoyer aux plugins $champs = pipeline( 'pre_insertion', array( 'args' => array( 'table' => 'spip_formulaires', ), 'data' => $champs ) ); $id_formulaire = sql_insertq('spip_formulaires', $champs); pipeline( 'post_insertion', array( 'args' => array( 'table' => 'spip_formulaires', 'id_objet' => $id_formulaire ), 'data' => $champs ) ); return $id_formulaire; } /** * Appelle la fonction de modification d'un formulaire * * @param int $id_formulaire * @param array|null $set * @return string */ function formulaire_modifier($id_formulaire, $set = null) { include_spip('inc/modifier'); include_spip('inc/filtres'); $err = ''; $c = collecter_requests( // white list objet_info('formulaire', 'champs_editables'), // black list array('statut'), // donnees eventuellement fournies $set ); $invalideur = "id='id_formulaire/$id_formulaire'"; if ($err = objet_modifier_champs( 'formulaire', $id_formulaire, array( 'data' => $set, 'nonvide' => array('titre' => _T('info_sans_titre')), 'invalideur' => $invalideur, ), $c )) { return $err; } // Modification de statut, changement de rubrique ? $c = collecter_requests(array('statut'), array(), $set); include_spip('action/editer_objet'); $err = objet_instituer('formulaire', $id_formulaire, $c); return $err; } function revision_formulaire($id_formulaire, $c = false) { return formulaire_modifier($id_formulaire, $c); } function insert_formulaire() { return formulaire_inserer(); } function formulaire_set($id_formulaire, $set = null) { return formulaire_modifier($id_formulaire, $set); }