maj fonction creation d'un slug
This commit is contained in:
parent
bc4922f87d
commit
2e60b096f6
1 changed files with 29 additions and 23 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue