Config Pages

Proporciona entidades de configuración con campos que pueden ubicarse en cualquier lugar del sistema de menús, con soporte de reconocimiento de contexto para idioma, dominio u otros contextos personalizados.

config_pages
19,767 sites
196
drupal.org

Install

Drupal 11, 10, 9, 8 v8.x-2.19
composer require 'drupal/config_pages:8.x-2.19'

Overview

Config Pages ofrece una forma potente de crear páginas de configuración personalizadas utilizando la Field API de Drupal. En lugar de escribir formularios personalizados con Form API, puedes aprovechar toda la potencia de los campos de entidad, incluyendo carga de archivos, referencias a entidades, arrastrar y soltar multivalor e interacciones AJAX.

El módulo crea entidades de contenido con campos que almacenan valores de configuración, mientras que su estructura está definida por bundles de entidad de configuración. Cada tipo de página de configuración puede montarse en cualquier ruta del sistema de menús y puede ser consciente del contexto, lo que significa que se pueden almacenar diferentes valores según el idioma actual, el dominio o cualquier plugin de contexto personalizado.

Este módulo es ideal para crear páginas singleton como páginas de inicio, configuraciones globales del sitio o para reemplazar formularios de configuración personalizados complejos. Soporta integración con Token, integración con Views y proporciona comandos Drush para gestionar valores programáticamente.

Features

  • Entidad con campos usando la Field API de Drupal: añade cualquier tipo de campo incluyendo texto, imágenes, referencias a entidades, Paragraphs, etc.
  • Monta páginas de configuración en cualquier ruta de menú (ej., /admin/config/misconfiguracion) con migas de pan y jerarquía de menú correctas
  • Sistema de reconocimiento de contexto que permite diferentes valores de configuración según el idioma o dominio actual
  • Sistema extensible de plugins de contexto para crear tipos de contexto personalizados más allá del idioma y dominio
  • Mecanismo de respaldo de contexto para usar valores predeterminados cuando no existe configuración específica del contexto
  • Integración con Token para exponer valores de campos de páginas de configuración como tokens de reemplazo
  • Plugin de Block para mostrar contenido de páginas de configuración en cualquier lugar del sitio
  • Plugin de condición de visibilidad para controlar la visibilidad de bloques/elementos basándose en valores de campos de páginas de configuración
  • Integración con Views con plugin de argumento predeterminado para consultas conscientes del contexto
  • Función Twig para renderizar campos de páginas de configuración directamente en plantillas
  • Comandos Drush para obtener y establecer valores de campos programáticamente
  • Comandos de Drupal Console para gestionar valores de páginas de configuración
  • Funcionalidad de importación para copiar valores de campos entre diferentes contextos
  • Funcionalidad para limpiar valores y restablecer todos los campos a sus valores predeterminados
  • Permisos granulares por tipo de página de configuración para acceso de visualización y edición
  • Enlaces contextuales para edición rápida desde bloques mostrados
  • Integración completa con Field UI para gestionar campos, modos de visualización y configuración de formularios

Use Cases

Configuración de página de inicio

Crea un tipo de página de configuración con campos para banner hero de página de inicio, referencias a contenido destacado, texto promocional y botones de llamada a la acción. Los editores de contenido pueden actualizar elementos de la página de inicio sin intervención de desarrolladores, usando widgets de campo familiares para imágenes, texto WYSIWYG y referencias a entidades.

Configuración global del sitio

Reemplaza formularios de configuración personalizados con una página de configuración que contiene campos para enlaces de redes sociales, información de contacto de la empresa, texto de copyright del pie de página y códigos de seguimiento analítico. Móntala en /admin/config/site-settings para fácil acceso y habilita la exposición de tokens para usar los valores en todo el sitio.

Configuración multilingüe

Habilita el contexto de idioma para almacenar diferente contenido promocional, texto legal o información regional por idioma. El sistema carga automáticamente la página de configuración apropiada según el idioma actual del sitio, con respaldo a un idioma predeterminado cuando no existe traducción.

Curación de contenido destacado

Reemplaza Nodequeue con una página de configuración usando campos de referencia a entidad con autocompletado potenciado por Views. Los editores pueden curar artículos destacados, productos o elementos multimedia usando ordenación de arrastrar y soltar, con toda la potencia del filtrado de Views para la interfaz de selección.

Visualización condicional de bloques

Usa la condición de visibilidad de valor de campo de ConfigPage para mostrar u ocultar bloques basándose en la configuración de páginas de configuración. Por ejemplo, muestra un banner promocional solo cuando un campo booleano 'show_promo' está habilitado, permitiendo a los gestores de contenido alternar características de todo el sitio.

Integración con plantillas

Usa la función Twig config_pages_field() para renderizar campos de páginas de configuración directamente en plantillas de tema. Por ejemplo, {{ config_pages_field('footer_settings', 'field_copyright_text') }} renderiza el texto de copyright en footer.html.twig sin necesitar un bloque.

