خيار مخصص في لوحة إدارة الموضوع؟

لقد كانت آخر 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) {
				// User is allowed to see the button

				api.decorateWidget('topic-admin-menu:after', (decorator) => {
					// Adds the button to the admin menu
					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.