تقويم وأحداث Discourse

:discourse2: ملخص يضيف Discourse Calendar and Events ميزات التقويم والفعاليات الديناميكية والتفاعلية إلى موقع Discourse الخاص بك.
:open_book: دليل التثبيت يتم تضمين هذا المكوّن الإضافي مع نواة Discourse. لا حاجة لتثبيت المكوّن الإضافي بشكل منفصل.

تفعيل التقويم والفعاليات

يمكن تفعيل مكوّن التقويم والفعاليات إما عن طريق التبديل أو من إعداداته، وكلاهما متاح من صفحة admin/plugins الخاصة بك:

الميزات

كما هو متوقع إلى حد ما، يضيف Discourse Calendar and Events كلًا من ميزات التقويم والفعاليات إلى موقع Discourse الخاص بك. باستخدام هذه الميزات، يمكنك إنشاء تقويمات مواضيع فردية لتتبع المناسبات أو الجداول الزمنية المهمة، وعرض التقويمات في الفئات، وإضافة تقويم العطلات لتمييز الإجازات أو الغياب أو أيام المرض، وإنشاء مواضيع فعاليات تفاعلية، بالإضافة إلى عرض ملخص تقويم سهل الوصول لجميع فعالياتك القادمة.

التقويمات

can be created in multiple topics, and ones you wish to give higher visibility to can be displayed above a category’s topic list.

يمكنك العثور على معلومات أكثر تفصيلاً حول كيفية إنشاء واستخدام التقويمات في:

الفعاليات

تتيح ميزة الفعاليات إدراج عناصر تفاعلية في المواضيع يمكن لأعضائك استخدامها للتسجيل للحضور أو المشاركة في أنشطة مجتمعك. يتم تلخيص كل هذه العناصر في تقويم مخصص على مستوى الموقع، مع خيار إضافة رابط سهل الوصول إلى قائمة التنقل الخاصة بك. يمكنك العثور على مزيد من المعلومات حول كيفية إنشاء واستخدام هذه الميزة في:

:exclamation: يجب عدم الخلط بين هذا ومكوّن Events plugin الخاص بـ Pavilion (لاحظ الجمع)

إعدادات التقويم

الاسم الوصف
تقويم مفعّل تفعيل مكوّن discourse-calendar. سيضيف هذا دعمًا لعلامة [calendar][/calendar] في المشاركة الأولى من الموضوع.
معرف موضوع تقويم العطلات معرف موضوع تقويم إجازات/غياب الموظفين.
رمز تعبير حالة العطلة يحدد رمز التعبير المستخدم لحالة العطلة.
حذف مشاركات الفعاليات المنتهية بعد سيتم حذف المشاركات ذات الفعاليات المنتهية تلقائيًا بعد (ن) ساعة. اضبط على -1 لتعطيل الحذف.
وقت بدء الفعالية طوال اليوم ستبدأ الفعاليات التي لا تحتوي على وقت بدء محدد في هذا الوقت. التنسيق هو HH:mm. للساعة 6:00 صباحًا، أدخل 06:00
وقت انتهاء الفعالية طوال اليوم ستنتهي الفعاليات التي لا تحتوي على وقت انتهاء محدد في هذا الوقت. التنسيق هو HH:mm. للساعة 6:00 مساءً، أدخل 18:00
فئات التقويم عرض تقويم في أعلى الفئة. الإعدادات الإلزامية هي categoryId و postId. مثال: categoryId=6;postId=453[1] الإعدادات الأخرى الصالحة: tzPicker[2], weekends[3] و defaultView[4].
منفذ فئات التقويم يسمح بتغيير المنفذ الذي يجب أن يعرض تقويم الفئة.
أيام العمل تعيين أيام العمل. يمكنك عرض توفر مجموعة باستخدام علامة timezones في المشاركة، مثال: [timezones group=admins][timezones]
ساعة بدء يوم العمل وقت بدء ساعات يوم العمل.
ساعة انتهاء يوم العمل وقت انتهاء ساعات يوم العمل.
تمديد ساعات العمل القريبة تعيين وقت التمديد في ساعات يوم العمل لتسليط الضوء على المناطق الزمنية.
العطلات التلقائية للتقويم مفعّلة تعيين حالة العطلة تلقائيًا بناءً على منطقة المستخدم (ملاحظة: يمكنك تعطيل العطلات التلقائية المحددة في إعدادات المكوّن الإضافي)
تعيين عنوان الفعاليات تعيين عنوان تقويم الشريط الجانبي بناءً على الفئة. الافتراضي هو “الفعاليات القادمة”

