تعديل نتائج البحث

أرغب في تعديل بعض الأساليب في نتائج البحث (القائمة المنسدلة من فئة العدسة المكبرة في أعلى اليمين). يبدو أن هذا يقوم الآن بإنشاء مكونات ديناميكيًا (في app/assets/javascripts/discourse/app/lib/search.js) بدلاً من استخدام قالب. يبدو أنني غير قادر على القيام بذلك

      api.modifyClass("component:search-result-post", {
        didInsertElement() {
          this._super(...arguments);

        },
      });

أو شيء مشابه.

كيف يمكنني الحصول على مشغل/حدث وتعديل بعض HTML الذي تم إنشاؤه؟

إعجابَين (2)

مرحباً ريتشارد،

هل يمكنك توضيح التعديلات التي تبحث عنها؟

كنقطة انطلاق، أعتقد أنك ستحتاج إلى اللعب بـ:

api.reopenWidget(`search-result-post`, {
    html(attrs) {
        //
    }
})

هنا لـ post، ولكن لديك أيضًا: tag، category، group، user، و topic.

4 إعجابات

شكرا لمساعدتك!!!

إعجابَين (2)

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

      api.reopenWidget(`search-result-topic`, {
        html(attrs) {
          const html = this._super(attrs);
          // تعديل html كما نراه مناسبًا
          return html;
        }
      });

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

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

نعم، لاحظت ذلك أيضًا عندما جربت من جانبي. أعتقد أنه ليس لديك الكثير من الخيارات هنا.

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

تم إغلاق هذا الموضوع تلقائيًا بعد 30 يومًا من آخر رد. لم يعد يُسمح بالردود الجديدة.