لقد أضفنا علامة تبويب التقويم (Calendar) جديدة إلى تفضيلات المستخدم تتيح لك الاشتراك في خلاصات Discourse في تطبيقات التقويم الخارجية مثل تقويم Google (Google Calendar) وتقويم Apple (Apple Calendar) وMicrosoft Outlook.
انتقل إلى علامة التبويب التفضيلات (Preferences) ← التقويم (Calendar) وانقر على إنشاء عناوين URL للاشتراك (Generate Subscription URLs). ستحصل على أزرار اشتراك بنقرة واحدة لـ:
تقويم Google (Google Calendar) - يفتح تقويم Google مع تعبئة الخلاصات مسبقًا
Microsoft Outlook - يفتح مربع حوار اشتراك الويب في Outlook
تقويم Apple (Apple Calendar) - يشغل تطبيق التقويم الأصلي عبر webcal://
نسخ عنوان URL (Copy URL) - لأي تطبيق تقويم آخر يدعم خلاصات ICS
الخلاصات المتاحة
متاحة دائمًا:
تذكيرات الإشارات المرجعية (Bookmarked Reminders) - إشاراتك المرجعية التي تحتوي على تواريخ تذكير
أحداثي (My Events) - الأحداث التي ستحضرها أو تهتم بها
لمطوري الإضافات (Plugin Developers)
يمكن للإضافات (Plugins) تسجيل خلاصات ICS إضافية باستخدام واجهة برمجة التطبيقات الجديدة register_calendar_subscription_feed. تظهر الخلاصات المسجلة بهذه الطريقة تلقائيًا في علامة تبويب تفضيلات التقويم عند تمكين الإضافة.
الأمان (Security)
تستخدم عناوين URL للاشتراك مفاتيح API للمستخدم محددة النطاق ومقيدة بالوصول للقراءة فقط بتنسيق ICS. المفاتيح محدودة بمعدل، وتُعرض عناوين URL مرة واحدة فقط عند الإنشاء — يمكن للمستخدمين إعادة إنشائها في أي وقت، مما يؤدي إلى إلغاء صلاحية العناوين القديمة.
شكراً جزيلاً على هذا التنفيذ - سيزيد هذا من قابلية استخدام إضافة التقويم/الأحداث للعديد من المجتمعات!
لدي نفس الاعتراض الذي أبداه @hellekin: نحن في بيئة مفتوحة المصدر داخل Discourse. في مجتمعنا، لا أحد يستخدم تقويم جوجل (Google Calendar) أو مايكروسوفت (Microsoft). إذا احتاج المستخدمون إلى رابط لهذه الخدمات الخاصة، فيجب عليهم اتخاذ القرار بأنفسهم، وليس التطبيق. لذلك، أفضل أن يتم اختيار نوع خدمة التقويم الخارجية عند خطوة إنشاء روابط الاشتراك (على سبيل المثال، باستخدام بعض مربعات الاختيار)، وليس لاحقاً.
لدينا العديد من المجتمعات على مثيل (instance) ديسكورس الخاص بنا. وهي مفصولة بأذونات المجموعات وبعض المستخدمين أعضاء في أكثر من مجتمع واحد. سيكون من الملائم تصفية عنوان URL لـ “Discourse Calendar - All Events” لعرض إدخالات تقويم مجتمع معين فقط. مثال على عنوان URL
اقتراح تحسين صغير آخر: إذا كنت تريد الاشتراك في أحداث Discourse على عميلين مختلفين (على سبيل المثال، Thunderbird على جهازين)، فأنت بحاجة إلى نسخ عنوان URL مرتين. ولكن يتم عرض عنوان URL مرة واحدة فقط حاليًا. إذا أضفت عميلاً ثانيًا، فعليك إعادة إنشاء عناوين URL وتفقد العناوين الأولى.
[quote=“Falco, post:7, topic:398902”]تحتاج إلى النسخ مرة واحدة فقط، ثم اللصق في العميلين اللذين تحتاجهما.
وإذا نسيت عميلاً، يمكنك إعادة الإنشاء بنقرة واحدة.
[/quote]
أفهم، ولكن النقطة التي أثيرها هي عملية إعادة الإنشاء المطلوبة بعد عرض عناوين URL لأول مرة.
إذا استخدمت رابط التقويم على جهازين مختلفين، فمن المحتمل ألا يكونا متاحين للإعداد في نفس الوقت. سأصل إلى ملفي الشخصي في ديسكورس (Discourse) من الجهاز الأول ثم لاحقًا مرة أخرى من الجهاز الثاني. سيكون من الأفضل عرض عنوان URL القديم مرة أخرى وإلغاء صلاحيته فقط بناءً على طلب صريح.
إذا كنت عضوًا في مجتمعين مختلفين (ومجموعات الأذونات الخاصة بهما)، فإن “https://discourse.example.com/discourse-post-event/events.ics” يعرض أحداث كلا المجتمعين. هذا صحيح حتى الآن. ولكن قد يكون لكل مجتمع موقعه الإلكتروني الخاص. إذا كنت أرغب في مشاركة الأحداث من Discourse على مواقعهم الإلكترونية، فسأرغب فقط في رؤية أحداث “المجتمع أ” وليس “المجتمع ب”. والعكس صحيح.
إذا كنت تتحدث عن خدمات التقويم لدى موفري الخدمات الآخرين، فإن المبدأ نفسه ينطبق: مزامنة من مرة إلى مرتين يوميًا. في ذلك الوقت، لم أجد حلاً لزيادة عدد عمليات المزامنة. لاحقًا، أدركت أن هذا أمر طبيعي تمامًا بالنظر إلى عدد التقويمات التي يتم مزامنتها حول العالم أعتقد أنه يضع هذا الحد لتجنب إغراق خوادمهم!
الخلفية: مثيل Discourse الخاص بنا مشترك بين مجموعات/مجتمعات مستخدمين متعددة، ولكل منها مجموعات أذونات منفصلة. لدينا فئة رئيسية لكل من هذه المجموعات. هذه الفئة مرئية للعامة، ويتم دمج محتواها في فيديفري (Discourse ActivityPub). كما تعرض تقويمًا عامًا. مثال (https://forum.netzwissen.de/c/meshcore-str/84):
يعرض التقويم الأحداث من المنشورات في الفئة الرئيسية وكذلك من الفئات الفرعية. لا تظهر منشورات الأحداث في الفئات الفرعية (التي تكون مرئية فقط عند “تسجيل الدخول” مع مجموعة أذونات المجتمع) في التقويم الرئيسي للمستخدمين المجهولين (غير المسجلين). مثالي - هذه هي الوظيفة المتوقعة!
أرى شرطين سيجعلان رابط تقويم ICS «كاملاً من حيث الميزات». نستخدم رابط تقويم ICS الجديد لمشاركة الأحداث المنشأة في Discourse على المواقع العامة للمجتمعات (نظام إدارة المحتوى: WordPress).
يجب أن تكون الأحداث المعروضة في ملف ICS «قابلة للفلترة» حسب المجتمع/مجموعة الأذونات. الصيغة المقترحة:
يجب أن يعرض ملف ICS فقط الأحداث ذات الحالة «عام». لا ينبغي عمومًا نشر الأحداث ذات الحالة «خاص» أو «مستقل» في ملف ICS. ملاحظة: لم أختبر بعد ما إذا كان هذا مُنفّذًا بالفعل…
للأسف، على الرغم من تفعيل مكون الإضافات الخاص بال التقويم (وقد استخدمناه بانتظام)، فإن اشتراك “الإشارات المرجعية” فقط هو الذي يتم إنشاؤه عند توليد الروابط الخاصة بمستخدمي. هل لديكم أي أفكار حول سبب حدوث ذلك؟
أتفق أيضًا مع @Thomas_Rother على أنه ينبغي إظهار روابط الاشتراك حتى يتم إلغاؤها أو إعادة توليدها. تتغير الأجهزة والتطبيقات مع مرور الوقت، وإعادة الاشتراك على جميع الأجهزة لمجرد الرغبة في إضافة جهاز واحد إضافي أمر ممل ويبدو غير ضروري. ربما يمكن جعل ذلك خيارًا في إعدادات المكون الإضافي، اعتمادًا على حساسية بيانات الأحداث.
هل يمكن أن تكون المشكلة مرتبطة بالتثبيتات التي كانت تستخدم الإضافة المنفصلة سابقًا؟ لقد جربت أيضًا إلغاء تنشيط الإضافة ثم إعادة تنشيطها، لكن ذلك لم يحل المشكلة.
لقد جئت هنا أبحث عن هذه الميزة بالتحديد، لذا أنا سعيد جدًا بتطبيقها!
أتفق مع ملاحظات @hellekin و@Thomas_Rother بشأن الروابط المؤسسية. إذا أمكن جعلها اختيارية، فسيكون ذلك رائعًا. يستخدم الكثيرون Discourse لأنهم يؤمنون بالسيادة الرقمية، لذا فإن ظهور هذه الشعارات ليس مناسبًا.
الأهم من ذلك هو إمكانية اكتشاف الميزة. فهي مخفية ضمن تفضيلات المستخدم، لكن سيكون من الرائع جدًا عرضها مباشرة في شريط تنسيق التقويم. انقر على “الأحداث القادمة” ثم ستجد رابطًا للاشتراك، وهذا سيكون مثاليًا.