إعدادات الفعاليات

الاسم الوصف
discourse post event enabled تفعيل ميزات الفعاليات. ملاحظة: يحتاج أيضًا إلى تفعيل calendar enabled.
discourse post event allowed on groups المجموعات المسموح لها بإنشاء الفعاليات.
displayed invitees limit يحدد عدد المدعوين المعروضين في الفعالية.
display post event date on topic title يعرض تاريخ الفعالية بعد عنوان الموضوع.
use local event date استخدام التاريخ المحلي بعد عنوان الموضوع بدلاً من الوقت النسبي.
discourse post event edit notifications time extension يمدد (بالدقائق) الفترة بعد انتهاء الفعالية عندما لا يزال يتم إشعار المدعوين الذين سيحضرون من التعديل في المشاركة الأصلية.
discourse post event allowed custom fields يسمح لكل فعالية بتعيين قيمة الحقول المخصصة.
events calendar categories عرض تقويم الفعاليات في أعلى الفئة.
sort categories by event start date enabled تفعيل فرز مواضيع الفئة حسب تاريخ بدء الفعالية.
disable resorting on categories enabled السماح للفئات بتعطيل القدرة على الفرز في فئة الفعاليات.
sidebar show upcoming events عرض رابط الفعاليات القادمة في الشريط الجانبي تحت “المزيد”. يتطلب post event enabled
map events to color تعيين لون الفعالية لعلامة أو فئة محددة

:information_source: :curling_stone: يحتوي نقطة النهاية discourse-post-event/events.json الآن على معلمة إضافية للتبديل بين الاستجابة البسيطة المفصلة. للحصول على الاستجابة المفصلة يمكنك إضافة ?include_details=true:

/discourse-post-event/events.json?include_details=true

فعاليات البث المباشر

بالنسبة للفعاليات المباشرة، استخدم وظيفة البث المباشر للسماح للأعضاء بمشاهدة الفعالية والمشاركة في الدردشة في نفس الوقت.

تتضمن فعالية البث المباشر:

  • بث فيديو (باستخدام YouTube، على سبيل المثال)
  • فعالية تقويم باستخدام Discourse Calendar and Events
  • قناة دردشة مرافقة يتم إنشاؤها تلقائيًا للفعالية

المتطلبات المسبقة لفعاليات البث المباشر

لاستخدام فعاليات البث المباشر، يجب أن يكون لديك chat enabled، نظرًا لأن البث المباشر ينشئ قناة دردشة مرافقة لفعالياتك، بالإضافة إلى discourse post event enabled و calendar enabled.

إنشاء فعالية البث المباشر

لإنشاء فعالية البث المباشر:

  1. افتح موضوعًا جديدًا.
  2. حدد أيقونة + في شريط أدوات المُؤلف وانقر على إنشاء فعالية (إذا لم تتم إضافة الفعالية إلى موضوعك بالفعل).
  3. الصق الرابط إلى فيديو الفعالية (على سبيل المثال، عنوان URL الخاص بـ YouTube) في حقل الموقع/الرابط.
  4. فعّل “البث المباشر”

سترى بعد ذلك أن الفعالية والبث المباشر قد تم إنشاؤهما، جنبًا إلى جنب مع قناة دردشة مرافقة على الجانب الأيمن.

بمجرد قيام أي مستخدم بالنقر على سأحضر في الفعالية، سينضمون تلقائيًا إلى قناة الدردشة، مما يسمح لهم بالمشاركة في المحادثة!

بث ندوات Zoom

يمكنك استخدام البث المباشر لاستضافة ندوات Zoom مباشرة في Discourse، بحيث يمكن للأعضاء مشاهدة الفعالية والمشاركة في قناة الدردشة المرافقة دون مغادرة مجتمعك.

المتطلبات المسبقة لندوات Zoom

