¿Cuándo usar un plugin o un componente de tema?

Necesito hacer pequeños cambios en algunas vistas:
Por ejemplo:

¿Necesito crear un plugin para cada cambio? ¿incluso si es muy pequeño como solo css?
Gracias por tu ayuda.

1 me gusta

No, los plugins solo son necesarios si tienes la intención de cambiar el back-end.

Si solo es un cambio local, puedes ir a Administrador → Personalizar → Tema e introducir los cambios en un nuevo Componente de Tema, luego añadirlo a tu Tema actual.

Echa un vistazo a https://meta.discourse.org/c/documentation/theme-developers/127, especialmente:

8 Me gusta

¡Gracias!
Entonces, si necesito cambiar una etiqueta o agregar una información sobre herramientas, necesito crear un tema, pero si necesito agregar una nueva columna a una página (por ejemplo, la lista de temas), ¿necesito crear un plugin?

La distinción es la siguiente:

  • Si necesita cambiar la API, por ejemplo, cualquier dato en la ruta .json, cambios en la autorización, procesamiento de datos de back-end, necesita un plugin.
  • Para muchos cambios en el front-end que no necesitan datos diferentes, solo necesita un TC. Es decir, muchos cambios de presentación, o cualquier lógica en javascript que no sea sensible.
5 Me gusta

Y un área gris (que no aplica aquí, creo) es si necesitas datos que no están disponibles (como campos personalizados de usuario) podrías usar AJAX para obtener esos datos con javascript cuando los necesites, o tener un plugin que agregue los datos al serializador.

5 Me gusta

ok gracias. En la guía no entiendo cómo puedo configurar e importar un TC localmente, solo hay un ejemplo para uno remoto.

Sugeriría usar esta maravillosa herramienta para crear TC fácilmente localmente:

2 Me gusta

A menos que tengas un cambio muy pequeño en CSS, te recomiendo usar un tema remoto o la herramienta CLI.

Pero si haces clic, el diálogo “instalar tema” te permitirá crear un tema (o un componente de tema si lo haces en la página del componente).

Dentro de la lista de temas de categorías, necesito añadir una nueva columna con la columna “created_at” y cambiar la fecha de “tiny” a extendida (por ejemplo: DD/MM/YYYY HH:MM)

Si quieres añadir cosas nuevas a una plantilla, empezaría con GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes, pero no sé cómo añadir una columna allí. Supongo que podrías hacer algo de magia con JavaScript, pero eso no es lo mío.

¿Sabes que puedes ver esa información si pasas el ratón por encima, verdad?

También mira Componente de tema de ubicaciones de salidas de complementos, pero no hay ninguna salida de complemento allí.

2 Me gusta

Tienes estas salidas de plugin: topic-list-after-columns y topic-list-header-after.

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/list/topic-list-item.hbr#L90

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/topic-list-header.hbr#L27

Buena observación. Parecía incorrecto que no hubiera una salida allí. Supongo que el componente temático simplemente no la muestra.

1 me gusta

El componente temático de ubicaciones de salida de complementos no muestra las salidas sin procesar en este momento.

Este componente temático te muestra cómo añadir una columna GitHub - discourse/discourse-add-category-column

3 Me gusta