Añadir un formulario a la configuración del bloque

Continuamos con el manual de creación de módulos en Drupal 8.

 

Ahora digamos que queremos añadir capacidad de constructor de sitio para introducir un trozo de configuración para cada caso de nuestro block personalizado.

 

 

Hay que tener siempre en cuenta que toda la configuración de sitios construidos en Drupal 8 se puede exportar desde el sitio de desarrollo e importarlo al sitio de producción (conocido como Gestor de la configuración). Como un constructor de módulo también puedes proporcionar una configuración por defecto para auto-llenar el formulario cuando el constructor de sitios ejemplifique un nuevo bloque.

 
 

En el HelloBlock existente de la página anterior, añade estas declaraciones de "uso" tras las que hay existen:

 
 

use Drupal\Core\Block\BlockPluginInterface;

use Drupal\Core\Form\FormStateInterface;

 
 

Actualiza la declaración de clase para incluir esta nueva declaración:  "implements BlockPluginInterface":

 
 

class HelloBlock extends BlockBase implements BlockPluginInterface {

 
 

A continuación, agrega el siguiente método a la clase. El archivo completo está aquí.

 
 

Este código sólo sumará la forma, transformando la forma y el almacenando los resultados seguirá en las páginas siguientes.

 

 
/**
  * {@inheritdoc}
  */

 public function blockForm($form, FormStateInterface $form_state) {
$form = parent::blockForm($form, $form_state);
$config = $this->getConfiguration();
$form['hello_block_name'] = array (
  '#type' => 'textfield',
  '#title' => $this->t('Who'),
  '#description' => $this->t('Who do you want to say hello to?'),
  '#default_value' => isset($config['name']) ? $config['name'] : '',
);
return $form;
 }
 

En este ejemplo, el formulario se define en primer lugar por la referencia a su clase matriz a través de la siguiente instrucción de código $form = parent::blockForm($form, $form_state );.

 

 

A continuación, añadimos un nuevo campo al formulario. Este proceso se llama polimorfismo y es una de las importantes ventajas de usar técnicas de  Programación  orientada a objetos(OOP).

 

 

Para ver la forma, acude a tu instancia agregada previamente en admin->structure->Block Layout y haz clic en Configurar para el block (Hello Word).

 

Proceso del formulario Config de block

 

Páginas

Total de votos: 46

Entradas relacionadas

Comentarios (2)

  • Imagen de Pablo Madrid

    Pablo Madrid (no verificado)

    Gracias por el artículo, pero como quedaría el bloque, hay alguna forma de ver el resultado con algún pantallazo??. Muchas gracias por el trabajo

  • Imagen de eulalio

    eulalio

    Pues, me parece muy bien.

  • Páginas

Deja un comentario