Modificar formularios Drupal 8

Descripción
Descripción

Este código te permitirá modificar tus formularios personalizados, utilizando el módulo Devel.

Instrucciones
Instrucciones

Para modificar un formulario debemos seguir los siguientes pasos...

1.- Creamos nuestro módulo con los archivos "cambiar_formulario.info.yml" y  "cambiar_formulario.module"

2.- Instalaremos los módulos Devel y Search Kint para facilitar tareas de desarrollo.

3.- Dentro del archivo cambiar_formulario.module, pondremos la función hook_form_alter 

Código
/* Modificaciones formulario creacion nodo*/

function node_form_change_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

    ksm($form); //Nos permitirá acceder a todos los elementos del formulario

    ksm($form_state);  //Nos permitirá acceder a los valores guardados después de hacer input al formulario

    dpm($form_id); //Nos devolverá el ID del formulario para poder utlizarlo como filtro y no afecte a los demás formularios.


if( $form_id  ==  'node_article_form' ) {   //Sólo afectará la formulario de creación del artículo 

   //Agrega placeholder al campo título

   $form[ 'title' ][ 'widget' ] [ '0' ][ 'value' ][ '#attributes' ][ 'placeholder' ] = "Pon un título interesante";

   //Agrega placeholder al campo personalizado

   $form['field_campo_personalizado']['widget']['0']['value']['#attributes']['placeholder'] = "Este es un campo personalizado";

   //Agrega una clase al campo personalizado

   $form['field_campo_personalizado']['widget']['0']['value']['#attributes']['class'][] = "miclase-custom";

   //Agrega estilos en línea al campo personalizado

   $form['field_campo_personalizado']['widget']['0']['value']['#attributes']['style'] = "background: yellow; height: 60px; border: 2px solid greeen; color:#fff;";


   //Agrega o modifica la descripción en línea al campo personalizado

   $form['field_campo_personalizado']['widget']['0']['value']['#description'] = "Descripción modificada";

   //Convierte en REQUERIDO al campo personalizado

   $form['field_campo_personalizado‎']['widget']['0']['value']['#required'] = true;

   }

}