Modificando resultados de búsqueda

Quiero poder modificar el estilo en los resultados de búsqueda (el desplegable de la clase de lupa en la esquina superior derecha). Ahora parece que genera componentes sobre la marcha (en app/assets/javascripts/discourse/app/lib/search.js) en lugar de usar una plantilla. Parece que no puedo hacer

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

        },
      });

o algo similar.

¿Cómo puedo obtener un disparador/evento y modificar parte del HTML generado?

2 Me gusta

Hola Richard,

¿Puedes dar más detalles sobre las modificaciones que buscas?

Como punto de partida, creo que necesitarías jugar con:

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

Aquí para post, pero también tienes: tag, category, group, user, y topic.

4 Me gusta

¡¡¡Gracias por tu ayuda!!!

2 Me gusta

Actualización: la generación de HTML en ese widget era bastante compleja y tenía muchas dependencias externas. Tampoco quería copiar todo ese código a nuestro plugin, así que terminé haciendo esto

      api.reopenWidget(`search-result-topic`, {
        html(attrs) {
          const html = this._super(attrs);
          // modificar html como nos parezca conveniente
          return html;
        }
      });

Modificar el HTML ya generado probablemente no sea la forma más elegante de hacerlo, pero me ahorró tener que copiar un gran bloque de código del núcleo al plugin, lo que hace que el plugin sea más robusto frente a futuras actualizaciones del núcleo.

1 me gusta

Sí, también me di cuenta de eso cuando lo intenté de mi lado. Creo que no tienes muchas opciones aquí.

1 me gusta

Este tema se cerró automáticamente 30 días después de la última respuesta. Ya no se permiten nuevas respuestas.