يشرح هذا الدليل كيفية تكوين واستكشاف الأخطاء وإصلاحها للواحد بوكس (oneboxes) في Discourse. يغطي إعدادات المسؤول، وكيفية عمل الواحد بوكس، والخطوات اللازمة لحل المشاكل الشائعة.
مستوى المستخدم المطلوب: مسؤول
الواحد بوكس هي معاينات روابط غنية يمكن للمستخدمين إنشاؤها في مشاركاتهم. بينما يمكن للمستخدمين إنشاء هذه المعاينات بسهولة، يتمتع مسؤولو الموقع بضوابط إضافية وقد يحتاجون إلى استكشاف الأخطاء وإصلاحها عندما لا تظهر الروابط كما هو متوقع.
تكوين المسؤول
لإدارة إعدادات الواحد بوكس:
- اذهب إلى لوحة المسؤول
- انتقل إلى قسم إعدادات الموقع
- ابحث عن “onebox”
ستظهر لك قائمة بالإعدادات المتعلقة بالواحد بوكس:
تشمل بعض الإعدادات البارزة:
post onebox maxlength: يتحكم في كمية النص المدرجة في الواحد بوكسmax oneboxes per post: يحدد عدد الواحد بوكس التي يمكن أن تظهر في مشاركة واحدة (الافتراضي: 50)enable inline onebox on all domains: يمكّن الواحد بوكس المضمنة على جميع النطاقات، محولة عناوين URL العادية إلى عناوين مرتبطة (على سبيل المثال،https://en.wikipedia.org/wiki/Fun_(band)تصبح “Fun (band) - Wikipedia”). هذا مفعّل افتراضيًا.blocked onebox domains: يسمح لك بتعطيل الواحد بوكس لنطاقات محددةblock onebox on redirect: عند تفعيله، يمنع إنشاء الواحد بوكس لعناوين URL التي تعيد التوجيه إلى وجهة مختلفة
كيف يعمل الواحد بوكس
عند تضمين رابط في مشاركة، يزور Discourse صفحة الوجهة ويبحث عن وسوم Open Graph أو oEmbed، بما في ذلك:
- عنوان الموقع
- العنوان
- الصورة المميزة
- أيقونة الموقع (أو أيقونة المفضلة)
- الوصف (إلزامي)
- سعر المنتج (إذا كان ذا صلة)
يتطلب Discourse وجود وسم الوصف وأن يحتوي على نص كافٍ لتلخيص الصفحة. بدون ذلك، لن يتم إنشاء الواحد بوكس للرابط المستهدف.
إليك مثال على واحد بوكس لـ https://discourse.org يظهر عنوان الموقع والصورة المميزة والأيقونة والوصف:
استكشاف الأخطاء وإصلاحها
إذا لم تعمل الواحد بوكس كما هو متوقع، جرب الخطوات التالية:
-
اختبر الموقع باستخدام iFramely:
- الصق الرابط وتحقق مما إذا كان يستخدم وسوم OpenGraph أو oEmbed الصحيحة
- تأكد من وجود نص الوصف وأنه كافٍ
-
تحقق مما إذا كان طلب الواحد بوكس محظورًا:
- قد يحجب بعض المضيفين وكلاء مستخدمين “مجهولين”
- تأكد من أن موقع الويب المستهدف لا يحجب وكيل مستخدم Discourse
-
بالنسبة للروابط الداخلية التي لا تظهر كواحد بوكس:
- تأكد من أن الرابط ليس في فئة آمنة
- الروابط الداخلية تُنشئ الواحد بوكس فقط في الفئات العامة أو داخل نفس الفئة لأسباب أمنية
من وحدة تحكم rails، يمكنك إلغاء الاستدعاء/جلب الواحد بوكس صراحةً عن طريق استدعاء الطرق أثناء الاختبار عن طريق القيام بما يلي:
[1] pry(main)> Oneboxer.invalidate(url)
=> 0
[2] pry(main)> Oneboxer.onebox(url)
=> "<aside class=\"onebox …(مختصر)\""
[3] pry(main)> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)> InlineOneboxer.lookup(url)
=> {url: "https://example.com", title: "عنوان الصفحة النموذجية"}
