Modification des résultats de recherche

Je veux pouvoir ajuster certains styles dans les résultats de recherche (menu déroulant de la classe de la loupe en haut à droite). Cela semble maintenant générer des composants à la volée (dans app/assets/javascripts/discourse/app/lib/search.js) au lieu d’utiliser un modèle. Je semble incapable de faire

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

        },
      });

ou quelque chose de similaire.

Comment puis-je obtenir un déclencheur/événement et modifier une partie du HTML généré ?

2 « J'aime »

Salut Richard,

Pouvez-vous préciser les modifications que vous recherchez ?

Pour commencer, je pense que vous devrez jouer avec :

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

Ici pour post, mais vous avez aussi : tag, category, group, user, et topic.

4 « J'aime »

Merci pour votre aide !!!

2 « J'aime »

Mise à jour : la génération HTML dans ce widget était assez complexe et comportait de nombreuses dépendances externes. Je ne voulais pas non plus copier tout ce code dans notre plugin, j’ai donc fini par faire ceci

      api.reopenWidget(`search-result-topic`, {
        html(attrs) {
          const html = this._super(attrs);
          // modifier le html comme bon nous semble
          return html;
        }
      });

Modifier le HTML déjà généré n’est probablement pas la manière la plus élégante de procéder, mais cela m’a évité d’avoir à copier un grand bloc de code du cœur vers le plugin, rendant le plugin plus robuste face aux futures mises à jour du cœur.

1 « J'aime »

Oui, j’ai aussi remarqué cela lorsque j’ai essayé de mon côté. Je crois que vous n’avez pas beaucoup le choix ici.

1 « J'aime »

Ce sujet a été automatiquement fermé 30 jours après la dernière réponse. De nouvelles réponses ne sont plus autorisées.