ملاحظات إصدار Discourse 2.4.0.beta3

ميزات جديدة في 2.4.0.beta3

السماح بتخصيص ملف robots.txt

تسمح هذه الميزة للمسؤولين بتخصيص/تجاوز محتوى ملف robots.txt في /admin/customize/robots. هذه الصفحة غير مربوطة بأي مكان في واجهة المستخدم — يجب على المسؤولين كتابة عنوان URL يدويًا للوصول إلى تلك الصفحة:

إرسال حد أقصى 200 بريد إلكتروني كل دقيقة للدعوات الجماعية

ملاحظة: تم إهمال invite.via_email لصالح invite.emailed_status.

تضيف هذه الإضافة عمودًا جديدًا emailed_status في جدول invites لتتبع حالة إرسال البريد الإلكتروني.

 0 - غير مطلوب
 1 - قيد الانتظار
 2 - انتظار جماعي
 3 - جاري الإرسال
 4 - تم الإرسال
  • بالنسبة لدعوات البريد الإلكتروني العادية، يتم إنشاء سجل الدعوة مع تعيين emailed_status إلى ‘قيد الانتظار’.

  • عند إرسال الدعوات الجماعية، يتم إنشاء سجل الدعوة مع تعيين emailed_status إلى ‘انتظار جماعي’.

  • بالنسبة للدعوات التي تولد روابط، يتم إنشاء سجل الدعوة مع تعيين emailed_status إلى ‘غير مطلوب’.

  • عندما يكون بريد الدعوة في قائمة الانتظار، يتم تحديث emailed_status إلى ‘جاري الإرسال’.

  • بمجرد إرسال البريد الإلكتروني عبر وظيفة InviteEmail، يتم تحديث emailed_status في الدعوة إلى ‘تم الإرسال’.

المصادقة الخارجية عند استرداد الدعوات

ستسمح هذه الميزة (عند تمكينها) للمواقع التي تعتمد على invite_only بطلب مصادقة خارجية قبل استرداد الدعوة.

  • تم إنشاء إعداد موقع مخفي لتبديل هذه الميزة
  • تمكين إرسال الدعوات مع تعطيل تسجيل الدخول المحلي
  • تمت إضافة زر OAuth إلى نموذج الدعوة
  • يتطلب أن تتطابق عنوان البريد الإلكتروني لـ OAuth مع عنوان البريد الإلكتروني للدعوة
  • منع استرداد الدعوة إذا فشلت مصادقة OAuth

السماح باختيار التصنيف عند جعل رسالة خاصة عامة

في السابق، كان الافتراضي هو غير مصنف، وهو ما لم يكن مثاليًا في بعض المنتديات. الآن يمكن لأعضاء الطاقم تحديد التصنيف الذي سيتم نقل الرسالة الخاصة إليه فورًا.

السماح بعرض رسائل البريد الإلكتروني الخام للمشاركات المجدولة القابلة للمراجعة

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

هذا مفيد إذا كان محلل البريد الإلكتروني في Discourse يتصرف بشكل غريب ويريد المستخدم الذي يراجع المشاركة معرفة المحتويات الأصلية قبل الموافقة على المشاركة أو رفضها.

تحسينات الكلمات المراقبة

تمت إضافة ميزات جديدة في هذا الإصدار.

هناك زران جديدان. الأول يسمح للمسؤولين بتنزيل الكلمات المراقبة حسب الإجراء في ملف .txt، بينما يقوم الزر الثاني بمسح جميع الكلمات المحذوفة حسب الإجراء (مثل الحظر، العلم، إلخ). بالإضافة إلى ذلك، عندما يتم رفض مشاركة لأنها تحتوي على كلمة أو أكثر محظورة، فإن رسالة الخطأ الآن تسرد جميع الكلمات المحظورة الموجودة في المشاركة.

يرجى ملاحظة أن هذه الميزات الجديدة تغير أيضًا تنسيق ملف استيراد الكلمات المراقبة من .csv إلى .txt، مما يجعله غير متسق مع امتداد الملف عند تصدير الكلمات المراقبة.

تخصيص رسائل البريد الإلكتروني بصيغة HTML

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

يمكن إضافة التخصيصات وتعديلها في المسؤول > تخصيص > نمط البريد الإلكتروني.

بما أن ملخص البريد الإلكتروني منسق بالفعل بشكل مكثف، فهناك إعداد لتعطيل الأنماط المخصصة لرسائل البريد الإلكتروني الملخصة يُسمى apply custom styles to digest موجود في المسؤول > الإعدادات > البريد الإلكتروني.

كجزء من هذا العمل، يتم الآن عرض اللهجات RTL بشكل صحيح لجميع رسائل البريد الإلكتروني.

عرض مشرفي التصنيفات في صفحة “حول”

تحديث جديد لميزة Category Group Review/Moderation. من الآن فصاعدًا، سيكون مشرفو التصنيفات مرئيين في صفحة “حول” للموقع، إلى جانب أعضاء الطاقم.

إضافة دعم لمستوى رؤية أعضاء المجموعة & إرسال إشعار عند قبول عضو في المجموعة.

إضافة أخرى لإدارة رؤية المجموعة. الآن هناك 5 مستويات رؤية (مشابهة لرؤية المجموعة)

  • عام (افتراضي)
  • مستخدمو تسجيل الدخول
  • الأعضاء فقط
  • الطاقم
  • الملاك

المسؤولون وأصحاب المجموعة لديهم دائمًا رؤية لأعضاء المجموعة.

أيضًا من الآن فصاعدًا، سيتم إرسال إشعارات إلى المستخدمين الذين تم قبولهم في مجموعة.

تضمين قائمة المواضيع في مواقع بعيدة عبر واجهة برمجة التطبيقات JavaScript.

تضيف هذه الميزة دعمًا لعلامة \u003cd-topics-list\u003e التي يمكنك تضمينها في موقعك والتي سيتم عرضها كقائمة مواضيع في Discourse. سيتم تمرير أي سمات على العلامة كمرشحات. على سبيل المثال:

\u003cd-topics-list discourse-url="URL" category="1234"\u003e سيقوم بفلترة التصنيف 1234.

لاستخدام هذه الميزة، قم بتمكين إعداد موقع embed topics list. ثم في الموقع الذي تريد تضمينه، قم بتضمين الجافا سكريبت التالي:

\u003cscript src="http://URL/javascripts/embed-topics.js"\u003e\u003c/script\u003e

حيث URL هو عنوان URL الخاص بموقع Discourse الخاص بك.

ثم قم بتضمين علامة \u003cd-topics-list discourse-url="URL"\u003e في مستند HTML الخاص بك وسيتم استبدالها بقائمة المواضيع.

للمزيد من التفاصيل راجع Embedding a list of Discourse Topics in another site

إضافة ويب هوك لإشعارات المستخدمين

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

معالجة theme_uploads كإعدادات في JavaScript والسماح للمواضيع برفع ملفات js كأصول

هذه تحسينات أخرى للمواضيع. الأولى تسمح للمواضيع والمكونات بالوصول إلى أصول الموضوع. هذا يعني أنه داخل js الخاص بالموضوع، يمكنك الآن الحصول على عنوان URL لأصل باستخدام:

settings.theme_uploads.name

التحسين الثاني يساعد في فتح إمكانية للمواضيع لتأجيل تحميل حمولات js الأكبر حجمًا. التغيير آمن لأن السماح للمواضيع بتضمين js مضمن على أي حال.

إعدادات الموقع للربط مع تطبيقات iOS/Android الأصلية & دمج موجه تثبيت PWA في واجهة مستخدم Discourse

في هذا الإصدار، توجد ميزات جديدة أيضًا لتطبيقات Android و iOS.

الآن هناك إعدادان جديدان للموقع لإضافة دعم لروابط Apple العالمية عبر نقطة نهاية apple-app-site-association وروابط الأصول الرقمية من Google عند نقطة نهاية .well-known/assetlinks.json.

علاوة على ذلك، سنمنع ظهور شريط “معلومات مصغرة” التثبيت الأصلي أبدًا، ونلتقط الحدث الذي يظهر معه، ونؤجله حتى يستوفي المستخدم معاييرنا، والتي هي حاليًا مستوى الثقة 1.

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

تسجيل الدخول باستخدام Discord

أضفنا وظيفة discourse-plugin-discord-auth إلى النواة. سيتعطل المكون الإضافي تلقائيًا عند تحديث النواة، راجع: discourse/discourse-plugin-discord-auth@fd08678?w=1.

للحصول على تعليمات الإعداد، قم بزيارة Configure Discord Login for Discourse

تحسين أداء ذاكرة التخزين المؤقت المجهول

إليك ميزتان جديدتان لتحسين الأداء:

  • DISCOURSE_COMPRESS_ANON_CACHE (true|false، الافتراضي false): هذا يسمح لك بضغط خيارات ذاكرة التخزين المؤقت المجهول في Redis، وقد يكون مفيدًا للمواقع عالية الحمل مع Redis التي تعيش على خادم منفصل عن خوادم الويب.

  • DISCOURSE_ANON_CACHE_STORE_THRESHOLD (الافتراضي 2)، قم فقط بإدخال العناصر في Redis إذا لاحظناها أكثر من N مرة. هذا يتجنب الحالات التي يمكن فيها لخادم الزحف التنقل عبر كومة كبيرة من المواضيع وتخزينها جميعًا في Redis دون استخدامها أبدًا. وقت ذاكرة التخزين المؤقت المجهول الافتراضي للمواضيع هو 60 ثانية فقط. ذاكرة التخزين المؤقت المجهولة موجودة لتجنب تأثير “سلاش دوت” حيث يتم استهداف موضوع واحد من قبل مئات الأشخاص في دقيقة واحدة.

26 إعجابًا

المزيد!

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

تحديثات الأمان

يتضمن هذا الإصدار التجريبي 10 إصلاحات أمنية لمشاكل أبلغ عنها مجتمعنا و HackerOne.

  • إعادة تعيين كلمة المرور عند تفعيل حساب عبر موفر المصادقة
  • عدم إرسال رمز CSRF في سلسلة الاستعلام
  • ترقية nokogiri
  • إضافة حد للسرعة إلى تقارير أخطاء جافا سكريبت المجهولة
  • عدم الكشف عن تفاصيل الفئة للمستخدمين الذين لا يملكون صلاحية الوصول إليها
  • تقييد الوصول إلى message-bus على المواقع التي تتطلب تسجيل الدخول
  • اشتراط استخدام POST مع رمز CSRF لمرحلة طلب OmniAuth
  • تنظيف معرف البريد الإلكتروني لاستخدامه كمفتاح قفل متزامن (mutex)
  • إضافة شاشة تأكيد عند ربط الحسابات المرتبطة
  • التحقق من صحة معرف كتلة النسخ الاحتياطي

تحسينات الإضافات

Discourse Cakeday

  • تحديث الترجمات

Discourse Checklist

  • تحديث الترجمات

Discourse Math

  • تحديث الترجمات

Discourse Saved Searches

  • تحديث الترجمات

Discourse Policy

  • تحديث الأيقونة المهدرة

Discourse Invite Token

  • إصلاح: تم إهمال invite.via_email لصالح invite.emailed_status

Discourse User Notes

  • تحديث الترجمات
  • تحديث أسماء الأيقونات المهدرة
  • إزالة ملف package.json
  • تحديث أسماء الإعدادات وملف readme ليعكس إعادة التسمية إلى ملاحظات المستخدم
  • تحديث README.md
  • إصلاح: إعادة تسمية إعداد الموقع في قاعدة البيانات أيضًا.
  • إصلاح: يستخدم المسار الصحيح
  • تطوير: إعادة تسمية الملفات والدوال ومدخلات قاعدة البيانات بالإضافة إلى إصلاحين صغيرين

Discourse Translator

  • استخدام zh-Hans و zh-Hant كرموز لغة لواجهة برمجة تطبيقات مايكروسوفت
  • إصلاح: استخدام خيار HTML في مترجم مايكروسوفت
  • إصلاح المواصفات

Discourse Steam Login

  • جعل Rubocop سعيدًا

Discourse Amazon Login

  • إصلاح: تتحقق أمازون من عناوين البريد الإلكتروني.
  • جعل Rubocop سعيدًا

Discourse Canned Replies

  • تحديث الترجمات
  • تحديث أسماء الأيقونات المهدرة
  • إعادة هيكلة: إعادة هيكلة وتنسيق بسيطة
  • تطوير: إزالة إهمال sendAction
  • إصلاح: تحديد ارتفاع نافذة تعديل الرد على الأجهزة المحمولة

Discourse Oauth2 Basic

  • تحديث الترجمات
  • ميزة: الترحيل إلى ManagedAuthenticator
  • إصلاح: تجاهل user_ids المكررة عند ترحيل البيانات القديمة
  • جعل Rubocop سعيدًا
  • إصلاح: تجاهل القيم غير الرقمية عند الترحيل من تنسيق البيانات القديم

