fix: on vérifie que le slug n'existe pas,
cela arrive si la creation du slug est déplacer dans un autre plugin comme gformation
This commit is contained in:
parent
e60bb95f70
commit
66ecc85ecb
1 changed files with 15 additions and 1 deletions
|
@ -32,7 +32,8 @@ function action_creer_slug_dist($slug = null, $opt = [], $ecraser = false){
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($id_slug = objet_inserer('gamumail', null, $set)) {
|
if ($id_slug = objet_inserer('gamumail', null, $set)) {
|
||||||
$set = ['slug' => _GAMUMAIL_PREFIX_SLUG .'_'.$id_slug];
|
$slug = getSlugGamumail($id_slug);
|
||||||
|
$set = ['slug' => $slug];
|
||||||
sql_updateq('spip_gamumails', $set, 'id_gamumail = '.$id_slug);
|
sql_updateq('spip_gamumails', $set, 'id_gamumail = '.$id_slug);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -59,3 +60,16 @@ function action_creer_slug_dist($slug = null, $opt = [], $ecraser = false){
|
||||||
include_spip('inc/invalideur');
|
include_spip('inc/invalideur');
|
||||||
suivre_invalideur("id='id_gamumail/1'");
|
suivre_invalideur("id='id_gamumail/1'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSlugGamumail(int $id_gamumail, int|null $suffix = 0):string {
|
||||||
|
$slug = _GAMUMAIL_PREFIX_SLUG .'_'.$id_gamumail;
|
||||||
|
if ($suffix) {
|
||||||
|
$slug .= '_'.$suffix;
|
||||||
|
}
|
||||||
|
if (sql_countsel('spip_gamumails', ['slug='.sql_quote($slug)])) {
|
||||||
|
$suffix++;
|
||||||
|
return getSlugGamumail($id_gamumail, $suffix);
|
||||||
|
}
|
||||||
|
return $slug;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue