كيفية إضافة محتوى HTML فريد أسفل جسم الموضوع في منتدى Discourse لمواضيع محددة

this.model يحتوي على بيانات الموضوع مثل المعرف و العنوان وما إلى ذلك. يمكنك استخدام ذلك.

على سبيل المثال، للسماح بمعرف الموضوع 90 أو 38، ستكتب:

<script type="text/x-handlebars" data-template-name="connectors/topic-area-bottom/custom-html">
  {{#if (or (eq this.model.id 90) (eq this.model.id 38))}}
    <div class="banner-control">
      <!-- محتوى HTML فريد هنا -->
    </div>
  {{/if}}
</script>

ومع ذلك، أشجعك على استخدام Theme CLI والعمل مع ملفات مقسمة.

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

الطريقة الحديثة هي استخدام renderInOutlet مع مكون Glimmer - على سبيل المثال، GitHub - discourse/discourse-custom-header-links.
تقول أنك تريد العرض في منفذ معين:

لديك القالب المحدد هنا. لاحظ this.shouldShow
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.hbs#L1

ثم يمكنك إضافة منطقك هنا لإخبار المكون بما إذا كان سيتم عرضه أم لا:
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.js#L5-L7

آمل أن يساعد هذا. أخبرني إذا كنت بحاجة إلى مساعدة إضافية. :+1:

5 إعجابات