بالإضافة إلى المتطلبات المسبقة للبث المباشر، ستحتاج أيضًا إلى تكوين الإعدادات التالية:

  • فعّل livestream zoom enabled
  • أدخل مفتاح SDK لاجتماعات Zoom الخاص بك في إعداد livestream zoom sdk key
  • أدخل سر SDK لاجتماعات Zoom الخاص بك في إعداد livestream zoom sdk secret

للحصول على مفتاح وسر SDK لاجتماعات Zoom:

  1. انتقل إلى marketplace.zoom.us، انقر على Develop، وانقر على Build app.

  2. عند سؤالك عن نوع التطبيق الذي تقوم بإنشائه، اختر General App وانقر على Create.

  3. من صفحة App Credentials للتطبيق، انسخ Client ID (مفتاح SDK) و Client Secret (سر SDK).

  4. تحت Embed، فعّل إذن Meeting SDK.Enabling the Meeting SDK permission in the Zoom app.|690x421

  5. في Discourse الخاص بك، انتقل إلى Admin → All site settings وأدخل القيم من الخطوة 3 في livestream zoom sdk key و livestream zoom sdk secret.

لكي تعمل ندوة Zoom بشكل صحيح في Discourse:

  • لا يجب أن تتطلب الندوة تسجيلًا أو رمز مرور للانضمام.

  • عطّل دردشة ندوات Zoom المدمجة لضمان حدوث جميع المناقشات في قناة دردشة Discourse الموحدة للحفاظ على جميع الدردشات في مكان واحد وضمان استمرار المحادثة بعد انتهاء الندوة.

إنشاء فعالية البث المباشر لندوة Zoom

