الإعلان الرئيسي غير متمركز في قائمة المواضيع (محاذٍ لليسار)

الملخص

لم تعد الإعلانات الداخلية المعروضة في موضع topic-list-between تتوسط عرض قائمة المواضيع. بدلاً من ذلك، تظهر بمحاذاة لليسار (مقيدة بمنطقة العمود الأول). يبدو هذا وكأنه تراجع ناتج عن جعل وسم مكون house-ad بدون وسم، مما يكسر دلالات الجدول.


خطوات التكرار

  1. اذهب إلى المسؤول ← المكونات الإضافية ← الإعلانات
  2. أنشئ إعلانًا داخليًا (House Ad)
  3. قم بتمكينه للموضع: topic-list-between
  4. قم بزيارة الصفحة الرئيسية (أو أي قائمة مواضيع تستخدم تخطيط الجدول القياسي)
  5. لاحظ محاذاة الإعلان الداخلي

السلوك المتوقع

يجب أن يتم عرض الإعلان الداخلي في المنتصف عبر العرض الكامل لقائمة المواضيع (يمتد عبر جميع الأعمدة)، كما كان الحال سابقًا.


السلوك الفعلي

الإعلان الداخلي محاذٍ لليسار ويشغل فقط الجزء الأيسر من الجدول (تقريبًا مساحة “عنوان الموضوع”)، بدلاً من أن يمتد عبر الصف.


التحليل التقني

يبدو أن هذا ناتج عن ترميز جدول غير صالح ينتجه مكون house-ad.

الملف:
plugins/discourse-adplugin/assets/javascripts/discourse/components/house-ad.gjs

المكون بدون وسم:

@tagName("")
export default class HouseAd extends AdComponent {

لكنه يعرض div مع سمة colspan:

<div
  colspan={{this.colspanAttribute}}
  class={{concatClass "house-creative" this.adUnitClass}}
  ...attributes
>

سبب التعطل

  • تعمل colspan فقط على <td> / <th>، وليس على <div>.
  • في جدول قائمة المواضيع، ينتهي الأمر بهذا كـ <div> مباشرة داخل <tr>، وهو ترميز HTML غير صالح ويتسبب في قيام المتصفح بتخطيطه بشكل غير صحيح (عادةً ما يتم تصغيره إلى منطقة العمود الأول).
  • يتحقق منطق colspanAttribute() مما إذا كان this.tagName === "td" (أو ما يعادله)، ولكن نظرًا لأن المكون بدون وسم، فإنه لا يصبح أبدًا "td"، وبالتالي لا يتم تطبيق colspan بفعالية.

مصدر التراجع المحتمل

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


البيئة

  • إصدار Discourse: الأحدث (اجتاز الاختبارات)
  • المكون الإضافي للإعلانات: discourse-adplugin المضمن
  • المتصفحات التي تم اختبارها: Chrome + Firefox (يبدو أنها مستقلة عن المتصفح)

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