[إشعار المسؤول] يحتوي السمة ‘\_Base’ على تعليمات برمجية تحتاج إلى تحديث. (المعرّف: discourse.script-tag-discourse-plugin) (اعرف المزيد)
بالنسبة لأحد منتدياتي، تخلصت من هذه الرسالة ببساطة عن طريق نقل نص JavaScript الخاص بي إلى علامة تبويب تخصيص JavaScript الجديدة.
في منتديي الآخر، لم ينجح الأمر بهذه السهولة.
إنه تجاوز قديم يعرض حقل علامات التبويب الخاص بالملحن فقط في الفئات التي تقبل علامات التبويب:
<script type="text/discourse-plugin" version="1.4.0">
// show tag chooser in the composer only when necessary
const discourseComputed = require("discourse-common/utils/decorators").default;
const EmberObject = require("@ember/object").default;
function toggleTagChooser(display = "hide") {
if (display == "show") {
document.getElementsByClassName("mini-tag-chooser")[0].style.display = "block";
document.getElementsByClassName("reply-area")[0].classList.add("with-tags");
return;
}
// Verify the existence of the tag choser
let tagChoser = document.getElementsByClassName("mini-tag-chooser");
if(tagChoser.length > 0) {
tagChoser[0].style.display = "none";
document.getElementsByClassName("reply-area")[0].classList.remove("with-tags");
}
return;
}
api.modifyClass('controller:composer', {
pluginId: "toggleTagChoser",
@discourseComputed("model.category", "model.tags", "lastValidatedAt")
tagValidation(category, tags, lastValidatedAt) {
// custom code to toggle the tag choser
toggleTagChooser("hide");
if(category != null) {
if (
category.allow_global_tags == true ||
category.allowed_tag_groups.length > 0 ||
category.allowed_tags.length > 0
) {
toggleTagChooser("show");
}
}
// end of the custom code
const tagsArray = tags || [];
if (this.site.can_tag_topics && !this.currentUser.staff && category) {
// category.minimumRequiredTags incorporates both minimum_required_tags, and required_tag_groups
if (category.minimumRequiredTags > tagsArray.length) {
return EmberObject.create({
failed: true,
reason: I18n.t("composer.error.tags_missing", {
count: category.minimumRequiredTags,
}),
lastShownAt: lastValidatedAt,
});
}
}
}
});
</script>
كان هذا النص البرمجي يعتمد بشكل كبير على تعديل مشابه (وقديم، عام 2019 أو أقدم) تم نشره على meta، ولكن لا يمكنني العثور على المنشور الأصلي بعد الآن.
على أي حال، هناك سؤالان في سؤال واحد:
-
كيف يمكن نقل هذا بشكل صحيح إلى علامة تبويب JS؟ هل هذا ممكن، أم يجب علي إنشاء مكون سمة؟
-
هل هناك طريقة أكثر أناقة لإخفاء/إظهار محدد علامات التبويب الخاص بالملحن فقط في فئات معينة؟ أستخدم علامات التبويب لفئة واحدة فقط في منتدى الخاص بي (فئة إعلانات بعلامات
#searchو#offer)