لا أعرف كيف أقوم بالفرع باستخدام api.addPostMenuButton، لذلك حاليًا حتى المنشور الصغير الذي يحتوي على سطر واحد فقط مثل التالي يتم إعطاؤه هذا الزر.
هذا ليس مرغوبًا فيه جدًا بالنسبة لي.
أعتقد أن الفرع الشرطي يجب أن يكون قادرًا على الحصول على ارتفاع الجزء المطبوخ أو عدد الأسطر (أو الأحرف).
لقد اطلعت على الوثائق، لكنني لم أجد أي خيارات لـ api.addPostMenuButton.
سأكون ممتنًا لأي مساعدة.
لا يهتم التابع api.addPostMenuButton إلا بالقيمة التي تعيدها. يجب أن تكون هذه القيمة كائنًا. أي شيء تفعله قبل هذه القيمة المعادة لا يهم. سيتم عرض الزر لكل منشور، ويعطيك التابع الكائن post الذي يمكنك استخدامه لعملك.
على سبيل المثال، لنفترض أنني أريد أن يظهر الزر فقط في المنشورات التي تحتوي على أكثر من 300 كلمة. يمكنني حينئذٍ فعل شيء كهذا.
common > header
<script type="text/discourse-plugin" version="0.8">
const MIN_WORD_COUNT = 300;
api.addPostMenuButton("myButton", (post) => {
// يمكنك تسجيل خصائص المنشور لرؤية ما لديك للعمل به
// console.log(post);
// مثال
const roughWordCount = post.cooked.match(/\S+/g).length;
if (roughWordCount < MIN_WORD_COUNT) {
// لن يتم عرض الزر
return;
}
// سيتم عرض الزر، قم بإنشاء الكائن المعادل
const result = {
action: SOME_ACTION,
icon: ICON_NAME,
title: TITLE_TRANSLATION_KEY,
className: CLASSNAMES,
position: "first", // يمكن أن يكون `first` أو `last` أو `second-last-hidden`
};
// أضف تسمية إذا كان على سطح المكتب
if (!post.mobileView) {
result.label = LABLE_TRANSLATION_KEY;
}
// أعد الكائن
return result;
});
</script>
غيّر الأشياء المكتوبة بأحرف كبيرة إلى بيانات فعلية وجربها على منشور يحتوي على أكثر من 300 كلمة. سترى أنه يتم عرضه هناك.