主题管理面板中有自定义选项吗?

过去 15 个小时对我来说简直是一场噩梦,我不得不阅读现有的插件和源代码,仅仅为了获得编写我的第一个插件所需的最基本功能。我需要帮助。

具体来说,我需要帮助在每个帖子的管理面板中添加一个新按钮(位于左下角的按钮)。我目前做到的最大程度只是将按钮放在了与小部件相同的元素中……

但请注意那个项目符号。这是因为我所创建的内容并没有像应该的那样进入 ul 列表中。我完全不知道该如何修复这个问题。

(这个 div 是我的选项。)

我是用这段代码实现的:

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) {
				// 允许用户看到该按钮

				api.decorateWidget('topic-admin-menu:after', (decorator) => {
					// 将按钮添加到管理菜单
					return decorator.attach('admin-menu-button', {
						icon: 'ban',
						fullLabel: 'tl_post_lock.button_label',
						action: 'actionTlLock'
					})
				})
				
			}
		})
	}
}

在此之后,我无法让它真正被点击。在 decorateWidget 块之后,如果我尝试编写任何形式的如下代码:

image

我会收到以下完全无用的错误,提示的行号和字符甚至根本不存在。

以及一大堆其他垃圾信息。

我要崩溃了。我该如何在左下角的管理面板中简单地添加一个按钮,以便我在点击它时运行代码?

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 个赞

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