Crear campo de tipo de alojamiento Drupal
Bloques en Drupal 8 son instancias de la plugin de bloque.
El administrador de bloques de Drupal escanea los módulos para cualquier clase que contengan una anotación @Block.
El ejemplo siguiente fragmento de código hace uso de la anotación @Block junto con las propiedades "id" y "admin_label" para definir un bloque personalizado.
Crear el archivo src / Programas / Bloquear / HelloBlock.php dentro del esqueleto de un módulo creado anteriormente y añadir el código de abajo. Usted, por supuesto, la necesidad de reconstruir la memoria caché.
Para añadir 'Hola bloque' se puede ir a Estructura -> Diagrama del bloque (admin / estructura / bloque) y haga clic en el botón 'Poner bloque' asociado a cada región disponible.
Al hacer clic en el botón 'Poner bloque' para cualquier región dada aparecerá un "Poner bloque" diálogo emergente, con una lista de todos los bloques disponibles. Para encontrar rápidamente su bloque, basta con utilizar 'Filtrar por nombre de bloque' opción o utilizar el ratón-desplazamiento para buscar 'bloque Hola'. De esta manera usted puede agregar cualquier número de instancias del bloque personalizado en cualquier lugar en su sitio.
Solución de problemas
El nombre de la clase y el nombre del archivo debe ser el mismo (HelloBlock clase y /src/Plugin/Block/HelloBlock.php). Si el nombre de la clase es diferente, el bloque aparecerá en la lista de bloques disponibles, sin embargo, no será capaz de agregarlo.
Asegúrese de que vuelva a comprobar todas las rutas y nombres de archivo. Su .php debe estar en el directorio que esté debidamente etiquetado (/ src / Programas / Bloquear /), de lo contrario no será descubierta por Drupal.
Nota: El uso de plantillas Twig con bloques personalizados
- Añadir un gancho _theme en su archivo .module. No nombre de la función tematización como 'block__. '- esto no pasará ninguna variable a las plantillas ramita. En su lugar, puede utilizar el nombre del módulo como prefijo.
- Use '#theme' en la matriz de rendir en el método de aumento y pasar las variables en el mismo nivel que el '#theme' - '#varname'.