غير قادر على استبدال topic-list-item.raw.hbs / topic-list-item.hbr على الهاتف المحمول

مرحباً بالجميع،

أعمل على تخصيص عدة جوانب من Discourse الافتراضي، وبناءً على ذلك، أحتاج إلى تخصيص عنصر topic-list-item الذي يبدو بسيطاً نسبياً. أضفت ملفاً في ثيمي تحت المسار javascripts/discourse/templates/components/topic-list-item.hbs وأستطيع وضع الكود الخاص بي هناك. ومع ذلك، هنا تبدأ الأسئلة في الظهور.

توجد طريقة في المكون لهذا القالب تسمى renderTopicListItem، وهي المسؤولة عن تعيين خاصية topicListItemContents التي يتم عرضها افتراضياً. راجعوا:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/templates/components/topic-list-item.hbs

السؤال الأول: لماذا؟ لماذا نحتاج إلى فعل ذلك؟ لماذا لا نضع كود Handlebars كما هو معتاد؟

لتجنب التدخل كثيراً في الكود الأساسي، قررت ترك topic-list-item كما هو واستبدال ملف topic-list-item.raw.hbs في ثيمي، وهذا يعمل دون مشاكل.

ومع ذلك، كنت أتوقع أن إضافة ملف مثل javascripts/discourse/templates/mobile/list/topic-list-item.raw.hbs في ثيمي سيستبدل العرض للجوال، لكنه لم يفعل.

لا تزال الطريقة findRawTemplate ترجع القالب الافتراضي للجوال من Discourse والذي يحتوي على:

حتى عند إجراء تعديلات يدوية داخل مشروع Discourse المحلي، لم أتمكن من تحديث إصدار الجوال بالتغييرات.

أتمنى أن يكون الشرح واضحاً، وأن يكون لدى أحدكم معرفة بالموضوع. يبدو الأمر معطلاً حقاً حالياً، وربما نرغب في إصلاحه إذا كان معطلاً بالفعل (يمكنني القيام بذلك إذا فهمت ما يحدث بشكل أفضل).

في غضون ذلك، سأواصل البحث عن إجابة بنفسي وأحدّث بأي أخبار. فيما يلي صورة متحركة صغيرة لما أراه في بيئتي المحلية.

http://g.recordit.co/AtOJlltJ8o

تحديث: قمت أيضاً بتحديث الامتداد من raw إلى .hbr نظراً لتغيير الملفات في أحدث تعديلات، لكنني ما زلت غير قادر على جعل الأمر يعمل.

لقد اختبرته للتو وأرى نفس المشكلة… لا يمكنني تجاوز هذا القالب على الإطلاق. يبدو أن هذا حدث خلال اليوم أو اليومين الماضيين. هل يمكن أن يكون هذا مرتبطًا بالتبديل إلى hbr @markvanlan؟

عند إنشاء هذا الموضوع، كان إصدار discourse المحلي يعود إلى 17 يناير، إن لم أكن مخطئًا. وبهذا الصدد، واجهت المشكلة مع ذلك الإصدار، وبعد التحديث بأحدث التغييرات وإعادة التسمية من raw.hbs إلى hbr، ما زلت أعاني من نفس المشكلات.

حتى الآن، قمت بالتخصيص من خلال javascripts/discourse/templates/components/topic-list-item.hbs، ولكن من المثالي أن تتصرف القوالب الخام (raw templates) مثل القوالب الأخرى (من حيث الاستبدال والتخصيص).

@awesomerobot إذا قمت بفحص الالتزام السابق مباشرةً لتغيير hbr، فهل يعمل؟

أهلاً، شكرًا على التاريخ يا @duranmla… إنها مشكلة قديمة بعض الشيء يا @markvanlan، أعمل الآن على تتبعها.

معلومة إضافية: لم ألاحظ أن هذه المشكلة تؤثر على https://meta.discourse.org/t/topic-list-previews/101646، والتي تتجاوز عنصر قائمة المواضيع الخام على الجوال. https://github.com/paviliondev/discourse-topic-previews/tree/master/assets/javascripts/discourse/templates/mobile/list تم اختبار هذا فقط على حالة “اختبارات ناجحة”.

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

أعتقد أن المشكلة تكمن فعلياً في تعهد hbr الخاص بـ @markvanlan (https://github.com/discourse/discourse/commit/3e897749084faeb29eb9a524d3f3b3f1d46a8738)، آسف على التردد في ذلك.

للتجربة، أضفت هذا إلى وسم </head> في السمة الحالية عبر قسم التخصيص في لوحة الإدارة:

<script type='text/x-handlebars' data-template-name='mobile/list/topic-list-item.raw'>
  test
</script>

قبل هذا التعهد، كان كل شيء يعمل بشكل صحيح، ولكن بمجرد تطبيق ذلك التعهد ثم إعادة تطبيق التخصيص، يتم تجاهل القالب.

ربما كنت مرتبكًا في النهاية، ظننت أنها أقدم من ذلك. سأبقى متابعًا لهذا الموضوع في أي حال. شكرًا لك على الرد السريع في تتبع هذا الأمر @awesomerobot

تم إصلاح المشكلة الآن إذا قمت بسحب أحدث إصدار

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

مع ذلك، قمت بالتحديث ولا يزال الخطأ قائمًا عند العمل مع هيكل مشروع السمة (والذي يُعد على الأرجح الأكثر استخدامًا للمشاريع المتوسطة والكبيرة). سأشارك هنا فيديو يُظهر الخطأ: https://www.loom.com/share/d3f437347c8f4d5aa4dd1c7ce08e1bf9

ملاحظة جانبية: سأبقي الفيديو متاحًا لبعض الوقت في حال كان مفيدًا لأحد لفهم المشكلة وإعادة إنتاجها. وسأحتاج إلى حذف الفيديو بعد بضعة أسابيع :grimacing:

ملاحظة: جربت أيضًا إعادة التسمية إلى topic-list-item.raw.hbs بدلاً من topic-list-item.hbr، والمشكلة نفسها.

إنه يعمل معي باستخدام مجلد javascripts (سواء باستخدام الامتداد القديم أو الجديد).

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