Entity Blocks
Permite crear bloques con campos que muestran cualquier entidad utilizando modos de visualización configurables.
entity_block
Instalar
composer require 'drupal/entity_block:^2.0'
composer require 'drupal/entity_block:8.x-1.1'
Overview
El módulo Entity Blocks permite a los administradores del sitio crear bloques que hacen referencia y muestran cualquier entidad de Drupal (nodes, usuarios, términos de taxonomía, etc.) utilizando los modos de visualización de la entidad. Esto proporciona una forma flexible de colocar contenido de entidades en regiones de bloques sin duplicar contenido ni crear bloques personalizados manualmente.
El módulo crea un tipo de entidad personalizado llamado 'entity_block' que almacena referencias a entidades objetivo. Cada entity block puede configurarse para mostrar una entidad específica utilizando un modo de visualización elegido (como teaser, full o modos de visualización personalizados). Los bloques admiten campos, lo que significa que puede adjuntar campos adicionales a los entity blocks si es necesario.
Esto es particularmente útil cuando necesita mostrar el mismo contenido en múltiples regiones, destacar contenido en barras laterales o crear bloques de contenido reutilizables que se actualizan automáticamente cuando la entidad de origen cambia.
Features
- Crear bloques que muestran cualquier entidad de Drupal (nodes, usuarios, términos de taxonomía, productos de commerce, etc.)
- Seleccionar entre los modos de visualización disponibles para controlar cómo se renderiza la entidad en el bloque
- La selección de entidades utiliza autocompletado para facilitar la búsqueda de entidades por título
- Los bloques se actualizan automáticamente cuando la entidad referenciada cambia
- Los entity blocks admiten campos - puede agregar campos personalizados para extender su funcionalidad
- Se integra con el sistema estándar de colocación de bloques de Drupal para la asignación de regiones
- Soporta todos los tipos de entidad que tienen modos de visualización definidos
- Filtrado automático de modos de visualización incompatibles (token, queue, rss)
Use Cases
Barra lateral de contenido destacado
Mostrar un artículo destacado en un bloque de barra lateral usando el modo de visualización teaser. Cuando el artículo destacado se actualiza, el bloque refleja automáticamente los cambios. Cree un entity block apuntando al tipo de entidad 'node' con bundle 'article' y modo de visualización 'teaser', luego seleccione el artículo específico a destacar.
Bloque de perfil de autor
Mostrar un perfil de usuario en una región de bloque. Cree un entity block apuntando al tipo de entidad 'user' y seleccione el autor a mostrar. Use un modo de visualización personalizado como 'author_bio' para controlar exactamente qué campos del usuario se muestran.
Producto destacado
Para sitios de Commerce, mostrar un producto específico en regiones de bloques promocionales. Apunte al tipo de entidad 'commerce_product' y seleccione el producto a destacar, eligiendo un modo de visualización apropiado para la presentación promocional.
Bloque de descripción de categoría
Mostrar la descripción de un término de taxonomía en regiones de bloque. Apunte al tipo de entidad 'taxonomy_term', seleccione el bundle de vocabulario y elija un término para mostrar su descripción y campos asociados en una barra lateral.
Fragmentos de contenido reutilizables
Use un tipo de contenido 'snippet' con varios bloques de texto reutilizables. Cree entity blocks que referencien estos nodes de snippet para colocar el mismo contenido en múltiples regiones de página sin duplicación.
Tips
- Cree modos de visualización dedicados para la visualización en bloques para controlar exactamente qué campos aparecen en los entity blocks sin afectar otras visualizaciones.
- Use títulos significativos para los entity blocks ya que aparecen en la interfaz de administración de bloques.
- Los entity blocks admiten campos - considere agregar campos como 'Color de fondo' o 'Clase CSS' para proporcionar opciones de estilo adicionales.
- Recuerde que los cambios en la entidad referenciada se reflejan automáticamente en el bloque - no es necesario actualizar el entity block en sí.
- El módulo filtra los modos de visualización 'token', 'queue' y 'rss' ya que típicamente no son adecuados para mostrar en bloques.
Technical Details
Admin Pages 3
/admin/structure/entity-blocks
Página administrativa principal para gestionar entity blocks. Muestra una tabla de todos los entity blocks creados con sus detalles de configuración incluyendo ID, título, tipo de entidad objetivo, bundle, modo de visualización e ID de entidad referenciada. Proporciona enlaces para editar cada bloque.
/admin/structure/entity-blocks/manage/add
Formulario para crear un nuevo entity block. Permite seleccionar el tipo de entidad objetivo, bundle, modo de visualización y la entidad específica a mostrar en el bloque.
/admin/structure/entity-blocks/{entity_block_id}/edit
Formulario para editar un entity block existente. Mismos campos que el formulario de agregar, pre-poblados con la configuración actual.
Permisos 1
Hooks 7
hook_entity_info
Define el tipo de entidad entity_block con sus propiedades, incluyendo la capacidad de tener campos, configuración de bundle y rutas de administración.
hook_block_info
Registra todos los entity blocks como bloques de Drupal, usando el título del entity block como información del bloque.
hook_block_view
Renderiza el entity block cargando la entidad objetivo y mostrándola usando el modo de visualización configurado.
hook_permission
Define el permiso 'administer entity blocks'.
hook_menu
Define las rutas del menú de administración para listar, agregar y editar entity blocks, además del callback de autocompletado.
hook_field_extra_fields
Define pseudo-campos para el tipo de entidad entity_block para la gestión de visualización.
hook_schema
Define el esquema de base de datos para la tabla entity_block.
Troubleshooting 4
Asegúrese de que el módulo Entity Reference esté correctamente instalado y habilitado. La funcionalidad de autocompletado depende del handler y sistema de autocompletado de Entity Reference.
Después de crear un entity block, debe asignarlo a una región. Vaya a Administración > Estructura > Bloques y encuentre su entity block en la lista para asignarlo a una región.
Los tipos de entidad deben tener al menos un modo de visualización válido (distinto de token, queue o rss) para aparecer en el desplegable de tipo de entidad. Verifique que su tipo de entidad tenga modos de visualización definidos.
Configure los ajustes de visualización del modo de visualización para el tipo de entidad objetivo en Administración > Estructura > Tipos de contenido > [Tipo] > Gestionar visualización (o equivalente para otros tipos de entidad). Asegúrese de que los campos estén habilitados para el modo de visualización seleccionado.
Security Notes 3
- El permiso 'administer entity blocks' otorga control total sobre los entity blocks. Asigne este permiso cuidadosamente ya que los usuarios pueden referenciar y mostrar cualquier entidad a la que tengan acceso.
- Las verificaciones de acceso a entidades no se realizan al ver entity blocks - cualquier entidad referenciada por un bloque se mostrará independientemente de los permisos del usuario que visualiza sobre esa entidad. Considere esto al referenciar contenido sensible.
- Nota: Hay un error tipográfico en hook_menu() donde se usa 'adminiter entity blocks' en lugar de 'administer entity blocks' para la verificación de acceso de la página de lista, lo que puede causar problemas de acceso.