Discourse Chat Integration

  • تحديث الترجمات
  • تحديث أسماء الأيقونات المهدرة
  • إصلاح: الوصول إلى معاملات النص المنقول (transcript) بشكل صحيح
  • إصلاح: متغير محلي أو طريقة غير معرفة `site_setting_saved’
  • إصلاح: سيتم رفع خطأ إذا كان عدد الرسائل أقل من “skip_messages”

Discourse Graphviz

  • إضافة معرف إلى استدعاء واجهة برمجة التطبيقات decorateCooked
  • إصلاح: تسجيل الإضافة فقط إذا كانت مفعلة
  • إصلاح: عدم القيام بأي عمل إذا لم تكن مفعلة
  • إصلاح: يسمح بعرض رسومات بيانية متعددة في المعاينة
  • إصلاح: إزالة التعليقات تلقائيًا من تعريف الرسم البياني
  • إصلاح: السماح لتعريف الرسم البياني بأن يحتوي على أسطر فارغة
  • ميزة: استخدام svg=true لإجبار Graphviz على تجنب تحويل الصور
  • ميزة: عرض svg كـ svg فعلي واستبداله المضمن

Discourse Tooltips

  • إعادة هيكلة: إزالة نمط this.$()
  • أداء: تمكين ذاكرة تخزين مؤقت مجهولة لمدة 3 دقائق للأدوات التوضيحية
  • ميزة: إضافة دعم للحد من السرعة عند تراكم الطلبات

Discourse Signatures

  • تطوير: عدم اشتراط إعادة التشغيل لتفعيل التواقيع
  • إصلاح: تسلسل حقول المستخدم المخصصة الخاصة بهذه الإضافة فقط

Discourse Patreon

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

Discourse Code Review

  • تحديث الأيقونة المهدرة
  • تغييرات بعد ملاحظات سام
  • تطوير: إعادة تسمية مفاتيح i18n لأنها ليست مفاتيح تعدد صيغ i18n
  • تطوير: نقل مزامنة المستخدم إلى وحدة مستقلة
  • تطوير: نقل إنشاء الفئة إلى وحدة مستقلة
  • إصلاح: حالة سباق
  • إصلاح: تعطل سحب التزامن الفردي بسبب 079055c
  • ميزة: مزامنة التزامن غير المدمجة
  • ميزة: مزامنة حذف المنشورات مرة أخرى إلى Github
  • إعادة هيكلة: الأنماط القديمة والإهمالات
  • جعل Rubocop سعيدًا
  • تطوير: إضافة أدوات مساعدة لتنظيف المدخلات
  • ميزة: مزامنة طلبات السحب
  • تطوير: جعل Rubocop سعيدًا
  • إصلاح: جعل ثوابت السلسلة بحالة الثعبان العلوية
  • إصلاح: مزامنة المنشورات العادية فقط
  • إصلاح: تجاوز التحقق عند تحديث منشورات الإغلاق
  • إصلاح: تحديث node_id بعد عكس التعليق
  • ميزة: صفحة تكوين Webhook لـ Github
  • تطوير: إضافة اختبارات لعكس منشورات طلب السحب إلى Github كتعليقات
  • إصلاح: حالة سباق في إنشاء المنشور والموضوع

Discourse Styleguide

  • إعادة هيكلة: إزالة نمط this.$()
  • تحديث أسماء أيقونات FA 4.7 المهدرة والرابط
  • تحديث الرابط، تفاصيل إضافية لقسم الأيقونات
  • تجربة المستخدم: إصلاحات نمطية صغيرة
  • سرد جميع الأيقونات المتاحة في SVG Sprites

Discourse Characters Required

  • تحديث الترجمات

Discourse Solved

  • تحديث الترجمات
  • تجربة المستخدم: دمج النص مع الزر لتحسين التباعد
  • إعادة “تجربة المستخدم: دمج النص مع الزر لتحسين التباعد”
  • تجربة المستخدم: إذا لم أستطع إلغاء تحديد إجابة، أظهر نصًا بدلاً من زر
  • إزالة متغير غير مستخدم
  • إصلاح هامش نص زر الحل
  • إصلاح: تضمين المواضيع المحلولة سابقًا في الرفع التلقائي
  • إصلاح: إصلاح مجموعة الاختبارات بعد تغيير افتراضات الفئة المصطنعة
  • استبدال الأيقونة المهدرة

Discourse Calendar

  • إصلاحات أخطاء مختلفة وتحسينات في الأداء
  • إصلاح Prettier
  • جعل Rubocop سعيدًا
  • إصلاح: التأكد من أن المستخدمين النشطين فقط يمكنهم أن يكونوا في إجازة
  • تطوير: لن نقدم اختبارات تعتمد على الوقت (heisentests)
  • إصلاح: عدم محاولة التحقق من صحة منشور من موضوع لا يحتوي على تقويم
  • إصلاح: التأكد من أننا نتحقق من المنشور الأصلي وليس أي منشور
  • إصلاح نمط الكود البسيط
  • إصلاح: عدم تحويل تقويم إلى نص منسق إذا كانت الإضافة غير مفعلة
  • إصلاح Prettier

Discourse Plugin Discord Auth

(من هذا الإصدار، يتم تضمين دعم Discord في نواة Discourse، ولا تعد هذه الإضافة مطلوبة)

  • تطوير: الموافقة على المستخدمين باستخدام واجهة برمجة التطبيقات القابلة للمراجعة
  • إصلاح: يجب أن تكون send_email خاطئة
  • ميزة: ترحيل Discord إلى ManagedAuthenticator
  • تطوير: إزالة معلمات الاستراتيجية غير المستخدمة
  • إصلاح: تصحيح توقيع طريقة after_authenticate للسماح بإعادة الاتصال
  • تطوير: إزالة الاعتماد على omniauth-discord
  • ميزة: تغيير طريقة تقييد الوصول إلى trusted_guilds
  • تجربة المستخدم: تعريف مفتاح سري لـ Discord كإعداد موقع سري
  • تعطيل الإضافة تلقائيًا عند تحديث النواة مع دعم Discord
  • تجربة المستخدم: تحديث نص إعداد client_id

Discourse Prometheus

  • جعل Rubocop سعيدًا
  • تطوير: فحص الملف، محاولة عزل جذر استثناء قاعدة البيانات
  • تطوير: محاولة مسح الاتصالات بشكل عدواني
  • ميزة: تتبع عدد مكالمات SQL لكل نقطة نهاية HTTP
  • ميزة: تتبع أداء ذاكرة التخزين المؤقت المجهولة
  • تطوير: تسجيل قاعدة البيانات مبالغ فيه

Discourse Data Explorer

  • تحديث الترجمات
  • إعادة هيكلة: الأنماط القديمة والإهمالات والكود الميت
  • إضافة prettier
  • إصلاح prettier
  • إصلاح: منع تغيير كائن للقراءة فقط

Discourse Akismet

  • تحديث الترجمات
  • تحديث أسماء الأيقونات المهدرة
  • إصلاح: عدم إرسال عنوان IP/توقيع المستخدم للمستخدم عندما لا يكون متاحًا
  • إصلاح: التحقق دائمًا من وجود سيرة ذاتية قبل الإرسال إلى Akismet
  • التحقق من comment_content قبل الشطب
  • إصلاح: تخطي المستخدم إذا لم يكن client_ip موجودًا
  • تحديث وصف الاختبار المكرر
  • إصلاح rubocop
  • إعادة “التحقق من comment_content قبل الشطب”
  • ميزة: ربط بملف المستخدم إذا أمكن عند مراجعة AkismetFlaggedUsers
  • إصلاح: جعلها متوافقة مع ميزة ‘أصول CSS للإضافة غير المربوطة’.

Discourse Assign

  • تحديث الترجمات
  • تطوير: استخدام معرفات المجموعة للسماح بالتعيين على المجموعات
  • إعادة هيكلة: أنماط Ember القديمة والإهمالات والكود الميت
  • تطوير: استخدام واجهة برمجة تطبيقات زر الموضوع الجديدة
  • إصلاح: استخدام واجهة برمجة تطبيقات taskActions وإزالة الأزرار القديمة
  • تطوير: يتم إرسال المجموعات المسموح بتعيينها مع الاقتراحات. بعد حدوث الترحيل، سنحتاج إلى الاحتفاظ بالوصول إلى أسماء المجموعات المسموح بها حتى نتمكن من البحث عن المستخدمين.
  • إصلاح: إزالة استيراد غير مستخدم
  • تهيئة allowedGroups داخل المنشئ
  • جعل Rubocop سعيدًا
  • تجربة المستخدم: إضافة “مُعيَّن” إلى عنوان الصفحة لقائمة المواضيع المعينة
  • إصلاح: استخدام can_assign بدلاً من staff لإظهار نافذة التعيين بشكل صحيح

Discourse Voting

  • تحديث الترجمات
  • تطوير: تعريف category_custom_field كقيمة منطقية
  • إصلاح: استعادة الأصوات عند تعطيل التصويت في فئة
  • جعل Rubocop سعيدًا
  • أداء: تجنب N+1 عند تحميل الفئة
  • تطوير: استخدام واجهة برمجة تطبيقات addNavigationBarItem الجديدة
  • تطوير: نقل جزء من المبدئ إلى ما قبل المبدئ
  • إصلاح: تغليف الإضافات في reloadable_patch
  • إصلاح: إضافة سمة can_vote إلى جميع مصفوفات الفئات.
  • فحص
  • إصلاح: التأكد من أن الحاوية لم يتم تدميرها
  • إصلاح: منع أي عمل إذا لم تكن مفعلة
  • إصلاح: الحفاظ على توافق الإضافة مع إصدارات Discourse الأقدم
  • إعادة هيكلة: تنظيف CSS للإضافة
  • تجربة المستخدم: تغليف الصور الرمزية في نافذة تصويت منبثقة

Discourse AD

  • تحديث الترجمات
  • إصلاح: إعلانات DFP ذات الحجم الخاطئ عند استخدام أحجام متعددة
  • تطوير: ترحيل no_ads_for_groups لاستخدام المعرفات بدلاً من أسماء المجموعات
  • إصلاح: عدم ظهور إعلانات Amazon أبدًا
  • تطوير: ترحيل no_ads_for_groups لاستخدام المعرفات بدلاً من أسماء المجموعات
  • إصلاح: ظهور الإعلانات دائمًا في جميع المواقع لـ CodeFund و Carbon Ads
  • إصلاح: إعلانات CodeFund بين المنشورات في العرض الضيق
  • ميزة: إضافة خيار لتعطيل الإعلانات في الفئات المقيدة

الميزات الإضافية والإصلاحات

انقر للتوسيع

ميزات جديدة

  • دعم منفذ data-explorer في تنقل المجموعة
  • تتبع تاريخ آخر استخدام لمفتاح واجهة برمجة التطبيقات
  • تضمين موضوع مع بيانات وصفية مفصلة
  • تقارير ذاكرة التخزين المؤقت المجهولة البيانات إلى السجلات
  • إنشاء مهمة rake لتدمير الفئات
  • رأس HTTP جديد ‘Discourse-Render’
  • إشعار الناشرين عند استعادة المنشورات المرفوضة
  • عدم استبدال ↔ بإيموجي
  • نشر حالة القراءة على رسائل المجموعة. (أُدخلت في الأصل في #7989)
  • إضافة خطاف بعد جميع المبدئين
  • إضافة سمة العد التنازلي إلى [date]
  • الحماية ضد هجمات إعادة التشغيل عند استخدام TLS 1.3 0-RTT
  • السماح للإضافات بالتلاعب بإعدادات الموقع أثناء استعادة النسخ الاحتياطي
  • نشر حالة القراءة على رسائل المجموعة.
  • ستظهر الإيموجي المفضلة أيضًا في إكمال تلقائي للمحرر
  • نتائج الاستبيان للموظفين فقط
  • إضافة معاينة إلى منشئ الاستبيان
  • السماح للمظاهر بتجاوز متغيرات تحويل الألوان
  • مصادقة خارجية عند استرداد الدعوات
  • إضافة إعداد لعرض محتوى رسائل البريد الإلكتروني المحولة في المواضيع
  • إضافة خيار لإرسال مقتطفات دائمًا في رسائل البريد الإلكتروني
  • ذكر في فئة آمنة لإعطاء الأولوية للمجموعات
  • السماح بتمسك قفل معالجة المنشور لفترة أطول
  • إضافة منشأة اختبار إلى واجهة إدارة الكلمات المراقبة
  • تحسين الإحصائيات المقدمة بواسطة rake db:stats
  • توليد مفاتيح VAPID جديدة عند تغيير base_url
  • مزامنة حالة غير المقروءة مباشرة إلى قوائم المواضيع
  • إرفاق ملفات مرفقة برسائل البريد الإلكتروني الصادرة
  • إضافة مشغل بحث لعرض جميع الرسائل المباشرة من مستخدم
  • السماح للمستخدمين الذين لم يتعرضوا لعقوبات في آخر 6 أشهر بأن يكونوا TL3.
  • إنشاء مهمة rake لتدمير الفئات]
  • مكونات التاريخ/الوقت الجديدة
  • تحويل Gz إلى zip للتصدير
  • يتم ضغط تصدير المدير/المستخدم باستخدام تنسيق zip
  • إنشاء مهمة rake لتدمير الفئات
  • جعل Discourse يعمل دون اتصال مع WorkboxJS

إصلاحات الأخطاء

  • تحسينات محرر Safari على الأجهزة المحمولة
  • جعل ميزة ‘طلبات عضوية المجموعة’ متوافقة مع خيار مستوى الرؤية ‘logged_on_users’.
  • ضبط حجم المحرر لـ iPhone Xs Max و Xʀ
  • الإبلاغ عن المتحكم والإجراء المخزن مؤقتًا إلى السجلات
  • التأكد من أن google classic لديها إيموجي man_facepalming الصحيح
  • تضمين ‘short_url’ كمصدر إذا لم يكن عنوان URL للتحميل موجودًا
  • إغلاق بطاقة المستخدم بعد النقر على زر الرسالة
  • معالجة نافذة المصادقة لـ Safari مع خصوصيات ملفات تعريف الارتباط من نفس الموقع
  • إشعارات المستخدم للمنشورات المرفوضة
  • يجب أن يحصل المستخدم على إشعار عند حذف منشور
  • المجدول المعطل عند تغيير per_host <-> العالمي
  • السماح بالوصول إلى الكائنات المتداخلة ضمن إعدادات المظهر
  • في حالة وجود سجلات مستخدم يتيم، تخطي الشارة
  • يجب أن يكون النبض لكل مضيف
  • الإشعارات لا تتحدث بشكل صحيح من علامة التبويب الخلفية
  • لم يتم حفظ سجل المظهر البعيد عند التحقق من التحديثات
  • تجنب نشر التغييرات إذا تم حذف الموضوع
  • تضمين مؤشر القراءة عند تمكين publish_group_state
  • أدى تجاوز نص لمفتاح جمع غير موجود إلى خطأ
  • التأكد من عمل إعادة تحميل CSS للمظهر لأول مرة
  • عرض turbo_rspec الأخطاء في المجموعات المشتركة بشكل صحيح
  • حالة سباق أثناء النشر لإنشاء أوراق الأنماط
  • عدم البحث عن الوسوم عند تعديل عنوان الموضوع
  • عدم التسبب في انهيار إذا لم يعد الموضوع موجودًا
  • عند التفعيل عبر omniauth، إنشاء الرموز بعد إعادة تعيين كلمة المرور
  • عند تفعيل مستخدم، التأكد من أن التغيير ينعكس فورًا
  • السماح للوحة التحكم بالتحميل حتى لو لم يتم العثور على إصدار git
  • عرض القراء الفعليين في المنشور الأول
  • التأكد من أن أحجام الصور الرمزية أعداد صحيحة
  • استخدام حجة التطبيق فقط لراية تطبيق iOS الرسمي
  • إظهار من قرأ فقط إذا كانت السمة مفعلة
  • تحديث مجموعات المواضيع بشكل صحيح
  • لم يعمل تجاوز نصوص _MF لـ en_US
  • عند استخدام عنوان URL مخصص للمصادق، إرسال الطلب باستخدام GET
  • لم يتم حساب add_to_serializer سلاسل الوراثة بشكل صحيح
  • عدم عرض راية PWA عند استخدام التطبيق الأصلي
  • إزالة علامة النسبة المئوية المكررة من رسائل الخطأ
  • فحص النبض لكل عملية sidekiq
  • يسمح mini-tag-chooser بجلب الوسوم في الخلفية
  • تصفية المنشورات المخفية لـ wordpress
  • عدم تعيين كوكي destination_url بعد حذف حسابك.
  • حلقة لا نهائية عند الذكر في IE11
  • تحميل أصول CSS للإضافة الخاصة بسطح المكتب والأجهزة المحمولة بشكل صحيح.
  • السماح بتحرير الموضوع عند استخدام وسم مخفي
  • حالة سباق في معالجات الاحتياط
  • عدم محاولة حذف المدراء والمشرفين المؤجلين وغير المستخدمين
  • إعادة تعيين امتداد الرفع المجهول بانتظام
  • تقييد راية تثبيت PWA على Android فقط حاليًا
  • يظهر مؤشر القراءة فقط عند تمكين إعداد المجموعة
  • التأكد من أن الإضافات المحلية متاحة للموظفين فقط
  • التأكد من أن الإزاحة دائمًا موجبة
  • يمنع القائمة الجانبية المحمولة من إنشاء خطأ عند إلغاء تسجيل أحداث النقر
  • استخدام نمط أبسط لـ href المخصص لعناصر التنقل الإضافية
  • Rack-mini-profiler لا يعرض إطارات الإضافة
  • إعادة تعيين J/K للتنقل الاختيار الحالي عند التمرير بسرعة.
  • تعيين مستويات الإشعار بشكل صحيح على دعوة المجموعة
  • عند دعوة مجموعات للمراسلة، احترام حالة التتبع
  • اشتراط topic_query_params صراحة
  • مسح ذاكرة تخزين مؤقت لموضوع الراية بعد إعادة الخريطة
  • التأكد من أن التقارير لا يمكنها تعديل السجلات
  • تصحيح حالة سباق عند تحميل المكتبة
  • الاحتفاظ بقفل موزع مرتبط بـ s3 لفترة أطول
  • تخزين السمات المخصصة التي تحتاجها الإضافات في حمولة queuedpost
  • محاولة استخدام المعلمات من addDiscoveryQueryParam
  • تحويل أسماء المصادق omniauth إلى رموز قبل المقارنة
  • عدم رفع استثناء إذا كان البريد الإلكتروني للمصادق مفقودًا
  • تحويل البريد الإلكتروني القادم من موفر المصادقة إلى أحرف صغيرة
  • استبدال استخدام النموذج باستعلام SQL
  • الترتيب الصحيح لتقرير post_edits، وإزالة حد الاستعلام
  • الاستعلام الصحيح لتقرير لوحة معلومات post_edits
  • إزالة ملفات المخزون المؤقتة بعد فحص تحميلات s3.
  • RIP قوائم السحب من الداخل على Android
  • عدم تحديث إشعارات watching_first_post عند نقل المنشور الأول
  • قد يتسبب المستخدمون الموثوق بهم في إخفاء المحتوى بعلامة واحدة
  • منع إعادة الخريطة الفاشلة أثناء الاستعادة
  • تقصير topic_links.url إلى 500 حرف أثناء إعادة الخريطة
  • عدم إنشاء إشعار إعجاب مزدوج.
  • يحصل المعيار الثاني الفارغ على اسم افتراضي
  • Polyfills String.prototype.repeat لـ IE
  • منع المستخدم من حذف نفسه عند نشر المستخدم في الرسائل الخاصة
  • استخدام #dup بدلاً من #+@ لأن المحتوى يمكن أن يكون مثيلًا لـ Nokogiri::XML::Element.
  • إسقاط وظيفة readonly عند إسقاط الجدول
  • إنشاء وظائف readonly أثناء النسخ الاحتياطي
  • كشف وكيل مستخدم DiscourseHub.
  • منح شارة ‘أول Onebox’ فقط لعناوين URL المضمنة.
  • الترتيب الصحيح لمسار OmniAuth
  • الإشعار عند تحديث Reviewable.
  • بدأ تعليمات discobot الخاطئة لبعض اللغات.
  • إزالة الاعتماد على present؟ في مكتبة distributed_mutex
  • ترميز أسماء الملفات غير ASCII بشكل صحيح في رأس HTTP
  • عدم اتباع إعادة التوجيه على نفس المضيف مع المسار /login أو /session
  • يسمح باستبدال أرقام ورموز الإيموجي
  • فشل تضمين المواضيع مع بعض HTML
  • عدم إخفاء/إغلاق المواضيع إذا لم تلتزم بالحد الأدنى للرؤية
  • استخدام العنوان غير المحرر كمعرف combo-box
  • كانت تحميلات s3 تفتقد إلى رأس cache-control
  • التأكد من أن تقرير flag-ratio يظهر المستخدمين الذين اختلفوا >` اتفقوا
  • إظهار رابط طلبات العضوية لمالكي المجموعة فقط.
  • يجب أن يكون المتحكم المولد في مجلد محدد بـ underscore
  • التأكد من أن pikaday picker يظهر في UTC
  • يسمح بنسخ ولصق ملف في المحرر مع Chrome
  • خطأ في الصيغة في b1f5949
  • جعل مسار workbox متوافقًا مع المواقع المتعددة
  • معاينة المحرر على IE11
  • إعادة تسمية أيقونة “refresh” المهدرة إلى “sync”
  • اكتشاف أفضل لمتصفحات Apple
  • تحسينات مختلفة على الكلمات المراقبة
  • عدم تضمين مسار تحميل الموقع المتعدد في عنوان URL للمصدر إذا كان موجودًا بالفعل.
  • جعل استعادة التحميلات متوافقة مع المواقع المتعددة.
  • تحديث الردود بشكل صحيح عند نقل المنشور الأول
  • تم استدعاء modal onClose بشكل متكرر
  • التراجع عند رفع استثناءات في اختبارات الموقع المتعدد
  • عدم إعادة استخدام اتصالات redis في خيوط مختلفة في الاختبارات
  • اعتماد تحميلات Gravatar على authorized_extensions.
  • DistributedMutex
  • رسالة خطأ أفضل عند تحديث اسم المستخدم من صفحة مستخدم المدير.
  • إعادة إضافة خيار verbose إلى DbHelper.remap
  • إضافة frozen_string_literal: true في الترحيل
  • منع prevent-user-notifications-dropdown من إحداث تغييرات غير مقصودة
  • Post#each_upload_url يولد مسارًا غير صحيح للكتلة عند تمكين CDN.
  • جعل المبدئ يعمل في أول db:migrate
  • تحديد Edge القائم على Chromium بشكل صحيح
  • دعم أوراق الأنماط متعددة الملفات في مكونات المظهر
  • رسالة خطأ أفضل عند فشل SSO بسبب سرية فارغة
  • تضمين التسمية الافتراضية عند تصدير التقارير
  • توفير رسالة خطأ إذا لم يتم تحديد وسوم صالحة
  • خطأ سلسلة مجمدة في TopicEmbed.import
  • إخفاء المنشورات المحملة مباشرة من المستخدمين المتجاهلين
  • إعادة #18e2816
  • استخدام نفس المعرف لكل من المخزون الأصلي والمحسن في إعداد الموقع المتعدد.
  • تطبيق قيود الافتراضات على تنسيق المسارات (جولة 2)
  • الحفاظ على وجود معاملات الاستعلام في auth_redirect
  • التأكد من أن الوظائف لا تعمل فورًا بعد migrate_to_s3
  • تحسين فحص الوسوم عند تحديث فئة الموضوع
  • إزالة سياق غير مصنف إذا لم يكن مسموحًا به في المحرر
  • إرسال featuredLink كـ featured_link إلى الخلفية لتحديث الصحيح …
  • إرسال featuredLink كـ featured_link إلى الخلفية لتحديث القيمة الصحيحة
  • استخدام uniq بدلاً من uniq! عند التحقق من المسار الجذر غير المضغوط. استخدام اصطلاح تسمية rails لـ ZipUtils
  • حاولت الترحيلات تغيير سلسلة مجمدة
  • تحديث عدد الردود عند نقل المنشورات
  • حذف الإشعارات التي لا يمكن للمستخدمين رؤيتها بعد نقل المنشورات
  • لم تكن الإشعارات القديمة ترتبط بالمنشور الصحيح بعد نقل المنشور
  • يسمح بتحديد سمات camelCased في مكون wrap
  • تعيين حد أدنى لوقت القراءة لكل منشور.
  • دائمًا احتفظ محليًا بالتحميل بالإضافة إلى الملفات المخزنة على S3
  • عدم طلب التحديث عند طلب ‘تسجيل الخروج من الكل’
  • إظهار نفس اسم المستخدم أو الاسم لإشعارات المنشور.
  • أسماء نسخ احتياطي فارغة مع عناوين مواقع unicode]
  • ترميز عناوين URL لأسماء المستخدمين في روابط ملف المستخدم في خلاصات RSS
  • إزالة إنشاء سجل تحميل المنشور داخل طريقة ‘find_missing_uploads’.
  • أخطاء تمنع إغلاق نافذة حذف الحساب بالزر
  • سلسلة لا يمكن ترجمتها في واجهة المستخدم للكلمات المراقبة
  • أسماء نسخ احتياطي فارغة مع عناوين مواقع unicode
  • احترام إعداد logout_redirect على ‘تسجيل الخروج من الكل’
  • عندما يبدأ ‘raw’ بعنوان URL تحميل غير صورة، لا يتم تحويله إلى short-url.
  • تحويل عناوين URL غير الصور المرتبطة حرارياً إلى عنوان URL قصير.
  • إزالة جميع عمال الخدمة من أجهزة Apple مرة أخرى
  • إعادة تسمية الأيقونات المهدرة، السماح بالأيقونات المخصصة في الشارات
  • إعادة تجميع أصول المظهر extra_js عندما يتغير COMPILER_VERSION
  • العودة إلى ضغط gzip إذا لم يتم دعم brotli
  • تخطي تحويل النص المنسق لعناوين URL غير الصور المرتبطة حرارياً
  • النسخ الاحتياطي الذي تم إجراؤه بواسطة pg_dump >= 11 غير محمول
  • تطبيق قيود الافتراضات على تنسيق المسارات
  • التأكد من أن الفئات المكبوتة لا تنتج أي مواضيع مميزة.

