¿Usar información de Discourse y cálculos básicos en CSS personalizado?

Hola a todos,

Estoy tratando de encontrar una manera de mostrar el número de temas en las categorías en la página principal y si hay una manera de ordenarlos aún más según sus etiquetas.

¿Y alguna idea de cómo hacer matemáticas simples usando los números anteriores con JavaScript?

1 me gusta

Puedes empezar desde aquí:

<script type="text/discourse-plugin" version="1.4.0">
    api.modifyClass("component:topic-list", {
      pluginId: "returnTopicList",
      didInsertElement: function() {
        this._super();
        console.log(this.topics);
      }
    });
</script>

Esto mostrará la lista de temas, así como sus atributos (incluidas las etiquetas).
Luego, supongo que solo necesitas jugar un poco con la matriz para lograr lo que quieres.

1 me gusta

Hola @Canapin,

¡Gracias por la ayuda! No tengo ni idea de cómo funciona el javascript en Discourse, ¿puedes explicar qué hace/cómo funciona y cómo trabajar con él?

¿He buscado algún lugar donde pueda tener una idea de cómo funciona, alguna sugerencia también?

2 Me gusta

Para más contexto, estoy intentando que el número de temas en cada categoría se extraiga de Discourse y se utilice en la tabla para Discuss1-4. Si es posible, también me gustaría que la subcategoría del tema se ordene de la A a la F. En resumen, solo quiero que se actualice cada vez que se mueva un tema para no tener que hacerlo manualmente.
Espero haberlo descrito bien y no duden en pedir aclaraciones :slight_smile:

(Disculpas por la falta de pulcritud de la tabla)

1 me gusta

No entiendo muy bien qué quieres conseguir. ¿Dónde quieres que se muestre esta tabla? ¿En una página nueva o en una página existente?
¿Qué significan A B C D E F? ¿Qué significa Discutir 1 a 4? ¿Son categorías?
¿Necesitas el número total de publicaciones de cada categoría?

1 me gusta

Ok, déjame intentar reformularlos ya que cometí un pequeño error al llamar a las etiquetas subcategorías.

Entonces, tendremos Discusión 1-4 = Categoría 1-4
y A-F serán para etiquetas

Así que pretendamos que la tabla está en blanco. Creo un nuevo tema bajo la Categoría 1 y añado una etiqueta ‘A’. Ahora la tabla debería mostrar un solo tema junto a la Categoría 1 y bajo ‘A’:

En caso de que elimine la etiqueta ‘A’ y asigne la etiqueta ‘C’, la tabla se actualizará en consecuencia.

¿Hay alguna manera de hacer esto?

1 me gusta

¿Quieres la información o mostrarla en una página de egret para cada usuario? Si es lo primero, podrías querer el plugin data explorer.

2 Me gusta

CSS es demasiado superficial para este propósito. Es un lenguaje de estilo para ayudar con el diseño y la apariencia.

Lo que quieres es una solución integral que utilice Rails para calcular, resumir y serializar tus datos, Ember JavaScript para recibir los datos y presentarlos de forma agradable en una ruta, y CSS para darles estilo según sea necesario. Incluso podrías usar la biblioteca D3 para crear una visualización particularmente agradable.

Echa un vistazo a mis plugins Word Cloud o Network Vis que hacen exactamente todo esto. Modifícalos para adaptarlos a tus necesidades.

4 Me gusta

Me gustaría que se mostrara para todos los usuarios

1 me gusta

¡Genial! Lo revisaré.

2 Me gusta

Hola @merefield,

Después de revisar esto y ver cómo funciona desde el enlace del generador, ¿estás seguro de que podría simplemente obtener el número de temas bajo una categoría con estos? Solo confirmo antes de implementar esto en mi discurso.

1 me gusta

Obviamente necesitarás crear tu propio cálculo personalizado, pero lo que compartí fue un esqueleto apropiado que anula todas las partes correctas de la arquitectura.

Lo que hagas con él depende de ti…

2 Me gusta