Ayuda para principiantes sobre cómo acceder al código

Hola,

Soy nuevo en Discourse y en el código abierto en general. No soy programador (más allá de HTML/CSS), pero por lo general logro intuir cómo cortar y pegar código de un lugar a otro para que un elemento aparezca en una posición diferente. Eso es todo lo que busco en términos de personalización, aparte de lo que ya puedo hacer en el panel de administración.

He creado un campo de usuario que me gustaría que aparezca directamente debajo del nombre completo del usuario en la tarjeta de perfil, en lugar de su ubicación habitual debajo de los campos estándar. Así que tengo una personalización muy pequeña que me gustaría hacer, pero que aborda una pregunta más amplia: ¿cómo accedo al tema/código?

Al intentar responder a esta pregunta (extremadamente básica), creo que encontré el archivo asociado con el código que necesitaría manipular en mi instalación local: discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs. Sin embargo, he optado por alojar mi nuevo foro con discourcehosting.com, así que no estoy seguro de cómo editar ese archivo cuando no tengo acceso a los archivos.

Me disculpo por lo básica que es esta pregunta y por lo tonto que probablemente parezca en el proceso. Pero prometo que está bien intencionada.

Gracias.

Comienza en Beginner's guide to using Discourse Themes y sigue los enlaces a guías específicas de temas para hacer lo que quieras. :slight_smile:

Gracias por el enlace, maiki. Prometo que he revisado esa guía una docena de veces en los últimos días para asegurarme de no estar pasando por alto algo obvio. Entiendo cómo y dónde acceder a las personalizaciones de estilo y código en el head, body, etc., pero supongo que busco claridad sobre si los cambios que quiero hacer equivalen esencialmente a crear un «nuevo tema» (cuando en realidad solo busco ajustar la ubicación de ciertos elementos en algunos casos).

Diría que es un componente de tema.

No lo pienses demasiado, simplemente crea un tema. ¡Es divertido! Lo resolverás. :slight_smile:

Logré hacer la modificación en el archivo local discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs para lograr el efecto deseado. Solo no estoy seguro de cómo editar ese archivo si no estoy autoalojando…

Es posible sobrescribir las plantillas HBS utilizando componentes de tema, lo cual se puede hacer desde la interfaz web de administración.

Así es como se hace: Developing Discourse Themes & Theme Components

Por lo tanto, en tu caso, crearías un nuevo componente de tema y escribirías esto en él:

<script type="text/x-handlebars" data-template-name="components/user-card-contents">

</script>

y luego copiarías el contenido de tu archivo modificado entre esas etiquetas de script.

Editar los archivos de Discourse directamente es a) imposible en nuestro servicio de alojamiento y b) generalmente no se recomienda, ya que romperá completamente tu sitio al actualizar. El método anterior es la forma correcta de hacerlo, ¡ya sea que uses nuestro servicio de alojamiento o no!

Si solo deseas agregar un campo de usuario a la tarjeta de usuario, podrías considerar usar una salida de complemento (plugin outlet), que se describe un poco más arriba en ese mismo artículo y aquí. El método de salida de complemento requiere menos cambios en el código, lo que garantiza una mejor compatibilidad al actualizar. Sin embargo, es un poco menos flexible, ya que requiere que exista una salida de complemento disponible para tus necesidades.