| ملخص | أضف زرًا أو نصًا في أي مكان | |
| المستودع | https://github.com/literatecomputing/discourse-custom-components | |
| دليل التثبيت | كيفية تثبيت سمة أو مكون سمة | |
| جديد في سمات Discourse؟ | دليل المبتدئين لاستخدام سمات Discourse |
تثبيت مكون السمة هذا
أضف زر رابط أو نصًا عشوائيًا في أي منفذ للمكون الإضافي. (تجاهل العلامات المائية في الصور - لقد التقطت لقطات الشاشة هذه على موقع تجريبي/اختبار.)
لمعرفة أماكن وجود منافذ المكونات الإضافية، استخدم Introducing Discourse developer toolbar للعثور عليها. إذا لم تكن تعرف ما هو منفذ المكون الإضافي، يمكنك إلقاء نظرة على https://meta.discourse.org/t/using-plugin-outlet-connectors-from-a-theme-or-plugin/32727، ولكن هذا المكون يسمح لك، مع بعض القيود، بلصق نص في أي منفذ مكون إضافي دون برمجة أو فهم حقيقي لما هو منفذ المكون الإضافي.
بدأت في تطوير هذا المكون الإضافي لشخص أراد عرض زر “انقر فوق هذا الزر للاشتراك حتى تتمكن من إرسال رسائل خاصة” على ملفات تعريف المستخدمين وبطاقات المستخدمين. أرادوا أن يظهر الزر إذا لم يتمكن المستخدم من إرسال رسائل خاصة. نظرًا لأنني لست دائمًا ذكيًا كما أعتقد، فقد كتبت المكون باستخدام المجموعات لتحديد متى يتم عرض الزر. كانت إحدى مشكلات هذا النهج هي أن الموظفين لم يكونوا في مجموعة المشتركين، لذلك سيحصلون على زر “عليك الاشتراك” على الرغم من أنهم يستطيعون إرسال رسائل خاصة. بالإضافة إلى ذلك، كانت المجموعة مخفية، لذلك كان من المستحيل استخدامها في مكون سمة على أي حال. لقد أعدت كتابة مكون السمة هذا لاستخدام currentUser.can_send_private_messages لتحديد ما إذا كان سيتم عرض الزر.
لمن هذا؟
إذا كنت تريد وضع زر به رابط، أو بعض النصوص العشوائية التي يتم عرضها أو إخفاؤها لمجموعات معينة، فهذا سيسمح لك بإدراجها في أي منفذ مكون إضافي. هل تريد إضافة زر رابط “يجب عليك الاشتراك” بين كل رسالة باستثناء تلك التي ليست أعضاء؟ هذا سيفعل ذلك. هل تريد لصق أي HTML في منفذ مكون إضافي، فقط لمعرفة كيف سيبدو؟ هذا سيفعل ذلك.
كيف يساعد المطورين
تحتوي هذه السمة على بعض الأمثلة البسيطة لكيفية:
- استخدام Objects type for theme setting
- استخدام
api.renderInOutlet(كما هو موضح هنا للصق مكون Glimmer في منفذ يتم التحكم فيه بواسطة إعداد بدلاً من إنشاء ملف في دليلconnectors - كتابة مكون Glimmer بسيط يصل إلى
currentUser - تغليف مكون في قالب آخر (مضمن) ليتمكن من تمرير البيانات إليه
- عرض HTML عشوائي من إعداد السمة خاليًا من قيود Markdown - نعم، ربما
ولكن إذا كنت تحاول القيام بذلك داخل \u003ctemplate\u003e داخل ملف .gjs، فإنه يعمل بشكل مختلف قليلاً (مثل {{htmlSafe component.text}})