تغييرات تجربة المستخدم

  • استخدام Flexbox لتضمين قائمة المواضيع
  • استخدام vertical-align: middle بدلاً من وحدات em
  • استخدام متغير كود اللون
  • تحويل هيكل HTML لقائمة المواضيع المضمنة من جدول إلى div
  • تحسينات مؤشر القراءة.
  • إزالة السلاسل غير المستخدمة حول إشعارات سطح المكتب
  • متابعة صغيرة لـ #8047
  • محاذاة أفضل للوسوم في الرأس
  • حل مشكلة autocomplete في Chrome في البحث
  • إصلاح التخطيط لصناديق الفئات مع أسماء فئات فرعية طويلة
  • منع صور الاقتباس غير المضاءة من التمدد/الضغط
  • إخفاء خيار “إنشاء وسم” إذا لم يتمكن المستخدم من إنشاء وسم.
  • مكان متسق لمنفذ plugin outlet category-title-before
  • إضافة رابط إلى محرر robots.txt في وصف إعداد الموقع
  • العودة إلى اسم موفر المصادقة غير المحلي إذا لزم الأمر
  • منع iframe Onebox من Twitter من أن يكون أطول من عرض شاشة الهاتف المحمول
  • تحسين معالجة الأخطاء لاستثناءات OmniAuth الشائعة
  • تعديل قالب البريد الإلكتروني للإدارة ليكون لديه مساحة أكثر للنموذج
  • مسح اسم المستخدم عند فتح نافذة مدة التجاهل
  • إخفاء أزرار رأس تسجيل الدخول/التسجيل أثناء تدفقات المصادقة
  • إضافة أيقونة زر تسجيل الدخول إلى صفحة no_ember
  • تحسين تخطيط نافذة منشئ الاستبيان
  • تحسين التواريخ في واجهة المستخدم لتصدير التقارير
  • استخدام تسميات أيام الأسبوع الأقصر في إضافة local-dates
  • استخدام تسميات أيام الأسبوع الأقصر في منتقي التاريخ
  • إعادة تسمية “Keep Post” إلى “Keep Post Hidden” عند إخفائه
  • إصلاحات نمطية لصفحة معاينة ملخص البريد الإلكتروني للإدارة
  • إزالة الحدود المربكة في قائمة المستخدمين المتجاهلين
  • جعل مشاهدات الملف الشخصي متسقة مع العناصر الأخرى
  • منع تواريخ الطهي من الالتفاف
  • إظهار تحذير عند النقر على حفظ المدير دون إضافة مجموعة عند تغيير أذونات الفئة
  • زيادة تباين نص سبب التثبيت/التتبع، تحسين التخطيط
  • تحسين ارتباط الحساب عند غياب وصف الحساب
  • إضافة فئة expanded/collapsed إلى post-controls
  • إصلاح المحاذاة العمودية لأيقونة Onebox favicon
  • تحسين تخطيط عناوين الوسوم الطويلة على الأجهزة المحمولة
  • إعادة هيكلة نافذة تحميل الصورة الرمزية لتباعد أفضل على الأجهزة المحمولة
  • تحديث رسالة “غير موجود” للدعوة
  • إصلاح تباعد عنصر التحكم في تحميل صورة الملف الشخصي على الأجهزة المحمولة
  • إضافة وسم <a> مع عنوان href لصناديق الفئات
  • إزالة النص المكرر في تفضيلات المكون الثاني
  • استخدام متغيرات لون SCSS
  • تعطيل إشعارات تحرير النظام افتراضيًا
  • تبديل أقسام التجاهل والصامت لنقل زر “حفظ التغييرات” إلى الأسفل
  • استخدام الارتفاع النسبي لنافذة العرض لمنطقة نص robots.txt
  • إعادة ترتيب عناصر التحكم في نوافذ التعديل

الأداء

  • استخدام عنوان URL لـ CDN لوكيل favicon
  • تشغيل خيوط متعددة لجدولة الوظائف العادية
  • تقليل نافذة الاتساق على إجراءات المستخدم
  • تجنب تصفية المسودات المشتركة عند عدم استخدامها
  • تحديد الحقل الوحيد الذي نستخدمه فقط
  • حساب مسبق آخر منشور قرأه عضو في المجموعة
  • حساب أسرع لطول جسم المحرر
  • تجنب N+1 على عرض الموضوع
  • تعمل مهمة Rake posts:rebake_uncooked_posts مضمنة
  • سيتم تأخير message_bus من قبل الخادم عند الفيضان
  • إضافة المزيد من القيود على استخدام ذاكرة التخزين المؤقت
  • تحسين سرعة الاستعلام عند البحث عن رسائل خاصة مباشرة
25 إعجابًا