لدينا إضافة Pavilion Event التي تنشئ صفحة /Calendar.
أنا أتطلع إلى تعديل صفحة التقويم باستخدام CSS/HTML/Theme Components لجعلها سهلة الاستخدام قدر الإمكان.
نظرًا لأن لدينا عددًا قليلاً فقط من الفئات التي نسمح بإنشاء الأحداث فيها، فقد نجحت في تصفية القائمة المنسدلة للفئات في المنشئ لتشمل الفئات ذات الصلة فقط.
الجزء الذي أواجه صعوبة فيه هو تعيين الفئة الافتراضية في المنشئ باستخدام CSS/HTML (حتى أتمكن من استخدام الشروط لتشغيلها في الصفحات الصحيحة - مثل صفحة التقويم).
الهدف هو أن تكون الفئة الافتراضية في كل مكان آخر في Discourse هي “General”، ولكن إذا كان المستخدم ينشئ موضوعًا من صفحة التقويم (الصفحة تحتوي بالفعل على وظيفة “New Topic”) - فإن الفئة الافتراضية للمنشئ تتحول إلى “Event Planning” بدلاً من ذلك، وتشغل القالب المرفق بفئة “Event Planning”.
هل يمكن لأي شخص أن يوجهني في الاتجاه الصحيح؟
شكرًا
إعجاب واحد (1)
للإشارة - الكود الذي حصلت عليه حتى الآن:
HTML Body
<!-- يُستخدم للإشارة إلى صفحة التقويم عن طريق إضافة فئة calendar-page إلى body -->
<script>
// التحقق مما إذا كان عنوان URL ينتهي بـ "/calendar"
if (window.location.href.endsWith("/calendar")) {
// إضافة فئة إلى body لتشغيل قاعدة CSS
document.body.classList.add('calendar-page');
}
</script>
<!-- يغير "Add Topic" إلى "Add Event" في شاشة التقويم -->
<script>
// التحقق مما إذا كانت body تحتوي على الفئة "hide-on-calendar"
if (document.body.classList.contains('calendar-page')) {
// تحديث نص الزر
const button = document.querySelector('.main-content.calendar .d-button-label');
if (button) {
button.textContent = 'Add Event';
}
}
</script>
CSS
// إخفاء فئات الأحداث غير الهامة
body.calendar-page li.select-kit-row.category-row[title]:not([title="Private Events"]):not([title="Public Events"]):not([title="Induction Sessions"]):not([title="Space Bookings"]) {
display: none;
}
إذا كان لدى أي شخص أي اقتراحات حول كيفية التقاط قيمة تم تعيينها لإعدادات الفئة بواسطة مكون إضافي (في هذه الحالة، إعداد المكون الإضافي للأحداث “السماح بإضافة الأحداث إلى المواضيع في هذه الفئة.”) حتى لا أحتاج إلى ترميز الفئات بشكل ثابت، فسيكون ذلك رائعًا أيضًا … ولكني أعلم أنني أبالغ في الطلب.