Tips

  • Usa la función auxiliar config_pages_config() en código personalizado para cargar fácilmente una página de configuración por tipo: $config = config_pages_config('my_settings');
  • Para obtención programática de valores, usa el servicio config_pages.loader: \Drupal::service('config_pages.loader')->getValue('my_settings', 'field_name', 0, 'value');
  • Los plugins de contexto personalizados pueden crearse extendiendo ConfigPagesContextBase y colocándolos en el directorio Plugin/ConfigPagesContext
  • Los tipos de páginas de configuración y sus configuraciones de campo son exportables mediante la gestión de configuración de Drupal, pero el contenido real (valores de campos) se almacena como entidades de contenido
  • Cuando uses campos de referencia a entidad en páginas de configuración, habilita el widget de autocompletado con selección de Views para potentes capacidades de filtrado
  • La función Twig config_pages_field() maneja automáticamente el cacheo y devuelve un render array vacío con las etiquetas de caché apropiadas cuando no existe página de configuración

Technical Details

Admin Pages 4
Biblioteca de Config pages /admin/structure/config_pages

Página de resumen que lista todos los tipos de páginas de configuración con sus ajustes de contexto y estado de exposición de tokens. Desde aquí puedes acceder rápidamente a cualquier página de configuración para editarla.

Tipos de Config Pages /admin/structure/config_pages/types

Página administrativa para gestionar las definiciones de tipos de páginas de configuración. Lista todos los tipos disponibles con sus ajustes de contexto y proporciona acceso para editar, eliminar y gestionar campos.

Añadir tipo de Config Page /admin/structure/config_pages/types/add

Formulario para crear un nuevo tipo de página de configuración con ruta de menú, ajustes de contexto y configuración de tokens.

Editar config page /admin/structure/config_pages/{config_pages_type}/edit

El formulario real de la página de configuración donde los usuarios introducen valores de configuración. Muestra todos los campos configurados y permite guardar, limpiar valores e importar desde otros contextos.

Permissions 9
Acceder a la página de resumen de ConfigPage

Permite ver la biblioteca de páginas de configuración en /admin/structure/config_pages

Ver todas las entidades ConfigPages

Otorga acceso de visualización a todas las entidades de páginas de configuración independientemente del tipo

Editar todas las entidades ConfigPages

Otorga acceso de edición a todas las entidades de páginas de configuración independientemente del tipo

Eliminar entidades ConfigPages

Permite eliminar entidades de páginas de configuración

Importar contexto de entidades ConfigPages

Permite importar valores de un contexto a otro

Administrar Config Pages

Acceso administrativo completo para crear, editar y eliminar tipos de páginas de configuración y gestionar sus campos

Acceder a la opción de limpiar valores de ConfigPages

Permite a los usuarios usar el botón de limpiar valores en ConfigPages para restablecer todos los campos a sus valores predeterminados

Ver la entidad config page [Etiqueta]

Permiso por tipo para ver una página de configuración específica (generado dinámicamente para cada tipo)

Editar la entidad config page [Etiqueta]

Permiso por tipo para editar una página de configuración específica (generado dinámicamente para cada tipo)

Hooks 2
hook_config_pages_contexts_info_alter

Permite a los módulos modificar la lista de plugins de contexto disponibles

hook_config_pages_functions_alter

Permite a los módulos y temas añadir funciones Twig personalizadas a la extensión de config_pages

Drush Commands 2
drush config:pages-set-field-value

Establecer un valor para un campo de una página de configuración

drush config:pages-get-field-value

Obtener el valor de un campo de una página de configuración

Troubleshooting 4
Error de ruta de menú ya existe al guardar el tipo de página de configuración

La ruta de menú especificada entra en conflicto con una ruta existente. Elige una ruta diferente o elimina/modifica la ruta en conflicto.

La página de configuración no muestra los valores de contexto correctos

Verifica que los plugins de contexto estén correctamente habilitados en el tipo de página de configuración. Comprueba si existe una entidad de página de configuración para el contexto actual. Revisa los ajustes de respaldo si los valores deberían usar un valor predeterminado.

Los tokens no están disponibles para los campos de páginas de configuración

Asegúrate de que la casilla 'Exponer valores de esta ConfigPage como tokens' está habilitada en el formulario del tipo de página de configuración. Limpia las cachés después de habilitarlo.

El bloque de ConfigPages no muestra contenido

Verifica que existe una entidad de página de configuración (ha sido guardada al menos una vez). Comprueba que el modo de vista tiene los campos configurados en 'Gestionar visualización'. Asegúrate de que el usuario tiene permiso de 'view' para el tipo de página de configuración.

Security Notes 4
  • Los permisos son granulares - asigna 'edit [type] config page entity' para tipos específicos en lugar de 'edit config_pages entity' que otorga acceso a todos los tipos
  • El permiso 'administer config_pages types' otorga poder significativo incluyendo la capacidad de crear nuevos tipos de páginas de configuración y modificar configuraciones de campos - asígnalo con cuidado
  • Los valores de campos no se sanitizan automáticamente para la salida - usa los formateadores de campo apropiados y sigue las mejores prácticas del sistema de renderizado de Drupal
  • El permiso 'access config_pages clear values option' permite a los usuarios restablecer todos los valores de campos - esto podría resultar en pérdida de datos si se usa incorrectamente