View Mode Page
Crea rutas URL adicionales para entidades que las renderizan usando modos de vista específicos.
view_mode_page
Install
composer require 'drupal/view_mode_page:^4.0'
Overview
View Mode Page permite a los constructores de sitios crear rutas URL personalizadas que muestran entidades usando diferentes modos de vista. En lugar de mostrar el contenido solo con el modo de vista predeterminado en la URL canónica, este módulo permite renderizar entidades con cualquier modo de vista configurado en patrones de URL personalizados.
El módulo funciona definiendo patrones de URL que incluyen un marcador de posición (%) para la URL o alias existente de la entidad. Cuando los visitantes acceden a estas rutas personalizadas, el módulo intercepta la solicitud, identifica la entidad y la renderiza usando el modo de vista especificado. Esto es particularmente útil para crear páginas de resumen, versiones para imprimir o cualquier representación alternativa del contenido.
El módulo soporta todos los tipos de entidad de Drupal que tienen enlaces canónicos, incluyendo nodos, términos de taxonomía, usuarios y entidades personalizadas. Los patrones pueden filtrarse por bundle de entidad (tipo de contenido) e idioma para sitios multilingües.
Features
- Crear patrones de URL personalizados para mostrar entidades en diferentes modos de vista
- Soporte para todos los tipos de entidad con enlaces canónicos (nodos, términos de taxonomía, usuarios, entidades personalizadas)
- Sintaxis de patrón de URL usando % como marcador de posición para la ruta/alias de la entidad (ej., /%/summary, /%/print)
- Filtrar patrones por bundle de entidad (tipo de contenido) para aplicar patrones solo a bundles específicos
- Filtrar patrones por idioma para soporte de sitios multilingües
- Ordenamiento de patrones mediante arrastrar y soltar para controlar la prioridad y el orden de coincidencia
- Condiciones de selección usando criterios de bundle e idioma con lógica AND/OR
- Integración automática de alias de ruta - funciona tanto con rutas internas como con alias de URL
- Procesamiento de rutas entrantes y salientes para manejo de URLs sin problemas
- Formulario de edición de patrones habilitado con AJAX que se actualiza dinámicamente cuando se selecciona el tipo de entidad
- Ordenamiento de patrones basado en peso con ajuste automático de peso según las condiciones
Use Cases
Páginas de resumen de artículos
Crear páginas de avance/resumen para artículos. Configure un patrón con ruta /%/summary, tipo de entidad Contenido, bundle Artículo, y modo de vista Avance. Cuando los usuarios visiten /mi-articulo/summary, verán el artículo renderizado como avance en lugar del contenido completo.
Versiones para imprimir
Proporcionar versiones optimizadas para impresión del contenido. Cree un patrón /%/print con un modo de vista personalizado 'Imprimir' que elimine navegación, barras laterales y otros elementos no esenciales. Los usuarios pueden acceder a /cualquier-contenido/print para obtener una versión amigable para impresora.
Contenido optimizado para móvil
Servir diseños específicos para móvil en URLs dedicadas. Cree patrones como /%/mobile con un modo de vista configurado para visualización móvil, útil para escenarios donde el diseño responsivo solo no es suficiente.
Páginas de resumen específicas por idioma
En sitios multilingües, crear páginas de resumen solo para idiomas específicos. Configure patrones con condiciones de idioma para mostrar avances en /content/summary solo para contenido en inglés, mientras que el contenido en francés podría tener /content/resume.
Páginas de vista previa por tipo de contenido
Permitir a los editores previsualizar cómo aparecerá el contenido en diferentes contextos. Cree patrones para cada modo de vista usado en listados, bloques o widgets, permitiendo a los editores visitar /content/card-preview para ver cómo aparece como tarjeta.
Endpoints tipo API para contenido
Crear endpoints JSON ligeros o HTML mínimo. Configure un modo de vista con marcado mínimo y use patrones como /%/embed para servir versiones incrustables del contenido para carga AJAX o incrustación en iframe.
Tips
- El orden de los patrones importa - los patrones más específicos (con condiciones de bundle/idioma) deben ordenarse antes que los patrones genéricos
- Use etiquetas descriptivas para los patrones para identificarlos fácilmente en la interfaz de administración
- Pruebe los patrones tanto con alias de URL como con rutas internas para asegurar funcionalidad correcta
- Considere las implicaciones de SEO - los motores de búsqueda pueden indexar URLs de view mode page como contenido separado
- Use el sistema de pesos para controlar la prioridad de coincidencia de patrones cuando múltiples patrones podrían coincidir
- Limpie las cachés después de crear o modificar patrones para asegurar que los cambios tomen efecto inmediatamente
Technical Details
Admin Pages 4
/admin/config/search/view-mode-page
Página principal de configuración que lista todos los patrones de modo de vista. Permite reordenar patrones mediante arrastrar y soltar, editar y eliminar patrones existentes. La lista muestra etiquetas de patrones, patrones de URL, tipos de entidad, modos de vista y condiciones de selección.
/admin/config/search/view-mode-page/add
Formulario para crear un nuevo patrón de modo de vista. Define un patrón de URL, selecciona el tipo de entidad, configura filtros de bundle e idioma, y elige el modo de vista para renderizar.
/admin/config/search/view-mode-page/{view_mode_page_pattern}
Formulario para editar un patrón de modo de vista existente. Los mismos campos que el formulario de añadir con los valores actuales precargados.
/admin/config/search/view-mode-page/{view_mode_page_pattern}/delete
Formulario de confirmación para eliminar un patrón de modo de vista.
Permissions 1
Hooks 1
hook_block_build_alter
Implementado para añadir el contexto de caché url.path al system_main_block para prevenir caché incorrecto cuando se usan alias de ruta con diferentes modos de vista.
Troubleshooting 5
Asegúrese de que el patrón incluya el marcador de posición % para la ruta de la entidad. El % debe representar la URL o alias completo de la entidad. Limpie todas las cachés después de crear o modificar patrones.
El módulo añade el contexto de caché url.path al system_main_block. Si los problemas persisten, verifique que su tema y bloques personalizados varíen correctamente por ruta de URL.
Los patrones deberían funcionar con ambos. Asegúrese de que el sistema de alias de ruta funcione correctamente y que los alias estén configurados apropiadamente para sus entidades.
Verifique que las condiciones de bundle e idioma estén configuradas correctamente. Use la página de lista de patrones para verificar que las condiciones se muestren correctamente. Asegúrese de que la lógica de selección (and/or) coincida con sus requisitos.
Solo se muestran los tipos de entidad con plantillas de enlace canónico y soporte de campo path. Las entidades personalizadas deben implementar estas características para ser compatibles.
Security Notes 3
- El permiso 'administer view_mode_page' está restringido y solo debe otorgarse a administradores de confianza
- Las URLs de view mode page respetan los permisos de acceso al contenido existentes - los usuarios deben tener el permiso 'access content' para ver entidades
- El módulo no evita los controles de acceso a entidades; solo cambia cómo se renderizan las entidades, no quién puede acceder a ellas