Carnet Wiki

Astuces Actions et Boutons

Version 7 — Mai 2018 Pierre KUHN

Pour gérer des actions dans des pages de l’espace public et/ou des formulaires, si l’utilisateur connecté dispose des autorisations adéquates -bien sûr- on utilise souvent :
-  des #URL_ACTION(?) ou mieux
-  des #BOUTON_ACTION

Brouillon en-cours de saisie

Rappel de syntaxe

d’après http://www.spip.net/fr_article4583.html

#BOUTON_ACTION{libellé, url, class ,message de confirmation,title,callback}

voir aussi : http://autodoc" class="spip_url spip_out auto" rel="nofollow external">http://files.spip.org/Balises-Bonuxhttp://autodoc . magraine.net/spip/balises.html

Sources :

Paramètre Description
$libelle texte du bouton
$url url d’action
$class class css a ajouter
$confirm message de confirmation oui/non avant l’action
$title info-bulle au survol
$callback callback js a appeler lors de l’evenement action (apres confirmation eventuelle si $confirm est non vide) et avant execution de l’action. Si la callback renvoie false, elle annule le declenchement de l’action

Quelques exemples

Utilisation du callback

[(#BOUTON_ACTION{Demande de publication,
          #URL_ACTION_AUTEUR{demande_publi,#ENV{id_professionnel}},
          ajax btn-demande_publi,'','','(function(){jQuery(".btn-demande_publi").hide("slow", function(){jQuery(".demande_publi_ok").show(500);});return true;})()'})]

souvent extraits de forum.spip.net

-  la gestion « forcée » du statut d’un article dès la saisie (passer un hidden dans le formulaire) [1]

-  voilà l’url à utiliser pour une suppression d’article [2] :

#URL_ACTION_AUTEUR{instituer_article,[(#ENV{id_article})]/poubelle,#URL_AUTEUR{#SESSION{id_auteur}}}

-  Pour supprimer un document depuis l’espace public [3]rajouter dans une boucle documents :

[(#BOUTON_ACTION{<:tonplugin:supprimer:>,
        #URL_ACTION_AUTEUR{documenter,
                -#ID_ARTICLE/article/#ID_DOCUMENT,
                #SELF|parametre_url{var_mode,calcul}
        }
})]

-  pour télécharger une image ou un document dans l’espace public [4] :
un plugin fait le boulot :
http://plugins.spip.net/formulaireupload.html

PS : une astuce hors-sujet, mais : Spip généralise un parametre FORM-ID dans le nom de formulaire, pour pouvoir appeler plusieurs fois le meme formulaire dans une meme page...