Modifica dei risultati di ricerca

Vorrei poter modificare lo stile nei risultati di ricerca (menu a discesa della classe della lente d’ingrandimento in alto a destra). Ora sembra che vengano generati componenti al volo (in app/assets/javascripts/discourse/app/lib/search.js) invece di utilizzare un template. Sembra che non riesca a fare

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

        },
      });

o qualcosa di simile.

Come posso ottenere un trigger/evento e modificare parte dell’HTML generato?

2 Mi Piace

Ciao Richard,

Puoi elaborare quali modifiche stai cercando?

Come punto di partenza, credo che dovresti sperimentare:

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

Qui per post, ma hai anche: tag, category, group, user, e topic.

4 Mi Piace

Grazie per il tuo aiuto!!!

2 Mi Piace

Aggiornamento: la generazione dell’HTML in quel widget era piuttosto complessa e aveva molte dipendenze esterne. Inoltre, non volevo copiare tutto quel codice nel nostro plugin, quindi ho finito per fare questo

      api.reopenWidget(`search-result-topic`, {
        html(attrs) {
          const html = this._super(attrs);
          // modifica l'html come riteniamo opportuno
          return html;
        }
      });

Modificare l’HTML già generato probabilmente non è il modo più elegante per farlo, ma mi ha evitato di dover copiare un ampio blocco di codice dal core al plugin, rendendo il plugin più robusto contro futuri aggiornamenti del core.

1 Mi Piace

Sì, l’ho notato anch’io quando ho provato dalla mia parte. Credo che tu non abbia molta scelta qui.

1 Mi Piace

Questo argomento è stato chiuso automaticamente 30 giorni dopo l’ultima risposta. Non sono più consentite nuove risposte.