عناصر قائمة الموضوع أزرار التذييل - محتوى المخطط الزمني

مرحباً! أعمل على مفهوم محتوى “الجدول الزمني” لمجتمع يستخدم Discourse.

كلتا الزرّين “رد على” و"مشاركة" هما للتجربة. لقد قمت بإنشاء مكون مثل topic-footer-buttons.hbs (#ember) مع بعض التغييرات

<div class="topic-list-item-footer-buttons">
  {{#each inlineButtons as |button|}}
    {{d-button
      class=(concat "btn-default topic-list-item-footer-buttons " button.classNames)
      action=button.action
      icon=button.icon
      translatedLabel=button.label
      translatedTitle=button.title
      translatedAriaLabel=button.ariaLabel
      disabled=button.disabled}}
  {{/each}}
</div>

إذا قمت بإدراج هذا المكون في topic-list.hbs أسفل قالب topic-list-item، فإنه يعمل! لكن هذا ليس جيداً لعمليات الترقية المستقبلية لإصدار Discourse أو لتنفيذ الإضافات. لذلك، أحاول التلاعب عبر لوحة الإدارة → تخصيص → عام → رأس الصفحة (HTML)، مع تعديل topic-list-item.raw.

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

لكن ظهرت مشكلة أخرى، لا أستطيع استدعاء المكون من قالب text/x-handlebars. هل هناك طريقة لاستدعاء مكون أزرار التذييل الخاص بي داخل قالب topic-list-item.raw؟ مثل مساعد (helper) أو أداة (widget) يمكنها استدعاء المكون؟

سأكون ممتناً جداً لمساعدتكم حتى أستطيع إزالة شكوكي مرة وإلى الأبد.

3 إعجابات

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

https://github.com/paviliondev/discourse-topic-previews/blob/master/assets/javascripts/discourse/helpers/preview-helpers.js.es6#L8

يتم التعامل مع نقر الزر في مكون عنصر قائمة الموضوع، على سبيل المثال:

https://github.com/paviliondev/discourse-topic-previews/blob/master/assets/javascripts/discourse/initializers/preview-edits.js.es6#L332

قد يكون لدى @merefield بعض الأفكار أيضًا :slight_smile:


أيضًا، من المرجح أنك ستحتاج إلى استخدام هيكل مجلدات جافا سكريبت الخاص بالموضوع بدلاً من إضافة سكريبتات إلى header.html. انظر:

4 إعجابات

لاحظت أن أحدث إصدار في preview-edits قد أزال حدث النقر هذا FIX: remove topic list item click event to prevent transition conflict · merefield/discourse-topic-previews-sidecar@6064a59 · GitHub هل لا يزال هناك طريقة لجعل النقر على الزر يُعالج بواسطة مكون topic-list-item؟

نعم، @angus، هذا لم يعد موصى به برأيي الشخصي - فقد كان يتسبب في إجهاد طفيف لإمبير، لذا قمت بإزالته من TLP. عندما يكون لديك حدثان للنقر في وقت واحد، مثل النقر على عنوان الموضوع الذي يحتوي هو نفسه على رابط تشعبي، ينتهي الأمر بالمتصفح بتنفيذ تحديث كامل للصفحة، وهو بالتأكيد ليس ما تريده في OPA. وقد أبلغ عن هذه المشكلة عدد من المستخدمين.

في TLP حاليًا، يجب عليك النقر على العنوان أو الملخص أو الصورة المصغرة.

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

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