يقوم نظامنا بإنشاء حسابات لنشر الإعلانات، وكنا نتساءل عما إذا كانت هناك طريقة لإضافة إشعار منفصل للموظفين له أيقونته الخاصة التي تُلحق تلقائيًا بهذه المنشورات حتى نتمكن من توضيح أنها حساب تم إنشاؤه تلقائيًا؟ حتى عن طريق معرف المستخدم/الاسم، أو المجموعة يعمل.
أعتقد أنه يمكنك تحقيق ذلك باستخدام مكونات السمة. على سبيل المثال، هذا الكود يفعل ما تحتاجه:
<script type="text/discourse-plugin" version="0.8">
const { iconHTML } = require("discourse-common/lib/icon-library");
const bot_id = 128856; // أو شيء آخر
api.decorateWidget("post:before", (helper) => {
if (helper?.getModel()?.user_id !== bot_id) { return; }
return helper.h("div.post-notice", [
helper.rawHtml(iconHTML("shield-alt")), // اسم الأيقونة
helper.h("p", "هذا روبوت"), // النص
]);
});
</script>
مرحباً!
لقد حاولت استخدام JS لإلحاق إشعار للموظفين تلقائيًا بحساب تم إنشاؤه تلقائيًا إذا كان عضوًا في المجموعة “autogenerated” ولكنني لست متأكدًا من أين أخطأت.
<script>
window.onload = function() {
const { groupMembers } = await discourse.groups.getMembers({
group_name: 'autogenerated'
});
if (groupMembers.includes(helper.getModel().user_id)) {
return helper.h('div.post-notices', [
helper.rawHtml(iconHTML('shield-alt')),
helper.h('p', 'This account is auto-generated and should be considered as a bot. The account is not monitored by Staff.')
]);
}
}
</script>
لقد وضعت الكود في جزء “Head” من المكون الخاص بنا، ومع ذلك، فهو لا يعمل. لست متأكدًا مما إذا كان لا يستدعي الدالة بشكل صحيح، أو ما إذا كان شرط IF الخاص بي لا يتم تلبيته فجأة.
مرحباً @jhealey
لقد أدرجت منشورك في الموضوع الحالي حيث تبدو الأسئلة متشابهة جداً. ![]()
قد ترغب في قفل الموضوع الآخر إذن. ربما كان يجب أن أرد على هذا الموضوع بدلاً من ذلك… ![]()
لقد اعتمدت كثيرًا على الأدوات التلقائية للقيام بذلك ولم أتحقق.
لقد قمت بإزالة الموضوع الآخر. ![]()
شكرًا! ![]()
إذا كنت تستخدم await، فيجب أن تكون دالتك async.
لم أكن أعرف كيف لم ألاحظ ذلك! شكرًا لك! إنه يعمل الآن ![]()
لا بأس! بين الحين والآخر، كلنا نرتكب مثل هذه الأخطاء.
على الرحب والسعة! ![]()
كل هذه الحيل لطيفة، ولكن يجب أن تكون هذه ميزة مدمجة بطريقة أو بأخرى.