SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
EL PODER DE WEBFORM
David Gil & Ruben Egiguren
#DrupalCampES
David Gil
david.gil@biko2.com
@david_gil_biko2
ruben.egiguren@biko2.com
@regiguren
Ruben (keopx) Egiguren
Definimos,
diseñamos
y construimos
negocios digitales
Podemos presumir de trabajar con ...
¿Te interesa unirte a Biko? ¡Búscanos!
¿Te vienes a
?
Webform
8.x-5.x
Jacob Rockowitz (jrockowitz)
■ Qué es/Historia
■ Creación de Webforms
■ Elementos/Validaciones
■ Formularios multi paso
■ Configuración de Webform
■ Gestión de envíos
■ Extendiendo Webform
Qué es el módulo
webform
¿QUÉ ES?
Un módulo para
construir
formularios y
gestionar los
envíos
Historia
■ Webform es el módulo más popular para la creación de
formularios en Drupal 7 (>450.000 instalaciones)
■ Cuando se liberó Drupal 8 en Nov-2015 no existía
planificación para migrarlo a Drupal 8
■ El proyecto YAML Form comenzó en Diciembre de 2015 por
Jacob Rockowitz (@jrockowitz)
■ En diciembre de 2016 YAML Form fue convertido en la
versión de Drupal 8 de Webform
■ Jacob Rockowitz continúa siendo el principal mantenedor
■ Actualmente tiene >11.000 instalaciones en Drupal 8
HISTORIA
■ Webform: Permite la creación de
formularios web y cuestionarios.
■ Webform Node: Proporciona un tipo de
contenido Webform que permite
integrar los formularios web en un sitio
web como nodos.
■ Webform UI: Proporciona una interfaz
de usuario para crear y mantener
formularios web.
CORE MODULES
■ Webform Devel: Proporciona herramientas de
desarrollo para el módulo.
■ Webform Examples: Proporciona ejemplos de
todos los elementos y funcionalidades del webform
que se pueden utilizar para demostrar y probar
funcionalidades avanzadas.
■ Webform Templates: Proporciona plantillas que se
pueden utilizar para crear nuevos Webforms.
■ Webform Scheduled Email: Extiende el handler de
email para permitir envíos programados.
OTROS MÓDULOS
Creando
Webforms
La administración de
Webform está en:
Estructura/Webforms
Webform Admin
Creando
un
Webform
Elementos
Elementos
Webform trae de
serie más de 70
tipos distintos de
elementos (y
creciendo...).
Elementos
■ HTML: Textfield, Textareas, Checkboxes, Radios, Select menu,
Password ...
■ HTML5: Email, Url, Number, Telephone, Date, Number, Range ...
■ Drupal: File uploads, Entity References, Table select, Date list ...
■ Custom: Likert scale, Star rating, Toggle, Buttons, Credit card
number, Geolocation, Select/Checkboxes/Radios with other ...
■ Markups: Inline dismissable messages, HTML Markup, Details, y
Fieldsets.
■ Compuestos: Name, Address, Contact, Credit Card
Elementos
Edición visual de
propiedades
¡Power user!
edición en
YAML
Validación de
campo
Cada tipo de elemento
tiene su propia
validación
Validaciones
Form States
Renderizado y
propiedades
basadas en
valores de otros
campos
Mascaras de
entrada
Personaliza fácilmente el
formato de entrada de tus
campos
Mascaras de entrada
Multi paso
Multi paso
Multi paso
Multi paso
Configuración
general
1000 posibilidades!
■ Configurar los permisos de acceso de un Webform y los envíos
■ Inhabilitar el autocompletado de campos
■ Deshabilitar la validación en cliente
■ Permitir a los usuarios guardar borradores de los envíos
■ Permitir a los usuarios actualizar un envío mediante un token
seguro
■ Restringir el número de envíos a un Webform en total
■ Permitir añadir clases CSS, estilos y Javascript al Webform
■ ...
Configuración de Webform
Configuración
de Webform
Handlers
Nos permiten
actuar en el
workflow de
envíos o
renderización de
webform
Envíos
■ Los envíos de Webform son entidades y contienen todos los
datos introducidos en el Webform
■ Además incluyen metadatos: fechas, user id, IP, ...
■ Podemos exportar los envíos a diferentes formatos: CSV,
Yaml, HTML, json
Envíos
Envíos
Extendiendo
Webform
/**
* Implements hook_form_alter().
*/
function webform_example_form_alter(&$form, &$form_state, $id) {
if ($id == 'webform_submission_contact_form') {
$form['elements']['name']['#title'] = t('Name');
}
}
/**
* Implements hook_form_form-id_alter().
*/
function webform_example_form_webform_submission_contact_form_alter(&$form,
&$form_state) {
$form['elements']['name']['#title'] = t('Name');
}
NOTA: También es posible realizar un alter usando las propiedades de los handler
Alter de Webform
Todos los elementos se basan en Drupal Form API de Core.
Básico: Extender campos básicos de Webform. Objeto unico.
■ Campo de texto
■ Seleccionar lista
■ ...
Compuesto - Extender WebformCompositeBase. Se utiliza como
contenedor para múltiples elementos.
■ Dirección
■ Tarjeta de crédito
■ ...
Creando elementos personalizados
■ Permiten reaccionar en los diferentes eventos lanzados en el
ciclo de vida de un formulario: alterElements, alterForm,
validateForm, submitForm, confirmForm, preCreate,
postCreate, postLoad, preSave, postSave, preDelete,
postDelete
■ https://gist.github.com/davidgil/2b0a4840b5e9315a243b4cf3
59782d80
Creando Handlers personalizados
Handlers
Creación de users
Handlers
Integración
con APIs
Handlers
Creación de nodos
complejos
Conclusiones
■ Compatible con la API de Drupal Form
■ Robusto desde fases iniciales, en continua evolución
■ Extensible fácilmente, convirtiéndolo en una herramienta
potente con un poco de imaginación
■ Hay alternativas, pero ni de lejos tan avanzadas y robustas:
contact + contact_storage, eform
Conclusiones
¡Gracias!
Thank you!
#DrupalCampES
@david_gil_biko2
@regiguren
@biko2

