Les 15 dernières heures ont été un cauchemar pour moi, à lire des plugins existants et du code source juste pour obtenir des fonctionnalités extrêmement basiques afin de créer mon premier plugin. J’ai besoin d’aide.
Plus précisément, j’ai besoin d’aide pour ajouter simplement un nouveau bouton dans le panneau d’administration pour chaque publication (le bouton en bas à gauche). Le maximum que j’ai réussi à faire est de placer le bouton dans le même élément que le widget…
Mais remarquez le point de liste. C’est parce que ce que j’ai créé n’est pas placé dans la balise ul comme il le devrait. Je n’ai aucune idée de comment résoudre ce problème.

(le div est mon option).
J’ai fait cela avec ce code :
import { withPluginApi } from 'discourse/lib/plugin-api';
import showModal from "discourse/lib/show-modal";
export default {
name: 'tl-post-lock',
initialize() {
withPluginApi('0.8.24', function(api) {
const user = api.getCurrentUser()
if(user.trust_level >= api.container.lookup('site-settings:main').tl_lock_minimum) {
// L'utilisateur a le droit de voir le bouton
api.decorateWidget('topic-admin-menu:after', (decorator) => {
// Ajoute le bouton au menu d'administration
return decorator.attach('admin-menu-button', {
icon: 'ban',
fullLabel: 'tl_post_lock.button_label',
action: 'actionTlLock'
})
})
}
})
}
}
Après cela, impossible de le rendre cliquable. Après le bloc decorateWidget, si j’écris n’importe quelle forme de ceci :
![]()
Je reçois l’erreur totalement inutile suivante, avec une ligne et un caractère qui n’existent même PAS.
![]()
Ainsi qu’une foule d’autres spams.
Je perds la tête. Comment puis-je simplement ajouter un bouton dans le panneau d’administration en bas à gauche pour pouvoir exécuter du code lorsque je clique dessus ?
