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
5,281 sites
115
drupal.org

Install

Drupal 11, 10 v2.0.5
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
Site Settings /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.

Formulario de configuración de Site Settings /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.

Estructura de Site Settings /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.

Tipos de Site Settings /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.

Agregar tipo de site settings /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.

Formulario de replicación de Site Settings /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.

Grupos de Site Settings /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
Crear nuevas entidades de Site Setting

Permite a los usuarios crear nuevas entradas de contenido de site setting

Administrar entidades de Site Setting

Permite acceder al formulario de administración para configurar entidades de Site Setting. Permiso de acceso restringido.

Acceder a la página de resumen de Site Settings

Obtener un resumen de todos los Site Settings. Note que esto también muestra el contenido de los site settings sin necesitar 'Ver entidades de Site Setting publicadas'. Permiso de acceso restringido.

Eliminar entidades de Site Setting

Permite a los usuarios eliminar entradas de contenido de site setting

Editar entidades de Site Setting

Permite a los usuarios editar entradas de contenido de site setting existentes

Ver entidades de Site Setting publicadas

Permite ver entidades de site setting publicadas. Note que los usuarios con 'Acceder a la página de resumen de Site Settings' también verán el contenido.

Ver entidades de Site Setting no publicadas

Permite ver entidades de site setting no publicadas. Note que esto también permite ver entidades publicadas.

Ver todas las revisiones de entidades de Site Setting

Permite ver el historial de revisiones de entidades de site setting

Revertir todas las revisiones de entidades de Site Setting

Permite revertir entidades de site setting a revisiones anteriores

Eliminar revisiones de entidades de Site Setting

Permite eliminar revisiones de entidades de site setting

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.