No estoy muy seguro de cómo proceder y estaba buscando un poco de ayuda.
Básicamente, me gustaría tener una separación visual entre los temas fijados y los temas regulares. Esto sería para los foros de la comunidad de un estudio de juegos y esa separación sería útil para los usuarios.
Lo que busco es algo como esto:
[FIJADO] Nombre del tema
Tema regular
En lugar de:
[FIJADO] Nombre del tema
Tema regular
Ya he cambiado el color de fondo de los temas fijados para crear una ligera diferencia entre ambos. He probado con CSS, lo que ha funcionado, pero solo al actualizar la página.
He intentado crear mi propio componente temático, pero ahí es donde me atasco, ya que necesitaría añadir algo, pero no estoy seguro de dónde.
Mi objetivo es añadir <tbody> class="pinned-topics"> antes del tbody original (temas regulares).
Puedes considerar usar el componente temático Filtered Topic Lists con la consulta in:pinned.
Si en cambio quieres usar CSS, puedes hacer algo como esto:
// apunta al último pin en la lista
tr.topic-list-item.pinned:has(+ tr:not(.pinned)) td {
// forma aproximada de forzar espacio dentro de una fila de tabla
padding-bottom: 1.8em;
}
tr.topic-list-item.pinned:has(+ tr:not(.pinned))::after {
// contenido a mostrar en el espacio si se desea
content: 'regular';
width: 100%;
position: absolute;
display: flex;
height: 1em;
left: 0;
right: 0;
bottom: 0;
justify-content: center;
border-top: 1px solid var(--primary-low);
}
¡Gracias por la ayuda! Desafortunadamente, eso no funcionó. Tengo un intento de un plugin que debería hacer lo que necesito, pero no parece que pueda hacerlo funcionar en Discourse 3.4.0-beta2.
¿Necesitaría algo en el directorio de componentes o todos los archivos residirían en los conectores?
La única razón por la que lo estaba haciendo como un componente de plugin en lugar de un componente temático es porque tengo planes de agregar más funcionalidad más adelante.
No necesitas el directorio components aquí en este contexto de código y conector.
Puedes verlo en mi captura de pantalla porque modifiqué un componente existente.
Dicho esto, depende de lo que quieras hacer más adelante. También es posible crear un componente en el conector que haga referencia a otro componente (y este, lo colocarías en el directorio components).
Tengo una última pregunta, si no le importa. ¿Hay alguna forma de evitar que los temas fijados aparezcan en la lista normal de temas para que los temas fijados no se dupliquen?
Editar: De hecho, pude hacerlo con un poco de CSS.