#BOUTON_ACTION

Bonjour à tous,

J’utilise #BOUTON_ACTION dans la boucle d’un objet pour supprimer une « simulation » comme ceci :
[(#BOUTON_ACTION{Supprimer cette simulation,#URL_ACTION_AUTEUR{supprimer_famille,#ID_FAMILLE-off,#SELF|ancre_url{famille#ID_FAMILLE}},‹ ajax supprimer ›})

et cela fonctionne parfaitement.

J’essaie donc d’utiliser cette même balise dans une boucle « document » pour supprimer le document téléchargé comme ceci :
[(#BOUTON_ACTION{Supprimer ce document,#URL_ACTION_AUTEUR{supprimer_document,#ID_DOCUMENT-off,#SELF|ancre_url{document#ID_DOCUMENT}},‹ ajax supprimer ›}) ]

et rien ne se passe.
Comment expliquer que l’action ne se fait pas ?
Y-a t-il un mode fonctionnement différent pour supprimer un document ?
Merci
JPD

Le 09/10/2018 à 07:53, Jean-Pierre Duflot a écrit :

J'essaie donc d'utiliser cette même balise dans une boucle "document" pour supprimer le document téléchargé comme ceci :
[(#BOUTON_ACTION{Supprimer ce document,#URL_ACTION_AUTEUR{supprimer_document,#ID_DOCUMENT-off,#SELF|ancre_url{document#ID_DOCUMENT}},'ajax supprimer'}) ]

L'action 'supprimer_famille' est une action créée par ton webmestre et qui gère les paramètres d'une manière non standard.

Le code exécuté par l'action supprimer_document
est dans le fichier action/supprimer_document du plugin-dist medias
et il n'y est aucunement fait gestion du '-off' :
l'id_document est pris tel quel.
Recommence donc sans -off

JL

Merci pour cette info rapide !
J’ai modifié comme indiqué, cela ne fonctionne toujours pas.
Pour mes bouton_action je m’étais inspiré de l’exemple : https://programmer.spip.net/URL-d-action-en-squelette
concernant la suppression de commentaires.
En regardant instituer_forum.php je n’ai pas l’explication de ce « -off » .
JPD

Le 09/10/2018 à 09:30, Jean-Pierre Duflot a écrit :

Merci pour cette info rapide !
J'ai modifié comme indiqué, cela ne fonctionne toujours pas.
Pour mes bouton_action je m'étais inspiré de l'exemple : URL d'action en squelette - Programmer avec SPIP 4
concernant la suppression de commentaires.
En regardant instituer_forum.php je n'ai pas l'explication de ce "-off" .

Regarde de nouveau :
list($id_forum, $statut) = preg_split('/\W/', $arg);
sépare l'id_forum xxx du statut ('off' dans l'exemple)

mais ya pas ça dans supprimer_document.
JL

JPD

Le mar. 9 oct. 2018 à 10:53, JLuc <jluc@no-log.org <mailto:jluc@no-log.org>> a écrit :

    Le 09/10/2018 à 07:53, Jean-Pierre Duflot a écrit :
     > J'essaie donc d'utiliser cette même balise dans une boucle "document" pour supprimer le document téléchargé comme
    ceci :
     > [(#BOUTON_ACTION{Supprimer ce
     > document,#URL_ACTION_AUTEUR{supprimer_document,#ID_DOCUMENT-off,#SELF|ancre_url{document#ID_DOCUMENT}},'ajax
    supprimer'}) ]

    L'action 'supprimer_famille' est une action créée par ton webmestre et qui gère les paramètres d'une manière non
    standard.

    Le code exécuté par l'action supprimer_document
    est dans le fichier action/supprimer_document du plugin-dist medias
    et il n'y est aucunement fait gestion du '-off' :
    l'id_document est pris tel quel.
    Recommence donc sans -off

    JL

    _______________________________________________
    liste spip
    spip@rezo.net <mailto:spip@rezo.net> - désabonnement : envoyer un mail à spip-off@rezo.net <mailto:spip-off@rezo.net>

    Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

    Infos : https://listes.rezo.net/mailman/listinfo/spip

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

--
22 chemin des Anémones
97480 Saint-Joseph

Le 09/10/2018 à 10:36, JLuc a écrit :

Le 09/10/2018 à 09:30, Jean-Pierre Duflot a écrit :

Merci pour cette info rapide !
J'ai modifié comme indiqué, cela ne fonctionne toujours pas.

Ça peut être parce que l'auteur de cette action n'a pas les droits sur le document.

JL

Pour mes bouton_action je m'étais inspiré de l'exemple : URL d'action en squelette - Programmer avec SPIP 4
concernant la suppression de commentaires.
En regardant instituer_forum.php je n'ai pas l'explication de ce "-off" .

Regarde de nouveau :
list($id_forum, $statut) = preg_split('/\W/', $arg);
sépare l'id_forum xxx du statut ('off' dans l'exemple)

mais ya pas ça dans supprimer_document.
JL

Merci pour l’intérêt que vous portez à mon problème
Oui effectivement je regardé à nouveau « instituer_forum.php »

Mais curieusement j’ai mis simplement dans les autorisations de mon objet « famille » :

function autoriser_famille_supprimer_dist($faire, $type, $id, $qui, $opt) {
return $qui[‹ statut ›] == ‹ 0minirezo › and !$qui[‹ restreint ›];
}

et mon bouton fonctionne avec son « -off ».
Je teste en tant que webmestre, donc avec tous les droits dont celui de supprimer des documents.
N’y a-t-il pas une étape intermédiaire avant la suppression définitive avec l’interface demandant :" Êtes-vous sûr de vouloir supprimer le document ?", comme c’est le cas dans l’interface privée?
Si oui, il manque donc un ou plusieurs arguments dans mon #BOUTON_ACTION ?
mais je ne vois pas lesquels. Est-ce documenté quelque part ?

Le 09/10/2018 à 11:49, Jean-Pierre Duflot a écrit :

Merci pour l'intérêt que vous portez à mon problème
Oui effectivement je regardé à nouveau "instituer_forum.php"

Mais curieusement j'ai mis simplement dans les autorisations de mon objet "famille" :
/function autoriser_famille_supprimer_dist($faire, $type, $id, $qui, $opt) {/
/return $qui['statut'] == '0minirezo' and !$qui['restreint'];/
/}/
et mon bouton fonctionne avec son "-off".

famille c'est pas document, et le problème c'est là où ça marche pas.

Je teste en tant que webmestre, donc avec tous les droits dont celui de supprimer des documents.
N'y a-t-il pas une étape intermédiaire avant la suppression définitive avec l'interface demandant :" Êtes-vous sûr de vouloir supprimer le document ?", comme c'est le cas dans l'interface privée ?

Tu obtiendras des logs sur les autorisation en ajoutant les 2 defines dans ton mes_options :
define('_LOG_FILTRE_GRAVITE',8);
define ('_DEBUG_AUTORISER', true);
(pour être sur)
JL

Merci pour ces conseils.
Mais ce que je veux simplement, c’est de pouvoir utiliser, dans la partie publique, une interface

similaire à celle de la partie privée concernant la suppression de documents.
J’utilise : #FORMULAIRE_JOINDRE_DOCUMENT{new,#ENV{id_seance,new},seance}
dans une boucle_seance, ça fonctionne bien mail il me manque la possibilité de supprimer les documents téléchargés.