- Voir aussi #URL_ACTION_AUTEUR
- Documentation : http://www.spip.net/fr_article4583.html
- Codage d’une action, authentification et passage de paramètre à une action : https://programmer.spip.net/-Action-, https://programmer.spip.net/Les-act..., https://programmer.spip.net/Fonctio...
Cette page porte sur les actions et l’usage des balises #BOUTON_ACTION et URL_ACTION_AUTEUR
Rappel de syntaxe
#BOUTON_ACTION { libellé, url, class ,message de confirmation,title,callback }
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 à appeler après confirmation éventuelle (si $confirm est non vide) et avant exécution de l’action. Si la callback renvoie false, elle annule le déclenchement de l’action |
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;})()'})]
Supprimer un article
Cf http://forum.spip.net/fr_231977.html#forum231978 :
#URL_ACTION_AUTEUR{instituer_article,[(#ENV{id_article})]/poubelle,#URL_AUTEUR{#SESSION{id_auteur}}}
Supprimer un document
Cf http://forum.spip.net/fr_231679.html#forum231692
Dans une boucle documents de l’espace public :
[(#BOUTON_ACTION{<:tonplugin:supprimer:>,
#URL_ACTION_AUTEUR{documenter,
-#ID_ARTICLE/article/#ID_DOCUMENT,
#SELF|parametre_url{var_mode,calcul}
}
})]
Utiliser le résultat d’un calcul fait dans une action
Cf https://discuter.spip.net/t//174414
Comment afficher quelque chose calculé par une action activée par un #BOUTON_ACTION ? Ci après 2 solutions : 1) en utilisant un lien plutôt qu’un bouton 2) en modifiant le redirect dans l’action
1) Utiliser un lien js avec ajax plutôt qu’un bouton
<script type="text/javascript">
// solution 1
let url = window.location.protocol + '//' + window.location.hostname + '/spip.php?action=mon_fichier';
// solution 2
let url = "[(#VAL{mon_}|generer_url_action{"", 1})]";
$.ajax({
url: url,
}).done(function(mon_retour){
console.log('r : ', mon_retour);
});
</script>
2) Dans l’action, modifier le redirect et l’enrichir avec le résultat des calculs à afficher ensuite :
set_request(
'redirect',
parametre_url(_request('redirect'), 'untruqenplus', $letruqissudetonAPI));
Pour ne passer le détail de la valeur entière dans l’url, tu peux, dans l’action, la ranger dans une globale persistante, et aller l’y chercher ensuite dans le squelette de redirect.
Par exemple en utilisant un casier (ou un sous-casier) de config SPIP ce qui donnerait genre :
$cle = uniqid('moncalcul_', true);
ecrire_config($cle, $moncalculdetruqapi);
set_request( 'redirect', parametre_url(_request('redirect'), 'ma_cle', $cle) );
Et dans le squelette appelé tu accèdes la valeur avec #CONFIG{#MA_CLE}
puis tu vides ce casier devenu inutile.
Archives
Supprimé « Forcer le statut d’un article dès la saisie en ajoutant un hidden
dans le formulaire : http://forum.spip.net/fr_213485.html »