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?

2 „Gefällt mir“

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.

4 „Gefällt mir“

Vielen Dank für Ihre Hilfe!!!

2 „Gefällt mir“

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.

1 „Gefällt mir“

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

1 „Gefällt mir“

Dieses Thema wurde 30 Tage nach der letzten Antwort automatisch geschlossen. Neue Antworten sind nicht mehr möglich.