Configuración del sitio temática ya está disponible

Hemos agregado una nueva forma para que los desarrolladores de temas controlen la experiencia de un sitio. La configuración de sitio “themeable” (que se puede tematizar) permite que los temas anulen un grupo limitado de configuraciones del sitio definidas por el núcleo de Discourse. :gear:

¿En qué se diferencian la configuración de sitio “themeable”?

Ya tenemos los conceptos de configuración de temas y modificadores de temas, así que ¿en qué se diferencian la configuración de sitio “themeable”? Aquí hay un resumen rápido:

  • Configuración de temas: estas son configuraciones personalizadas que se utilizan para controlar la interfaz de usuario y la funcionalidad dentro de tu tema o componente y proporcionan opciones de configuración. Estos no pueden cambiar la funcionalidad principal de Discourse.
  • Modificadores de temas: permite que un tema o un componente modifique la funcionalidad seleccionada del lado del servidor del núcleo de Discourse como una alternativa a la creación de un plugin.
  • :sparkles: Configuración de sitio “themeable” (nueva): permite que un tema (no componentes) anule un pequeño subconjunto de las configuraciones principales del sitio, que generalmente controlan partes de la interfaz de usuario y otra funcionalidad menor. Esto permite que los temas tengan un mayor control sobre la experiencia completa del sitio.

La configuración de sitio “themeable” tiene tipos de datos y valores idénticos a la configuración del sitio que anulan. Para todos los efectos, el valor de la configuración del sitio en la base de datos se vuelve irrelevante, ya que cada tema controla este valor individualmente ahora.

¿Cómo pueden los administradores ver y cambiar la configuración de sitio “themeable”?

Los administradores pueden ver y cambiar la configuración de sitio “themeable” en dos lugares. Primero, en cada página de tema individual, ahora hay una sección “Configuración que el tema puede anular” como esta, encima de la otra sección que muestra la configuración del tema definida por el tema:

El punto indica que el valor ha sido cambiado con respecto al valor predeterminado de la configuración del sitio. Presionar “restablecer” cambiará el valor de la configuración del sitio del tema para que coincida con el valor predeterminado de la configuración del sitio.

El segundo lugar donde los administradores pueden ver estas configuraciones es en una nueva página, /admin/config/theme-site-settings:

Desde aquí, los administradores pueden ver toda la configuración de sitio “themeable”, cuál es el valor predeterminado de la configuración del sitio y qué temas están anulando este valor. Cuando pasas el cursor sobre un nombre de tema, la interfaz de usuario mostrará el valor que este tema ha establecido.

¿Qué pasará con los cambios existentes en la configuración del sitio?

Si has cambiado enable_welcome_banner o search_experience de los valores predeterminados en tu sitio, migraremos automáticamente estos valores a cada tema que tengas instalado en tu sitio, por lo que nada cambiará en la interfaz de usuario para tus miembros.

¿Dónde se definen?

La configuración de sitio “themeable” se define en el archivo principal config/site_settings.yml. Cada configuración de sitio “themeable” tiene la opción themeable: true definida.

Por el momento, solo dos configuraciones de sitio son “themeable”: enable_welcome_banner y search_experience, pero en el futuro es probable que hagamos más configuraciones de sitio “themeable”.

¿Cómo pueden los autores de temas controlar los valores predeterminados?

Los autores de temas pueden definir anulaciones de configuración de sitio “themeable” en el archivo about.json bajo una clave theme_site_settings como esta:

"theme_site_settings": {
  "enable_welcome_banner": false
}

Cualquier valor aquí se guardará en la base de datos y se asociará con el tema. Una vez que se ha guardado un valor, los cambios en theme_site_settings en el archivo about.json cuando un tema se actualiza no afectarán el valor actualmente guardado en la base de datos, ya que no podemos saber si el administrador ha cambiado la configuración en el ínterin.

¿Cuáles son las limitaciones de la configuración de sitio “themeable”?

La configuración de sitio “themeable” solo está realmente pensada para controlar elementos de la interfaz de usuario, y al recuperar su valor requerimos un ID de tema, por lo que se aplican estas limitaciones:

  • La configuración de sitio “themeable” no se puede usar en trabajos de Sidekiq
  • La configuración de sitio “themeable” no se puede usar en reglas de markdown
  • La configuración de sitio “themeable” se almacenará en caché por separado de la configuración del sitio del cliente utilizando el ID del tema como clave
  • La configuración de sitio “themeable” anulará las claves en el servicio siteSettings en el cliente utilizando el precargador de aplicaciones
  • SiteSetting.client_settings_json no incluirá la configuración de sitio “themeable”, en su lugar puedes llamar a SiteSetting.theme_site_settings_json con un ID de tema

Como regla general, la configuración del sitio del tema solo será para configuraciones simples que controlan partes de la interfaz de usuario, nada del lado del servidor.

34 Me gusta

¡Muchas gracias por esta actualización! ¡Es de gran ayuda!

Entonces, solo para confirmar, ¿esto cambiará la configuración que no ha sido modificada manualmente?

7 Me gusta

¿Qué sucede si cambio enable_welcome_banner más tarde, es decir, después de que haya ocurrido esta migración? ¿Tendré que ajustar cada tema en consecuencia?

4 Me gusta

Sí, ya no puedes cambiar estas configuraciones del sitio directamente, solo aparecerán en la página de Edición de cada tema individual.

2 Me gusta

¿También se debe incluir la configuración de Ubicación del banner de bienvenida?

3 Me gusta

¿La configuración del sitio personalizable también puede incluir la configuración del sitio para activos como imágenes de logotipos onebox?

3 Me gusta

Una actualización rápida: la configuración del sitio personalizable ahora se mostrará al buscar “Toda la configuración” para que sea un poco más fácil de descubrir:

4 Me gusta