formularios en drupal 8
TRANSCRIPT
![Page 1: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/1.jpg)
Formularios en Drupal 8
Luis Ortiz Ramos #DrupalcampSpain2015
![Page 2: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/2.jpg)
¡SPAM!“Spam wall” por freezelight. https://flic.
kr/p/eKfYX
![Page 3: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/3.jpg)
![Page 4: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/4.jpg)
Atenea tech
⚫ Somos expertos en Drupal
![Page 5: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/5.jpg)
Atenea tech
⚫ Somos expertos en Drupal⚫ Somos Siddharta, Oriol, Robert, David y Luis.
![Page 6: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/6.jpg)
Atenea tech
⚫ Somos expertos en Drupal⚫ Somos Siddharta, Oriol, Robert, David y Luis.⚫ Trabajamos para Estrella Damm, Dexeus,
Médicos Sin Fronteras, Infojobs, Greenpeace...
![Page 7: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/7.jpg)
Atenea tech
⚫ Somos expertos en Drupal⚫ Somos Siddharta, Oriol, Robert, David y Luis.⚫ Trabajamos para Estrella Damm, Dexeus,
Médicos Sin Fronteras, Infojobs, Greenpeace...
⚫ Estamos en Barcelona
![Page 8: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/8.jpg)
Atenea tech
⚫ Somos expertos en Drupal⚫ Somos Siddharta, Oriol, Robert, David y Luis.⚫ Trabajamos para Estrella Damm, Dexeus,
Médicos Sin Fronteras, Infojobs, Greenpeace...
⚫ Estamos en Barcelona⚫ Puedes contactar con nosotros en
![Page 9: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/9.jpg)
Formularios HTML
![Page 10: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/10.jpg)
![Page 11: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/11.jpg)
![Page 12: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/12.jpg)
![Page 13: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/13.jpg)
¡Los formularios son la p****!
![Page 14: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/14.jpg)
![Page 15: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/15.jpg)
![Page 16: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/16.jpg)
![Page 17: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/17.jpg)
¿Por qué una API para los formularios?
![Page 18: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/18.jpg)
⚫ Automatiza el flujo de trabajo
¿Por qué una API para los formularios?
![Page 19: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/19.jpg)
⚫ Automatiza el flujo de trabajo⚫ Proporciona mayor seguridad
¿Por qué una API para los formularios?
![Page 20: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/20.jpg)
⚫ Automatiza el flujo de trabajo⚫ Proporciona mayor seguridad⚫ Genera HTML consistente
¿Por qué una API para los formularios?
![Page 21: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/21.jpg)
⚫ Automatiza el flujo de trabajo⚫ Proporciona mayor seguridad⚫ Genera HTML consistente⚫ Permite la alteración de formularios
¿Por qué una API para los formularios?
![Page 22: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/22.jpg)
⚫ Automatiza el flujo de trabajo⚫ Proporciona mayor seguridad⚫ Genera HTML consistente⚫ Permite la alteración de formularios⚫ Permite la encapsulación de lógica compleja
¿Por qué una API para los formularios?
![Page 23: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/23.jpg)
Novedades en Drupal 8
![Page 24: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/24.jpg)
Novedades en Drupal 8
⚫ Orientado a Objetos
![Page 25: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/25.jpg)
Novedades en Drupal 8
⚫ Orientado a Objetos⚫ Nuevos elementos
![Page 26: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/26.jpg)
Novedades en Drupal 8
⚫ Orientado a Objetos⚫ Nuevos elementos
⚪ HTML5:⚫ tel, email, number, date, url, search, range
![Page 27: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/27.jpg)
Novedades en Drupal 8
⚫ Orientado a Objetos⚫ Nuevos elementos
⚪ HTML5:⚫ tel, email, number, date, url, search, range
⚪ avanzados:⚫ details, language_select, dropbutton, operations
![Page 28: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/28.jpg)
Definiendo un formulario
![Page 29: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/29.jpg)
Definiendo un formulario
⚫ Crear una clase⚪ que implemente \Drupal\Core\Form\FormInterface⚪ o que herede
⚫ \Drupal\Core\Form\FormBase⚫ \Drupal\Core\Form\ConfigFormBase⚫ \Drupal\Core\Form\ConfirmFormBase
⚫ Implementar⚪ getFormId
![Page 30: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/30.jpg)
![Page 31: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/31.jpg)
Construyendo un formulario
![Page 32: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/32.jpg)
Construyendo un Formulario
⚫ Implementar⚪ buildForm
![Page 33: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/33.jpg)
![Page 34: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/34.jpg)
Construyendo un Formulario
⚫ Implementar⚪ buildForm
⚫ Argumentos⚪ array $form
⚫ ‘elements’ y ‘#attributes’
![Page 35: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/35.jpg)
![Page 36: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/36.jpg)
![Page 37: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/37.jpg)
Construyendo un Formulario
⚫ Implementar⚪ buildForm
⚫ Argumentos⚪ array $form
⚫ ‘elements’ y ‘#attributes’⚪ FormStateInterface $form_state
⚫ values, storage, errors y redirect
![Page 38: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/38.jpg)
Validando un formulario
![Page 39: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/39.jpg)
Validando un formulario
⚫ Implementar:⚪ formValidate
![Page 40: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/40.jpg)
![Page 41: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/41.jpg)
Validando un formulario
⚫ Implementar:⚪ formValidate
⚫ Argumentos⚪ array $form
⚫ ‘elements’ y ‘#attributes’
![Page 42: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/42.jpg)
Validando un formulario
⚫ Implementar:⚪ formValidate
⚫ Argumentos⚪ array $form
⚫ ‘elements’ y ‘#attributes’⚪ FormStateInterface $form_state
⚫ values, storage, errors y redirect
![Page 43: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/43.jpg)
Procesando un formulario
![Page 44: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/44.jpg)
Procesando un formulario
⚫ Implementar:⚪ formSubmit
![Page 45: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/45.jpg)
![Page 46: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/46.jpg)
Procesando un formulario
⚫ Implementar:⚪ formSubmit
⚫ Argumentos⚪ array $form
⚫ ‘elements’ y ‘#attributes’
![Page 47: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/47.jpg)
Procesando un formulario
⚫ Implementar:⚪ formSubmit
⚫ Argumentos⚪ array $form
⚫ ‘elements’ y ‘#attributes’⚪ FormStateInterface $form_state
⚫ values, storage, errors y redirect
![Page 48: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/48.jpg)
Mostrando un formulariointegrando en una ruta
![Page 49: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/49.jpg)
Mostrando un formulario integrado en una ruta
⚫ En modules/example/example.routing.yml
![Page 50: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/50.jpg)
![Page 51: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/51.jpg)
Mostrando un formularioprogrammatically
![Page 52: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/52.jpg)
![Page 53: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/53.jpg)
Alterando un formulario
![Page 54: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/54.jpg)
Alterando un formulario
⚫ Igual que en Drupal 7
![Page 55: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/55.jpg)
Alterando un formulario
⚫ Igual que en Drupal 7
⚫ hook_form_alter⚫ hook_form_FORM_ID_alter
![Page 56: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/56.jpg)
![Page 57: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/57.jpg)
Pintando un formulario
![Page 58: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/58.jpg)
Pintando un formulario
⚫ Twig
![Page 59: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/59.jpg)
Pintando un formulario
⚫ Twig
⚫ form.html.twig⚫ form-element.html.twig⚫ form-element-label.html.twig⚫ input.html.twig⚫ select.html.twig⚫ textarea.html.twig⚫ ...
![Page 60: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/60.jpg)
![Page 61: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/61.jpg)
![Page 62: Formularios en Drupal 8](https://reader033.vdocuments.co/reader033/viewer/2022042701/55b718d7bb61ebfc658b46ea/html5/thumbnails/62.jpg)
Webgrafía
⚫ Form API in Drupal 8https://www.drupal.org/node/2117411
⚫ Form API Referencehttps://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/8
⚫ Getting Started with Forms in Drupal 8https://drupalize.me/blog/201401/getting-started-forms-drupal-8
⚫ Changes in the Form API in Drupal 8https://drupalize.me/blog/201501/changes-form-api-drupal-8
⚫ Drupal 8 APIhttps://api.drupal.org/api/drupal/8