Más contenido relacionado

Similar a El poder de webform (antes yaml form)

Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web apiDemian Raschkovan
 
Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...
Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...
Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...Santiago Porras Rodríguez
 
Seminario html5
Seminario html5Seminario html5
Seminario html5UDECI
 
Symfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webSymfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webIEBSchool
 
CV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LSTCV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LSTjose martinez
 
04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...Cristian Rodríguez Enríquez
 

Similar a El poder de webform (antes yaml form) (20)

Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web api
 
Diseño web
Diseño webDiseño web
Diseño web
 
Diseño web
Diseño webDiseño web
Diseño web
 
Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...
Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...
Creatividad en la visualización de contenidos en SharePoint con JS Link y Dis...
 
Aplicaciones móviles - HTML5
Aplicaciones móviles - HTML5Aplicaciones móviles - HTML5
Aplicaciones móviles - HTML5
 
Formularios al limite
Formularios al limiteFormularios al limite
Formularios al limite
 
Salesforce Bilbao Elevate '15 - 4th developer workshop
Salesforce Bilbao Elevate '15 - 4th developer workshopSalesforce Bilbao Elevate '15 - 4th developer workshop
Salesforce Bilbao Elevate '15 - 4th developer workshop
 
Seminario html5
Seminario html5Seminario html5
Seminario html5
 
Symfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webSymfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo web
 
Las Ventajas de usar HTML5 Y CSS3
Las Ventajas de usar HTML5 Y CSS3Las Ventajas de usar HTML5 Y CSS3
Las Ventajas de usar HTML5 Y CSS3
 
InfoPath 2010
InfoPath 2010InfoPath 2010
InfoPath 2010
 
CV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LSTCV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LST
 
HTML5 Nuevas Etiquetas Semanticas
HTML5 Nuevas Etiquetas SemanticasHTML5 Nuevas Etiquetas Semanticas
HTML5 Nuevas Etiquetas Semanticas
 
3/9 soa y web services
3/9 soa y web services3/9 soa y web services
3/9 soa y web services
 
Páginas web
Páginas webPáginas web
Páginas web
 
Páginas web
Páginas webPáginas web
Páginas web
 
0x04-HTML_FORMS.pdf
0x04-HTML_FORMS.pdf0x04-HTML_FORMS.pdf
0x04-HTML_FORMS.pdf
 
Todomir
TodomirTodomir
Todomir
 
04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
04 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
 
tomato_cart
tomato_carttomato_cart
tomato_cart
 

Más de Keopx

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10Keopx
 
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9Keopx
 
Fucking copyright
Fucking copyrightFucking copyright
Fucking copyrightKeopx
 
Segurtasuna sarean
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sareanKeopx
 
[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCIKeopx
 
[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remotoKeopx
 
[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a DrupalKeopx
 
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgDrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgKeopx
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100Keopx
 
Contribuir a Drupal
Contribuir a DrupalContribuir a Drupal
Contribuir a DrupalKeopx
 
Contribuir a Drupal - Entorno
Contribuir a Drupal - EntornoContribuir a Drupal - Entorno
Contribuir a Drupal - EntornoKeopx
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de gitKeopx
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015 Keopx
 
Drupal 8 WorkShop
Drupal 8 WorkShopDrupal 8 WorkShop
Drupal 8 WorkShopKeopx
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPKeopx
 
Drupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreDrupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreKeopx
 
Drupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaDrupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaKeopx
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 

Más de Keopx (20)

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
 
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
 
Fucking copyright
Fucking copyrightFucking copyright
Fucking copyright
 
Segurtasuna sarean
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sarean
 
[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI
 
[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto
 
[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal
 
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgDrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
 
Contribuir a Drupal
Contribuir a DrupalContribuir a Drupal
Contribuir a Drupal
 
Contribuir a Drupal - Entorno
Contribuir a Drupal - EntornoContribuir a Drupal - Entorno
Contribuir a Drupal - Entorno
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015
 
Drupal 8 WorkShop
Drupal 8 WorkShopDrupal 8 WorkShop
Drupal 8 WorkShop
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 
Drupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreDrupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierre
 
Drupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaDrupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de apertura
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 

El poder de webform (antes yaml form)