Insert View
Un filtro de entrada que permite incrustar Views en contenido de texto usando una sintaxis de etiquetas simple.
insert_view
Instalar
composer require 'drupal/insert_view:^3.0'
Overview
Insert View proporciona un potente filtro de texto que permite a los editores de contenido incrustar Views de Drupal directamente dentro del contenido de texto usando una sintaxis de etiquetas simple e intuitiva. Esto permite colocar contenido dinámico basado en base de datos en cualquier lugar dentro de nodes, blocks o cualquier campo de texto que use un formato de texto con este filtro habilitado.
La sintaxis de etiquetas sigue el patrón [view:name=display=args=limit:number], donde puedes especificar el nombre de la view, el ID del display, los argumentos y opcionalmente limitar el número de resultados. El filtro soporta reemplazo dinámico de argumentos desde la URL actual, haciendo posible crear views incrustadas sensibles al contexto.
Al procesar contenido, el filtro usa el sistema de marcadores de posición de Drupal para renderizado diferido, lo que ayuda con la optimización del rendimiento. También respeta los permisos de acceso de las views, asegurando que los usuarios solo vean las views a las que tienen permiso de acceso.
Features
- Incrustar cualquier display de Views en contenido de texto usando sintaxis simple de corchetes [view:name=display=args]
- Soporte para argumentos de view con múltiples argumentos separados por barras
- Reemplazo dinámico de argumentos de URL usando marcadores %0, %1, %2 que mapean a segmentos de la ruta URL actual
- Parámetro limit opcional para anular la configuración predeterminada de elementos por página de la view (limit:0 muestra todos los resultados)
- Verificación automática de control de acceso que respeta los permisos de acceso del display de la view
- Renderizado diferido usando el sistema de marcadores de posición de Drupal para mejorar el rendimiento
- Recurre al display predeterminado cuando no se especifica un ID de display
- Consejos de filtro y texto de ayuda mostrados en las páginas de edición de contenido
Use Cases
Incrustar una View de Contenido Reciente en una Página
Agregar una lista de publicaciones de blog recientes dentro del contenido del cuerpo de una página estática usando [view:blog_posts=block_1] para mostrar el display block_1 de la view blog_posts.
Mostrar Contenido Relacionado Basado en el Node Actual
Usar reemplazo de argumentos de URL para mostrar contenido relacionado. Por ejemplo, [view:related_content=default=%1] donde %1 captura el ID del node desde la ruta URL actual para filtrar elementos relacionados.
Crear una Página de Destino Dinámica
Construir páginas de destino ricas combinando contenido estático con múltiples views incrustadas usando etiquetas como [view:featured_products], [view:testimonials=block] y [view:latest_news=default=5] para crear un diseño de página dinámico.
Limitar Resultados en Views Incrustadas
Anular la paginación predeterminada de la view usando el parámetro limit. Por ejemplo, [view:team_members=default==limit:3] muestra solo 3 miembros del equipo independientemente de los elementos por página configurados en la view.
Pasar Múltiples Argumentos a Filtros Contextuales
Cuando una view tiene múltiples filtros contextuales, pasar argumentos separados por barras: [view:product_list=default=electronics/featured] pasa 'electronics' como primer argumento y 'featured' como segundo.
Tips
- Crear un formato de texto dedicado llamado 'HTML completo con Views' para separar el contenido que incrusta views del contenido regular, permitiendo mejor gestión del caché
- Siempre probar las views incrustadas con diferentes roles de usuario para asegurar que los permisos de acceso estén correctamente configurados
- Usar la pantalla de vista previa de la view para verificar el ID de display correcto - pasar el cursor sobre las pestañas de display para ver el ID en la URL
- Al usar reemplazo de argumentos, el marcador %0 corresponde al primer segmento después del dominio en la ruta URL
- Usar limit:0 para mostrar todos los resultados cuando necesites mostrar todo independientemente de la configuración del paginador
- El display predeterminado se usa automáticamente cuando omites el parámetro de display: [view:my_view] es equivalente a [view:my_view=default]
Technical Details
Hooks 1
hook_help
Proporciona texto de ayuda para el módulo Insert View en la página de ayuda
Troubleshooting 4
Verificar que el nombre de la view y el ID del display sean correctos. Comprobar que el usuario actual tiene acceso al display de la view. Asegurar que la view existe y está habilitada.
Asegurarse de que los marcadores de argumentos (%0, %1, etc.) coincidan con la estructura de la URL. Recordar que %0 corresponde al primer segmento de la URL. Múltiples argumentos deben separarse con barras.
Insert View deshabilita el caché de renderizado para formatos de texto que lo tienen habilitado. Considera crear un formato de texto separado específicamente para contenido que necesita views incrustadas para minimizar el impacto del caché en otro contenido.
Verificar tanto la configuración de acceso de la view COMO la configuración de acceso del display específico. El filtro verifica el acceso para el display especificado, no solo para el display predeterminado.
Security Notes 4
- Solo conceder este filtro a roles de usuario de confianza ya que permite incrustar cualquier view a la que el usuario tenga acceso
- Asegurar que TODOS los displays de view (incluyendo el predeterminado) tengan controles de acceso apropiados configurados, ya que los usuarios con este filtro pueden intentar incrustar cualquier display
- El filtro respeta los permisos de acceso de las views pero depende de una configuración apropiada de la view - una view mal configurada con acceso 'sin restricciones' podría exponer datos sensibles
- Considerar las implicaciones de seguridad de permitir paso dinámico de argumentos, ya que los usuarios podrían potencialmente manipular la salida de la view creando valores de argumentos específicos