Option personnalisée dans le panneau d'administration du sujet ?

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 :

image

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 ?

Finally figured it out.

api.decorateWidget('topic-admin-menu:adminMenuButtons', (decorator) => {
					// Adds the button to the admin menu
					return {
						icon: 'ban',
						fullLabel: 'tl_post_lock.button_label',
						action: 'actionTlLock'
					}
				})
				
				api.attachWidgetAction('topic-admin-menu', 'actionTlLock', () => {
					// code
				})
5 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.