Site Settings and Labels
Proporciona un sistema de entidades de contenido para gestionar configuraciones y etiquetas a nivel de sitio que los clientes pueden editar sin afectar la configuración del sitio.
site_settings
Install
composer require 'drupal/site_settings:^2.0'
Overview
El módulo Site Settings and Labels proporciona un sistema robusto basado en contenido para gestionar configuraciones de todo el sitio sin modificar la configuración del sistema. A diferencia de las entidades de configuración estándar, los site settings se tratan como contenido, lo que permite a usuarios no técnicos gestionarlos mientras la estructura permanece bajo control de versiones.
El módulo introduce tres tipos de entidades: Site Setting Entity (entidad de contenido para valores reales), Site Setting Entity Type (entidad de configuración que define los tipos/bundles de configuración disponibles) y Site Setting Group Entity Type (entidad de configuración para organizar configuraciones en grupos). Los administradores pueden definir tipos de configuración personalizados con cualquier tipo de campo de Drupal, especificar si se permiten múltiples entradas y organizar las configuraciones en grupos lógicos.
Los site settings pueden accederse en plantillas mediante funciones Twig, en código mediante plugins de carga, y en cualquier lugar donde los tokens estén disponibles. El módulo proporciona dos estrategias de carga: Full Site Settings Loader (recomendado) que devuelve objetos de entidad completos respetando la configuración de visualización, y Flattened Site Settings Loader (legacy) que devuelve arrays simplificados para acceso rápido.
Las capacidades clave incluyen soporte de contenido multilingüe con traducciones, historial completo de revisiones, replicación masiva de configuraciones, dos plugins de Block para mostrar configuraciones, integración con Views con una vista administrativa predeterminada, y permisos granulares incluyendo un submódulo opcional para permisos por tipo.
Features
- Sistema de entidades de contenido personalizado para site settings con bundles configurables mediante campos
- Sistema de agrupación flexible para organizar configuraciones lógicamente (ej., 'Configuración del pie de página', 'Enlaces sociales')
- Soporte de múltiples entradas - elija si un tipo de configuración permite valores únicos o múltiples
- Seis funciones Twig para renderizar configuraciones en plantillas: site_setting(), site_settings_by_name(), all_site_settings(), site_settings_by_group(), site_setting_field(), site_setting_entity_by_name()
- Integración con Token para usar configuraciones en cualquier lugar donde se acepten tokens (correos electrónicos, blocks, etc.)
- Dos estrategias de plugin de carga: Full (recomendado, basado en entidades) y Flattened (legacy, basado en arrays)
- Soporte multilingüe con capacidades completas de traducción
- Historial de revisiones con capacidades de revertir y eliminar
- Función de replicación masiva para crear rápidamente múltiples configuraciones similares
- Dos plugins de Block: Simple Site Settings Block y Rendered Site Settings Block
- Integración con Views con vista administrativa predeterminada y plugin de área personalizado
- Carga automática de configuraciones en todas las plantillas Twig (configurable)
- Permisos por tipo mediante submódulo opcional
- Integración con el módulo Navigation con icono personalizado
- Modo teaser simple para una visualización administrativa más limpia
Use Cases
Enlaces de redes sociales
Cree un tipo de configuración 'social_links' en un grupo 'Footer' con múltiples entradas habilitadas. Agregue campo de enlace y campo de icono. Los editores de contenido pueden agregar/eliminar redes sociales sin intervención del desarrollador. En su tema: {{ site_settings_by_name('social_links') }}
Texto de copyright del pie de página
Cree un tipo de configuración 'footer_copyright' con un campo de texto. Una sola configuración almacena el aviso de copyright. Use {{ site_settings_by_name('footer_copyright') }} en su plantilla de pie de página.
Información de contacto
Cree tipos de configuración para teléfono, correo electrónico, dirección en un grupo 'Contact'. Cárguelos todos a la vez con {{ site_settings_by_group('contact') }} o individualmente por nombre.
Configuración del hero de la página de inicio
Cree tipo 'hero_settings' con campos de imagen, título, subtítulo y enlace CTA. Los editores pueden actualizar el hero de la página de inicio sin tocar las plantillas.
Variables de plantilla de correo electrónico
Cree configuraciones para contenido de correo electrónico (ej., 'welcome_email_intro', 'signature') y use tokens en plantillas de correo como [site_settings:welcome_email_intro].
Feature flags
Cree configuraciones booleanas para alternar características. Use site_setting_entity_by_name('feature_name') en código para obtener la entidad y verificar valores de campo programáticamente.
Etiquetas multilingües
Cree tipos de configuración traducibles para etiquetas de UI que necesitan contenido diferente por idioma pero no son adecuadas para traducción de interfaz.
Tips
- Use el Full Site Settings Loader (predeterminado) para mejor integración con Drupal y manejo correcto de cache
- Reutilice campos existentes entre tipos de configuración para mejorar el rendimiento - el módulo advierte sobre esto durante la configuración
- Habilite 'simple_summary' para visualizaciones de administración más limpias cuando tenga muchas configuraciones
- Use grupos lógicamente (Footer, Header, Contact, etc.) para organizar configuraciones y habilitar carga basada en grupos en plantillas
- Para configuraciones complejas con múltiples campos, cree visualizaciones de modo de vista personalizadas en lugar de usar el block simple
- La función Twig site_setting_entity_by_name() devuelve el objeto de entidad para acceso programático a campos en plantillas
- Exporte sus configuraciones de tipo de configuración al control de versiones - el contenido permanece en la base de datos
- Considere el submódulo de permisos por tipo cuando diferentes editores gestionan diferentes tipos de configuración
- Limpie las caches después de cambiar la configuración 'show_groups_in_menu' para que aparezcan los cambios de menú
Technical Details
Admin Pages 7
/admin/content/site-settings
Listado administrativo de todas las entidades de site setting. Muestra una vista de tabla con ID, Grupo, Tipo, Descripción, Valor renderizado (usando modo de vista Teaser o resumen simple) y Operaciones. Incluye filtros para Grupo e Idioma. Muestra configuraciones 'aún no creadas' en el encabezado con botones de adición rápida.
/admin/config/site-settings/config
Configure cómo se comporta el módulo Site Settings incluyendo selección del plugin de carga, comportamiento de carga automática y opciones de visualización administrativa.
/admin/structure/site-settings
Página de resumen para gestionar la estructura de Site Settings. Proporciona enlaces para gestionar tipos de configuración y grupos.
/admin/structure/site_setting_entity_type
Gestione los tipos (bundles) de Site Setting disponibles. Cada tipo define un tipo de configuración con sus propios campos, asignación de grupo y opción de múltiples entradas. Los tipos son entidades de configuración que pueden exportarse y controlarse por versiones.
/admin/structure/site_setting_entity_type/add
Cree un nuevo tipo de site setting con etiqueta, asignación de grupo y opción de múltiples entradas.
/admin/structure/site_setting_entity_type/{setting}/replicate
Replique masivamente un tipo de site setting existente para crear múltiples tipos de configuración similares con diferentes nombres de máquina, etiquetas y asignaciones de grupo. Requiere los módulos Replicate y Field Tools.
/admin/structure/site_setting_group_entity_types
Gestione las entidades de grupo de Site Settings. Los grupos permiten a los constructores de sitios organizar múltiples site settings juntos (ej., 'Configuración del pie de página', 'Enlaces sociales') y permiten a los constructores de temas cargar todas las configuraciones de un grupo a la vez.
Permissions 10
Hooks 2
hook_site_settings_no_setting_token_alter
Sobrescribe la cadena que devuelven los tokens cuando no hay configuración definida. Permite personalización del mensaje predeterminado 'Setting not found'.
hook_site_settings_loader_plugin_info_alter
Altera las definiciones de plugins del cargador de site settings. Permite a los módulos modificar la información de los plugins de carga.