مرحباً بالجميع،
لقد بدأنا هذا الأسبوع أول سباق (sprint) لتخصيص قالب Discourse الخاص بنا. كنا ندرك أننا سنقوم بتعديل عدد كبير من الملفات، حيث أن التصاميم تختلف بشكل كبير عن قوالب Discourse الافتراضية.
إن نهجنا بسيط جداً: نحاول تحقيق ما نحتاجه باستخدام SASS فقط، وعند الضرورة نقوم بتجاوز ملفات .hbs/.hbr المحددة. نحن ندرك أن هذا الإجراء الأخير يُدخل بعض مخاطر الصيانة الإضافية (إذا تم إعادة تسمية أو إزالة السمات الممررة إلى العرض، فإن قوالبنا ستتعطل). قارنا بين خطر حدوث ذلك وبين مخاطر الحفاظ على بنيتنا التحتية الخاصة، واستنتجنا أن الاستضافة على discourse.org تقدم قيمة أكبر لعميلنا غير الربحي. سنقوم بإضافة كود مراقبة إلى الموقع ووضع خطة استجابة للتعامل مع أي تعطل قد يحدث - كما أننا نعتقد أنه إذا حدث ذلك، فسيكون من السهل إصلاحه على الأرجح.
والآن، لننتقل إلى صلب الموضوع. نحتاج إلى معرفة كيفية تحويل عرض قائمة المواضيع إلى تجربة تشبه “التغذية” (feed). أي أن المنشورات الردية تحت كل موضوع يتم عرضها كتعليقات.
إليك صورة لما نحتاج إلى بنائه (تعرض حالياً تعليقاً واحداً فقط لكل موضوع - سنحتاج في بعض الأحيان إلى عرض أكثر من ذلك):
أين نحن الآن
لذلك، غاص @iainbamboo في التفاصيل لمعرفة ما يلي:
- هل بيانات المنشورات متاحة بالفعل في قائمة المواضيع ونحتاج فقط إلى تغيير القالب؟ → لا، ليست متاحة.
- كيف يمكننا إضافة بيانات منشورات كل موضوع إلى القائمة حتى نتمكن من عرضها في القالب؟
- هل هذا هو النهج الصحيح أصلاً؟
- هل نبحث عن تعديل كود Ruby لإضافته إلى النموذج المرسل (ربما كإضافة) على غرار هذا المثال Discourse Timeline. وإذا قمنا بإنشاء إضافة، هل يمكننا استخدامها على discourse.org؟
- هل يمكننا جلب البيانات من Ember وتحمل تكلفة التحميل الأبطأ بسبب إجراء عدة طلبات Ajax إلى الخادم للحصول على منشورات كل موضوع (مما يحمل خطر الوصول إلى حدود المعدل)؟
- هل يمكن القيام بذلك دون تعديل كود Ruby؟
بعد البحث بشكل كبير - وقراءة أدلة مطوري Discourse ومراجعة كود المصدر - استنتجنا أننا نحتاج إلى مشورة خبير حول أفضل طريقة لمعالجة هذا الأمر.
والآن نحن هنا ![]()