لإنشاء فعالية البث المباشر لندوة Zoom الخاصة بك:

  1. افتح موضوعًا جديدًا، حدد أيقونة +، وانقر على إنشاء فعالية.
  2. الصق رابط ندوة Zoom الخاص بك (على سبيل المثال، https://zoom.us/``...) في حقل الرابط/الموقع.
  3. فعّل البث المباشر.
  4. اضبط اسم الفعالية، وقت البدء، وقت الانتهاء، وتفاصيل الفعالية الأخرى كما تريد.
  5. انشر الموضوع.

مثل فعاليات البث المباشر الأخرى، سيتم إنشاء هذه الفعالية مع قناة دردشة Discourse مرافقة ينضم إليها الأعضاء تلقائيًا بعد تأكيد حضورهم “سأحضر”.

تجربة الأعضاء

إليك كيفية تجربة الأعضاء للندوة:

قبل الفعالية

يتم عرض زر انضمام إلى Zoom قبل 30 دقيقة من بدء الفعالية. خارج هذه الفترة، يكون الزر معطلًا مع رسالة تشير إلى متى سيكون متاحًا.

أثناء الفعالية

بمجرد قيام الأعضاء بالنقر على انضمام إلى Zoom، ستتم تحميل الندوة في صفحة الموضوع (أو، إذا لم يبدأ المضيف الفعالية بعد، سيتعين على العضو الانتظار حتى يقوم بذلك لمشاهدة الفيديو).

لا يتصل الصوت تلقائيًا عند الانضمام إلى الندوة؛ يحتاج الحضور إلى النقر أو لمس أيقونة الصوت في شريط أدوات Zoom للاتصال. هذا قيد في SDK الخاص بـ Zoom ولا يمكن تغييره.

على الأجهزة المحمولة، تفتح الندوة في عرض Zoom بشاشة كاملة (وهو متاح أيضًا على سطح المكتب عن طريق إضافة /zoom إلى نهاية عنوان URL لموضوع الفعالية) مع زر دردشة عائم يمكنهم النقر عليه لفتح لوحة تراكب الدردشة أثناء الفعالية.

بعد الفعالية

يتم إخفاء زر انضمام إلى Zoom بعد 10 دقائق من وقت انتهاء الفعالية. تظل قناة الدردشة متاحة للحضور حتى تقوم بإغلاقها.

التكامل مع المكونات الإضافية الأخرى

يمكنك استخدام مكونًا من هذا المكوّن الإضافي مع Right Sidebar Blocks. ستحتاج إلى التأكد من تمكين المسار المطلوب في مكون Right Sidebar Blocks. سيكون اسم الكتلة upcoming-events-list. تاريخيًا، كانت هناك إعدادات إضافية مطلوبة في مكوّن التقويم نفسه، ولكن تم تبسيط هذا.

هكذا سيبدو تقويم الشريط الجانبي بشكل افتراضي.

إذا كنت لا تريد الوقت، يمكنك إضافة قيمة فارغة لـ timeFormat في إعداد كتلة المكون.

:discourse2: استضافة من قبلنا؟ هذا المكوّن الإضافي متاح في طبقاتنا التجارية والمؤسسية Calendar | Discourse - Civilized Discussion


  1. categoryId هو الفئة التي سيتم عرض التقويم فوقها.
    postId هو المشاركة التي تضع فيها التقويم باستخدام [calendar][/calendar] ↩︎

  2. يمكنه عرض منتقي المنطقة الزمنية في أعلى يمين التقويم. افتراضيًا خطأ، يمكنك تفعيله باستخدام tzPicker=true ↩︎

  3. يمكنه إخفاء أيام السبت والأحد من التقويم. افتراضيًا صحيح. يمكنك تعيينه على خطأ باستخدام weekends=false. ↩︎

  4. سيحدد defaultView عرض التقويم (يوم، أسبوع، إلخ). يمكن تعيينه كـ:

    defaultView=agendaDay
    defaultView=agendaWeek
    defaultView=month (افتراضي)
    defaultView=listNextYear ↩︎

100 إعجاب
How to use the calendar plugin?
Discourse Calendar - How to?
Calendar plugin, nothing is displayed
Discourse 2.2.0.beta3 Release Notes
How to use the calendar plugin?
Discourse Calendar dislpay link text rather than link url
Ability to mark any post as unread
Is there a room booking plugin?
📅 Event List Widget (Layouts Plugin)
I am looking for a webhook or event api
Inserting date/time into new topic's title field (ie, right here > !)
Db:migrate fails on discourse-calendar
Moderator/Admin Off Duty Button
Go from a Wordpress + Discourse structure to a Discourse site only?
Creating sub-communities in a discourse server
Vacation autoresponder for users who are away?
Please better document the Discourse Calendar plugin
Plugin to gather approvals / signatures on an initiative?
Plugin to show upcoming events on hosted discourse
Is there any way to change the starting date of the Calendar?
SEO applied to Discourse Official Plugins
Add color to events based on event category or tag?
Add recurrent items within a date-range
Use Case Question - Room/Equipment Booking
Best practices for communicating to user base
Integrate with Discourse-calendar
My Wiki of useful Meta (and other) links
Quotes in event name clears attendees
Calendar in Discourse
Show Cakeday dates on the Calendar plugin
Agenda de colegio
What are your favorite plugins for your community?
Display a category as a calendar by scheduled Topic-timer dates
Why you should use Discourse internally for your company/team instead of Slack (4 years use case)
Newbie question: Is there a comprehensive guide to configuring and administering Discourse instance?
Angus' Events Plugin :calendar:
When "closing" event it moves it to today's date & time
How to display different calendar views?
Discourse calendar and event iCal integration?
Can the auto-responder fire on @mentions?
Event/Calendar Plugin - Cannot select a user for bulk-invite
Bulk Invite via modal only allowing one user (and not displaying correctly)
Help us test Horizon, our newest theme
500 Error when posting, moment.tz runtime error
Best practice for a topic for a recurring event
How to get "back" btn
Event Chat Channels Now Available
📅 New Calendar Feature: End Date for Recurring Events
🌍 New Calendar Feature: Show Local Time
What livestream/webinar platforms do you use?
Custom Wizard Plugin :mage:
ICS → Discourse Importer
How have you built a local community around Discourse?
Angus' Events Plugin :calendar:
What happens next?
Bundling more popular plugins with Discourse core
Calendar subscription URLs for external calendar apps
Listing event invitees with email addresses
Discourse Daily Challenges
Upcoming Events Extra Buttons and Enhancements
Horizon: High Context Topic Cards
Besoin de renseignement pour informer une annulation d'événement
Current Projects - May 2026
It's easier than ever to create events in Discourse!
Easily create Events categories using the Calendar and Events plugin
It is very difficult to make events all day in the events modal (and 00:00 is confusing)
Discourse Calendar - How to?
Angus' Events Plugin :calendar:
Topic List Previews (TLP)
New Topic button text does not change to New Event in sidebar in events category in Horizon Theme
Current Projects - June 2026
Event Duplicator: duplicate calendar events/topics into a new time period
Event Creation
Category Calendar with defaultView="listNextYear" not showing events
Calendar Core - Needs any special theme?
Creating and managing calendars
Sorting Categories by Title
Creating and managing events
Category Calendar with defaultView="listNextYear" not showing events
The "Save Changes" button is very low on my user preferences interface page
Group Timezones
Easily create Events categories using the Calendar and Events plugin
Available hours / work hours flair
Could use help, setting up new community
Feature request: wrap calendar items when there's just one per day
Right Sidebar Blocks
Custom Discourse instance for a writers club
Unread messages blue numbers appearing in Latest lately (when they shouldn't)?
Database migration chokes on huge value of a "calendar-details" item in table "post_custom_fields"
"Out of office" user indicator
Database migration chokes on huge value of a "calendar-details" item in table "post_custom_fields"
Angus' Events Plugin :calendar:
Angus' Events Plugin :calendar:
Calendar plugin features to make it really useful for us
"Out of office" user indicator
Can discourse display topic replies in reverse order?
Discourse Livestream
New to Discourse, have some questions :)
Expired events with end times are being removed from upcoming-events even with setting set to -1
Setup Continuous Integration using GitHub Actions
Add color to events based on event category or tag?

هذه الإضافة واعدة - ولكن هناك بعض الميزات المفقودة التي تمنعنا من الانتقال من إضافة Pavilion

  • عرض الأحداث غير طوال اليوم مع وقت البدء في التقويم، حاليًا كل حدث يبدو كحدث طوال اليوم.

  • زر “إضافة حدث” في المنشئ بجوار محدد العلامات (وليس مخفيًا في الترس)

  • تحديد الفئات التي يمكن أن تحتوي على أحداث، وما إذا كانت الأحداث إلزامية في فئة ما

ميزات مرغوبة:

  • بيانات وصفية للحدث في الموضوع تظهر/تدخل فقط في أعلى الموضوع (بدلاً من أي مكان يكون المؤشر فيه)
  • القدرة على تحديد المجموعات التي يمكنها إنشاء أحداث في فئة (على سبيل المثال - يمكن لمجموعة ‘EventPlanners’ فقط إنشاء أحداث في فئة ‘Discussion’، ولكن يمكن لجميع المستخدمين إنشاء مواضيع غير أحداث (أو تعديل المواضيع إذا تم تعيين الموضوع على Wiki)
  • تغيير عنوان URL من /upcoming-events إلى /calendar
13 إعجابًا

تم تقسيم منشورين إلى موضوع جديد: Holiday status being incorrectly applied

مرحباً،
شكراً لك على هذا العمل.

لدي سؤالان حول تجربة المستخدم (UX):

  • هل من الممكن عرض زر “إضافة حدث” بجوار زر “إضافة موقع” في محرر الموضوع؟ كما كان الحال مع إضافة pavillion؟
    image

  • هل هناك إمكانية لإضافة إدخال قائمة علوية للتقويم؟ لا أجده في الإعدادات

يبدو هذا رائعًا! بعض الأفكار/الأسئلة:

هل أفترض بشكل صحيح أنه لإنشاء تقويم، ما عليك سوى إنشاء سلسلة/موضوع جديد، ولصق ما يلي فيه:

اسم التقويم

[calendar]
[/calendar]

ثم لإضافة إدخالات إلى التقويم، ما عليك سوى إنشاء منشور جديد في نفس السلسلة بشيء مثل ما يلي (بالنقر على أيقونة إدراج الوقت/التاريخ في خيارات المنشور):

اسم الحدث/الإدخال

[date-range from=2024-04-18 to=2024-04-19 timezone="Europe/London"]

هذا يضيف الإدخال إلى التقويم وهو أمر رائع، ومع ذلك:

  • هل هناك أي طريقة لإضافة إدخالات إلى تقويم ولكن السماح لتلك الإدخالات بأن يكون لها سلسلة/موضوع مخصص أيضًا؟ (أرى أنه يمكنك إضافة أحداث في سلاسل جديدة، ولكن لا يبدو أن هناك أي طريقة لإضافة تلك الأحداث إلى تقويم).
  • هل هناك أي طريقة لعرض “الأحداث القادمة” من تقويم معين في رسائل البريد الإلكتروني الملخصة؟ أو ربما العمود الأيسر، مع ربط كل إدخال بالسلسلة المخصصة لهذا الإدخال؟

إذا لم يكن هذا ممكنًا حاليًا، فهل لديك أي خطط لإضافته؟

إعجاب واحد (1)

@vinothkannans هل يمكنك مساعدتي في مراجعة طلب السحب هذا؟

إعجاب واحد (1)

هل هناك خطط لإضافة موجز عنوان URL يمكن للمستخدمين الاشتراك فيه؟ أنا متأكد من أنه سيكون من الصعب على جميع الأحداث مقابل تلك التي ردوا عليها.
ثانياً، ستكون طبقة إضافية رائعة إذا كان بإمكانها التعرف على الأحداث الخاصة (أو ربما يكون هذا مجرد موجز عنوان URL مختلف لكل مجموعة).

6 إعجابات

لا يوجد موجز RSS لرابط /upcoming-events على الرغم من ذلك - سيكون ذلك إضافة لطيفة!

3 إعجابات

ماذا عن مزامنة caldav؟

6 إعجابات

سيكون ذلك سببًا لي للتبديل أيضًا، في الواقع.

هذا يحتاج إلى المزيد من التحديث لأنه يذكر إدراج حدث في الملحن وإضافة تفاصيل الحدث كما هو موضح في الصورة. هل كان الحدث إضافة؟

لقد قمت بتثبيت المكون الإضافي ويعمل وسم التقويم في المنشور الأول للموضوع. لكنني لا أرى أي خيارات للحدث أو التقويم في قائمة الترس:

هل يمكن لأحد أن يشرح لي ما أحتاج إلى القيام به للحصول على خيار الحدث في قائمة الترس؟

تحتاج إلى تمكين قسم “الحدث” للمكوّن الإضافي discourse post event enabled

إعجابَين (2)

شكرا. لقد فاتني هذا الإعداد بطريقة ما.

3 إعجابات

كيف يمكنك جعل حدث الإنشاء يظهر في موضوع فئة مع كون الردود أحداثًا؟

أرى أن إنشاء حدث يعمل عند إنشاء مواضيع جديدة. لكنني أتطلع إلى وجود تقويم في موضوع مع إضافة أحداث في الردود. إنه يعمل جزئيًا مع إدراج التاريخ ولكنه ليس جيدًا مثل إنشاء حدث لديه المزيد من الخيارات.

إعجاب واحد (1)

يمكن للمستخدمين حاليًا تحديد المنطقة في تفضيلات ملفهم الشخصي.

أود أن أسمح لهم بتحديد منطقتهم أثناء التسجيل عن طريق عرض هذا الحقل في نموذج التسجيل. هل هذا ممكن؟

3 إعجابات

هل سيظهر الرد المحذوف في التقويم؟

لا يمكنني العثور على أي إعداد لتغيير اليوم الأول من الأسبوع إلى الاثنين، هل هذا أمر بسيط للتنفيذ إذا كان مفقودًا؟ :thinking:

هناك مشكلة أخرى وهي أن إدخال الوقت والتاريخ معطل، إذا كان حدثًا لليوم كله، فيجب أن يكون هناك خيار لتحديده قبل أن تتسبب حقول إدخال الوقت في إفساد التواريخ، ويبدو أن التواريخ تتغير بشكل عشوائي عند التعديل.

لاحظت أيضًا أنه من الممكن إدخال 00:00 في كل من الوقت والتاريخ، (مما يعمل أحيانًا ولا يعمل أحيانًا أخرى) مما يؤدي إلى ظهور خطأ في التقويم والذي سيؤدي بعد ذلك إلى حدوث تعارض مع المسودات مما يؤدي إلى تكرار خطأ 422 حتى يتم التراجع عن الصفحة إلى مراجعة سابقة، ثم إعادة تحريرها وما إلى ذلك.

3 إعجابات

يرجى الرجوع هنا

إعجاب واحد (1)

لا يوجد مثل هذا الإعداد ولهذا السبب لا أستخدمه. وأراهن أن الفريق سيصلح هذا الخطأ إذا كان خدعة سهلة.

إعجاب واحد (1)