A medida que los temas se vuelven más ambiciosos, hemos estado buscando formas de permitirles manipular el comportamiento central del lado del servidor. Si bien nunca tendrán el mismo nivel de control que los complementos, podemos proporcionar algunos ganchos predefinidos para que los temas los manipulen.
Presentamos: modificadores de tema ![]()
Se especifican usando la clave modifiers en el archivo about.json de su tema.
Para obtener una lista 100% actualizada de los modificadores, consulte el esquema de la base de datos al final de theme_modifier_set.rb, pero aquí hay un resumen rápido de lo que tenemos hasta ahora:
-
serialize_topic_excerptsbooleano (predeterminado falso) - incluir siempre extractos al serializar listas de temas -
csp_extensionsarray de cadenas - agregar directivas a la CSP. Funciona de la misma manera que el antiguo método de configuración de tema “extend_content_security_policy”. Pero recuerde, las etiquetas simples\u003cscript src=\"\"\u003ese permiten automáticamente. -
svg_iconsarray de cadenas - una lista de iconos que deben incluirse en el subconjunto de iconos -
topic thumbnailsarray de dimensiones - solicitar resoluciones adicionales en el conjunto de miniaturas de temas. Tenga en cuenta que se generan de forma asíncrona, por lo que debe recurrir a la imagen original si el tamaño solicitado no se proporciona. Más información disponible en el mensaje de confirmación -
serialize_post_user_badgesarray de cadenas - una lista de nombres de insignias (que coinciden con las entradas en la tabla de insignias) para serializar junto con los datos de la publicación. Cuando se configura, el sistema incluye las insignias de usuario especificadas con cada publicación para la renderización del lado del cliente.
Un tema que hace un uso intensivo de estos nuevos ganchos es Topic List Thumbnails eche un vistazo al código para ver cómo funciona.
Modificadores dependientes de la configuración
Los modificadores de tema también se pueden configurar para obtener su valor de una configuración de tema, lo que permite a los operadores del sitio anular el comportamiento del modificador sin editar el código del tema. Para hacer que un modificador dependa de una configuración, use esta sintaxis en su about.json:
{
"modifiers": {
"modifier_name": {
"type": "setting",
"value": "setting_name"
}
}
}
Por ejemplo, si tiene una configuración de tema llamada show_excerpts y desea que controle el modificador serialize_topic_excerpts:
En settings.yml:
show_excerpts:
default: false
En about.json:
{
"modifiers": {
"serialize_topic_excerpts": {
"type": "setting",
"value": "show_excerpts"
}
}
}
Cuando se cambia la configuración show_excerpts, el valor del modificador se actualizará automáticamente para que coincida. Esto proporciona flexibilidad para que los operadores del sitio personalicen el comportamiento del tema a través de la interfaz de administración.
Este documento está controlado por versiones: sugiera cambios en github.

