Fix : dans le mode logoon/logooff ne pas prendre en compte l'arg id_document pour ne pas faire planter la gestion du logo par SPIP qui supprime puis recrée un doc lorsqu'il faut chnger l'image d'un logo

This commit is contained in:
cy_altern 2024-09-05 20:03:21 +02:00
parent c14898d75c
commit 654bcb5b4a
3 changed files with 4 additions and 6 deletions

View file

@ -21,7 +21,7 @@
- `ajaxReload` le nom d'un bloc ajax à recharger via ajaxReload. dans ce cas, charger_js_titre = non
- `ajaxCallback` le nom d'une fonction JS qui sera appellée en callback de l'ajaxReload (/!\ le JS de cette fonction doit être dans le bloc rechargé)
- `boutonSubmit` non par défaut (= bouton masqué) => oui permet d'afficher le bouton submit du FORMULAIRE_BIGFORM
- `id_document` l'ID du document pour lequel le fichier chargé va remplacer le fichier existant
- `id_document` l'ID du document pour lequel le fichier chargé va remplacer le fichier existant (/!\ non pris en compte avec les modes `logoon | logooff` puisque dans ce cas le document est supprimé puis recréé)
Exemple pour revenir à la page principale "equipe" avec un bigform appelé dans une popin :

View file

@ -4,19 +4,16 @@
[(#ENV*{message_ok}|oui)
<script>
//ajaxReload("#ENV*{message_ok}");
var aa = '#ENV*{message_ok}';
if (aa) {
try {
aa = JSON.parse(aa);
} catch (e) {
// utiliser le catch pour la compat descendante = ENV{message_ok} est une simple string avec le nom du bloc à recharger
// utiliser le catch pour la compat descendante = lorsque ENV{message_ok} est une simple string avec le nom du bloc à recharger
ajaxReload(aa);
}
}
//console.log(aa);
if (aa.bloc_ajax !== undefined) {
let bb = '';
if (aa.callback_ajax !== undefined) {

View file

@ -59,7 +59,8 @@ function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mo
if (array_key_exists('obfusquer', $args)) {
$options['obfusquer'] = true;
}
if (array_key_exists('id_document', $args) && intval($args['id_document'])) {
// passer l'id_document à remplacer seulement si ce n'est pas un logo (en cas de logo SPIP supprime puis recrée le doc)
if (array_key_exists('id_document', $args) && intval($args['id_document']) && !in_array($mode, ['logoon', 'logooff'])) {
$options['id_document'] = intval($args['id_document']);
}