diff --git a/action/creer_slug.php b/action/creer_slug.php index b8a9475..06dd8b2 100644 --- a/action/creer_slug.php +++ b/action/creer_slug.php @@ -11,38 +11,44 @@ if (!defined('_ECRIRE_INC_VERSION')) return; * @licence GNU/GPL * **/ - -include_spip('inc/editer'); -include_spip('action/editer_objet'); -include_spip('inc/autoriser'); - -function action_creer_slug_dist($slug = null, $opt = []){ +function action_creer_slug_dist($slug = null, $opt = [], $ecraser = false){ include_spip('inc/autoriser'); if (!autoriser('creer','gamumail')) { return false; } - $set = [ - 'slug' => '', - 'titre' => 'Le titre du modèle', - 'sujet' => 'Le sujet du mail', - 'texte' => 'Le texte du mail', - 'statut' => 'publie', - 'editable' => '', - ]; - if ($id_slug = objet_inserer('gamumail', null, $set)) { - $set = ['slug' => 'slug_'.$id_slug]; + // Arrive d'une action SPIP + if ($slug === null) { + $set = [ + 'slug' => '', + 'titre' => 'Le titre du modèle', + 'sujet' => 'Le sujet du mail', + 'texte' => 'Le texte du mail', + 'statut' => 'publie', + 'editable' => '', + ]; + + if ($id_slug = objet_inserer('gamumail', null, $set)) { + $set = ['slug' => 'slug_'.$id_slug]; + sql_updateq('spip_gamumails', $set, 'id_gamumail = '.$id_slug); + } + } else { + // Appel de la fonction via charger_fonction("creer_slug", 'action'); + // Création d'un slug à l'installation d'un plugin + + // remplacement d'un slug, il faut l'option $ecraser=true + $id_slug = sql_getfetsel('id_gamumail', 'spip_gamumails', 'slug='.sql_quote($slug)); if ( - $slug !== null - and !sql_countsel('slug', 'spip_gamumails', 'slug='.sql_quote($slug)) + intval($id_slug) + and $ecraser ) { - $set['slug'] = $slug; + sql_updateq('spip_gamumails', $opt, 'id_gamumail='.intval($id_slug)); } - if (is_array($opt) and count($opt)) { - $set['editable'] = 'non'; - $set = array_merge($set, $opt); + + // creation d'un nouveau slug + if (!intval($id_slug)) { + sql_insertq('spip_gamumails', $opt); } - sql_updateq('spip_gamumails', $set, 'id_gamumail = '.$id_slug); } // Cache