Suchergebnisse ändern

Ich möchte einige der Stile in den Suchergebnissen (Dropdown aus der Lupe oben rechts) anpassen können. Jetzt scheint dies Komponenten “on the fly” zu generieren (in app/assets/javascripts/discourse/app/lib/search.js) anstatt eine Vorlage zu verwenden. Ich scheine nicht in der Lage zu sein, Folgendes zu tun:

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

        },
      });

oder etwas Ähnliches.

Wie kann ich einen Trigger/ein Ereignis erhalten und einige der generierten HTML-Elemente ändern?

Hallo Richard,

Können Sie näher erläutern, welche Änderungen Sie suchen?

Als Ausgangspunkt müssen Sie wahrscheinlich Folgendes anpassen:

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

Hier für post, aber Sie haben auch: tag, category, group, user und topic.

Vielen Dank für Ihre Hilfe!!!

Update: Die HTML-Generierung in diesem Widget war ziemlich komplex und hatte viele externe Abhängigkeiten. Außerdem wollte ich nicht den gesamten Code in unser Plugin kopieren, also habe ich Folgendes getan:

      api.reopenWidget(`search-result-topic`, {
        html(attrs) {
          const html = this._super(attrs);
          // html nach Belieben ändern
          return html;
        }
      });

Das Ändern des bereits generierten HTML ist wahrscheinlich nicht die eleganteste Methode, aber es hat mich davor bewahrt, einen großen Codeblock aus dem Kern in das Plugin zu kopieren, wodurch das Plugin robuster gegenüber zukünftigen Kernaktualisierungen wird.

Ja, das ist mir auch aufgefallen, als ich es bei mir ausprobiert habe. Ich glaube, Sie haben hier nicht viele Möglichkeiten.