maj fonction creation d'un slug

This commit is contained in:
Christophe 2021-04-26 10:56:42 +02:00
parent bc4922f87d
commit 2e60b096f6

View file

@ -11,38 +11,44 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
* @licence GNU/GPL * @licence GNU/GPL
* *
**/ **/
function action_creer_slug_dist($slug = null, $opt = [], $ecraser = false){
include_spip('inc/editer');
include_spip('action/editer_objet');
include_spip('inc/autoriser');
function action_creer_slug_dist($slug = null, $opt = []){
include_spip('inc/autoriser'); include_spip('inc/autoriser');
if (!autoriser('creer','gamumail')) { if (!autoriser('creer','gamumail')) {
return false; 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)) { // Arrive d'une action SPIP
$set = ['slug' => 'slug_'.$id_slug]; 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 ( if (
$slug !== null intval($id_slug)
and !sql_countsel('slug', 'spip_gamumails', 'slug='.sql_quote($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'; // creation d'un nouveau slug
$set = array_merge($set, $opt); if (!intval($id_slug)) {
sql_insertq('spip_gamumails', $opt);
} }
sql_updateq('spip_gamumails', $set, 'id_gamumail = '.$id_slug);
} }
// Cache // Cache