Introducción a formularios
Resumen de la sección: En esta sección, el instructor introduce el tema de los formularios y explica que comenzarán con este tema antes de volver a las bases de datos en las próximas clases.
Creación de páginas controladoras
- El instructor repasa la creación de rutas o páginas controladoras.
- Explica que puede surgir la necesidad de crear una página controladora con datos específicos.
- Interrupción por parte del estudiante.
Clases controladoras
- El instructor explica que una clase controladora no tiene por qué ser necesariamente una página y puede ser una clase suelta que extienda controller base.
- Señala que siempre hay que tener en cuenta la programación orientada a objetos y las capas oficiales.
- Explica cómo crear una clase intermedia para añadir métodos extra y luego crear clases controladoras que extiendan esa clase intermedia.
Flexibilidad en estructuras
- El instructor destaca la importancia de abrir un poco la mente para cuando surgen necesidades complejas o proyectos muy complejos.
- Señala que estas estructuras son rígidas pero extensibles, lo importante es conservar la base mientras se amplía.
Creación de formularios
- El instructor muestra cómo lanzar el comando "duss generate" para crear un módulo nuevo.
- Explica los tres tipos diferentes de formularios disponibles: form simple, formularios de búsqueda y formularios con validación.
Creación de formulario en módulo
Resumen de la sección: En esta sección, el instructor muestra cómo crear un formulario en un módulo.
Creación del módulo y generación del formulario
- Primero, se crea el módulo y luego se genera el formulario con "Bruce generate form :simple".
- Se crea una clase llamada "SoloSimple" para ir dentro del módulo.
- Se cambia la ruta a "/forms/simple" y se le asigna el título "Simple".
- Se añade dependencia al módulo.
Descarga del módulo y estructura
- El nuevo módulo es descargado completo.
- La estructura incluye un archivo info y routing.
Diferencias entre routing de página controladora y formulario
- El archivo routing es similar al de una página controladora, pero la entrada es "form" en lugar de "control".
- En una clase controladora, solo hace falta un método para ejecutar esa página. En cambio, en un formulario necesitamos varios métodos (validación, construcción, envío), por lo que apuntamos a una clase específica solo para ese formulario.
Clase Form
- La clase que creamos extiende a Form.
Construyendo un formulario en Drupal 8
Resumen de la sección: En esta sección, el instructor explica cómo construir un formulario en Drupal 8 y cómo validar los elementos del formulario.
Método Bill form
- El método Bill form es el encargado de construir el formulario.
- El formulario está compuesto por un array donde cada elemento es un elemento del formulario.
- Dependiendo del tipo de formulario, tendrá diferentes botones de acción.
Validación de elementos del formulario
- El validated permite validar la información introducida en el formulario.
- La validez form es la que hace la validación de los elementos del formulario.
- Si algún campo no cumple con las condiciones establecidas, lanza un error y devuelve el formulario al usuario para que lo complete correctamente.
Form State
- El Form State es un objeto que contiene el estado actual del formulario.
- Se accede al Form State con get value y se comprueba si cumple con las condiciones establecidas.
Submit
- Al submit solo se llega si todos los campos han sido validados correctamente.
Estructura del formulario
Resumen de la sección: En esta sección, el presentador explica la estructura básica de un formulario en Drupal y cómo funciona su validación.
Creando un formulario
- Un formulario puede ser utilizado para guardar información en una tabla, enviar un correo o trabajar con nodos.
- La estructura básica del formulario incluye tres partes: bill form para construir el formulario, validay para validar los datos y submit para enviar el formulario.
- El submit es el punto donde se realiza la acción deseada con los datos del formulario.
Validación de campos obligatorios
- Drupal tiene una forma de comprobar si los campos obligatorios están completados antes de enviar el formulario.
- Si intentamos enviar un campo vacío, el navegador mostrará un mensaje que no llega a Drupal.
- Si quitamos la propiedad "requerido" del HTML, podemos engañar al navegador pero Drupal aún comprueba si los campos obligatorios están completados.
- Si hay errores en los campos obligatorios, Drupal muestra mensajes junto a cada campo utilizando el módulo Inline Form Errors.
Enviando y procesando el formulario
- Una vez que todos los campos son válidos, se envía el mensaje "El mensaje ha sido enviado".
- Después de procesar todo lo que tenga por aquí y hacer cualquier otra cosa necesaria con el formulario, Drupal hace un redirect hacia la portada.
Creación de un formulario con React Hook Form
Resumen de la sección: En esta sección, el presentador explica cómo crear un formulario utilizando React Hook Form.
Creación del formulario
- Se crea un nuevo archivo para el componente del formulario.
- Se importa
useFormdesdereact-hook-form.
- Se utiliza
useFormpara inicializar el objetoformMethods.
- Se crea una función para manejar la presentación del formulario.
Añadir campos al formulario
- Se añaden campos al formulario utilizando los componentes proporcionados por
react-hook-form, comoControlleryErrorMessage.
- Cada campo tiene su propio objeto de configuración que incluye reglas de validación y opciones adicionales.
Validación del formulario
- La validación se realiza utilizando las reglas definidas en los objetos de configuración de cada campo.
- El objeto
errorscontiene información sobre cualquier error que ocurra durante la validación.
- Los errores se muestran en tiempo real utilizando el componente
ErrorMessage.
Envío del formulario
- El envío del formulario se maneja mediante la función proporcionada por
useForm.
- La función recibe una función callback que se ejecuta cuando el envío es exitoso.
- Los valores introducidos en el formulario están disponibles dentro de la función callback.
Accediendo a los valores del formulario con React Hook Form
Resumen de la sección: En esta sección, el presentador explica cómo acceder a los valores introducidos en un formulario creado con React Hook Form.
Acceso a los valores del formulario
- Los valores introducidos en el formulario están disponibles dentro del objeto
formState.
- El método más común para acceder a los valores es
getValues().
- También se puede utilizar
watch()para observar cambios en los valores del formulario.
Acceso a campos individuales
- Los valores de campos individuales pueden ser accedidos utilizando el método
getValues()y proporcionando el nombre del campo como argumento.
- Alternativamente, se puede utilizar la función callback proporcionada por
watch()para observar cambios en un campo específico.
Ejemplo práctico
- Se muestra un ejemplo práctico de cómo acceder a los valores del formulario utilizando
getValues()ywatch().
- Los valores son mostrados en la consola para demostrar que están siendo correctamente accedidos.
Creación de formulario con PHP
Resumen de la sección: En esta sección, el presentador muestra cómo crear un formulario utilizando PHP. Se explica cómo agregar campos adicionales al formulario y cómo validar los datos ingresados en los campos.
Agregar campo de título al formulario
- El presentador agrega un campo de título al formulario.
- Se menciona que el campo es un array y que las claves del array deben ser únicas.
- Se discute la validación del campo y se sugiere usar una función de PHP para contar el número de palabras.
Validar datos ingresados en el formulario
- El presentador sugiere agregar validación a otro campo utilizando la función
str_word_countde PHP.
- Se muestra cómo obtener el nombre del campo y cómo verificar si tiene menos de 5 palabras.
- Se menciona la importancia de indicar el campo donde debe aparecer el mensaje de error.
Conclusiones
En esta sección, aprendimos a agregar campos adicionales a un formulario y validar los datos ingresados en ellos. También aprendimos sobre la importancia de utilizar claves únicas para los elementos del array y cómo utilizar funciones predefinidas en PHP para realizar tareas específicas.
Comprobación de formularios
Resumen de la sección: En esta sección, el presentador habla sobre cómo comprobar los formularios en Drupal. Se enfoca en la importancia de verificar que los elementos del formulario estén bien colocados y que se cumplan los valores esperados. También menciona la validación del correo electrónico y cómo proteger el sistema a nivel de servidor.
Verificación de elementos del formulario
- Es importante verificar que los elementos del formulario estén bien colocados.
- Se debe comprobar que se cumplan los valores esperados.
- Utilizar
stape get valuespara ver todos los valores y comprobar que se produce el error o no.
Validación del correo electrónico
- La validación del correo electrónico es importante.
- El navegador hace una primera comprobación, pero también hay que hacer la comprobación a nivel de Drupal.
- La propiedad
Fall valuepermite poner un valor por defecto.
Protección del sistema a nivel de servidor
- Siempre hay que proteger nuestro sistema a nivel de servidor, no solo a nivel de cliente.
- Es posible cambiar el tipo de campo desde HTML, por lo que siempre hay que hacer la comprobación correspondiente.
Añadir un campo con valor por defecto
Resumen de la sección: En esta sección, el instructor muestra cómo agregar un campo con un valor por defecto y permitir que el usuario lo cambie. También sugiere dos tareas para los estudiantes.
Agregar un campo con valor por defecto
- Se puede agregar un valor por defecto a un campo cuando se carga el formulario.
- El usuario puede cambiar este valor si lo desea.
Tareas sugeridas para los estudiantes
- Añadir un campo de texto llamado "name" y completar la información del usuario actual.
- Completar la información del usuario actual usando name y email.
Solución de problemas en la etiqueta Fall balútete
Resumen de la sección: En esta sección, el instructor ayuda a solucionar problemas en una etiqueta Fall balútete.
Consejos para solucionar problemas en Fall balútete
- Verificar que las clases estén escritas correctamente.
- Comprobar que esté guardando y subiendo el archivo correctamente.
- Compartir pantalla si es necesario para obtener ayuda adicional.
Revisión del código
Resumen de la sección: En esta sección, el instructor revisa el código y da consejos sobre cómo mejorarlo.
Consejos para mejorar el código
- Siempre poner primero un valor estático antes de usar uno dinámico.
- Recordar poner siempre una coma al final de un array, incluso si es el último elemento.
- Comprobar que funciona con un valor estático antes de usar uno dinámico.
- Si no funciona después de usar un valor dinámico, verificar los métodos utilizados en la variable ocurren user.
- Asegurarse de que los campos adicionales estén rellenos para el usuario actual.
Recargar y validar el correo electrónico
Resumen de la sección: En esta sección, el presentador habla sobre cómo recargar y validar el correo electrónico en Drupal.
Recargar
- Se menciona que se va a recargar.
- No hay más detalles disponibles.
Validar el correo electrónico
- El presentador muestra cómo acceder al listado de servicios de Drupal para buscar por "email".
- Se encuentra una clase llamada "email validator" que tiene un método llamado "is valid".
- Para llamar al servicio, se utiliza la función
drupal serviceseguida del nombre del servicio (email.validator).
- Se muestra cómo utilizar la función
is validpara validar si un correo electrónico es válido o no.
- Si el correo electrónico no es válido, se lanza un error con un mensaje personalizado.
Eliminación y recuperación de negado
Resumen de la sección: En esta sección, el presentador muestra cómo eliminar temporalmente una validación de correo electrónico para probar un error y luego recuperarla. También explica cómo el navegador bloquea automáticamente los correos electrónicos no válidos.
- Se elimina temporalmente la validación de correo electrónico para probar un error.
- El navegador bloquea automáticamente los correos electrónicos no válidos.
- Si se intenta enviar un correo electrónico no válido, el navegador espera una arroba y algo detrás antes de bloquearlo.
- Una vez que se comprueba que el correo es válido, se puede volver a agregar la validación eliminada anteriormente.
Uso del Current User y Email Validator
Resumen de la sección: En esta sección, el presentador muestra cómo inyectar servicios en una clase controladora utilizando las propiedades Current User y Email Validator.
Inyección de Servicios
- Los servicios Current User y Email Validator son generados como propiedades en la clase controladora.
- Para acceder a los servicios, es necesario buscar sus nombres en el contenedor de servicios.
- La propiedad protegida "current user" debe ser agregada a la clase controladora junto con otra propiedad llamada "email validator".
Agregar Servicios al Create
- El método Create accede al contenedor de servicios para buscar los nombres correspondientes a los servicios Current User y Email Validator.
- La clase asociada con el servicio Current User debe ser copiada y agregada a la cláusula "use" en la parte superior de la clase controladora.
- La misma acción se aplica para el servicio Email Validator.
- También es necesario agregar la interfaz del contenedor al principio de la clase controladora.
Inyección de Dependencias
Resumen de la sección: En esta sección, el instructor explica cómo utilizar la inyección de dependencias en Drupal 8. Explica cómo pasar los servicios que se van a inyectar al método create y cómo asignarlos en el constructor.
Creación del Constructor
- El método create recibe el contenedor y los servicios que se van a inyectar.
- El constructor cambia debido a que hay otros servicios que no son los mismos que antes.
- Los servicios deben ser pasados como parámetros y cada uno lleva su clase.
Asignación de Servicios
- Se debe obtener el nombre completo de la clase para ponerlo en la cláusula use.
- El primer parámetro es current user y el segundo es email validator.
- Se hace la asignación entre thisser y los parámetros que entran.
Validación del Código
- El IDE muestra si hay algún problema con las variables o si las cláusulas no están siendo utilizadas.
- Si pita algún sitio puede ser porque hay un error en algún nombre de clase o falta una cláusula use.
Utilización de Servicios Inyectados
Resumen de la sección: En esta sección, el instructor muestra cómo utilizar los servicios inyectados en Drupal 8. Explica cómo usar directamente el disco en user y cambiar current por tips current.
Cambio del Código
- El disco rang user y el email validator dentro del Dish ya están disponibles.
- Ya no es necesario llamar al drupal global, se debe usar directamente el disco en user.
- Se cambia current por tips current y se elimina la comprobación de email de drupal global.
Prueba del Código
- Se realiza una prueba para verificar que todo sigue funcionando correctamente.
- No se ha encontrado nada raro en este método.
Inyección de dependencias
Resumen de la sección: En esta sección, el orador habla sobre cómo quitar una inyección que ya estaba disponible y cómo limpiar todo lo relacionado con el usuario actual. También menciona que hay una propiedad llamada "Access" que determina si tenemos acceso a un elemento.
Quitando una inyección existente
- El email validator es más específico que el current.
- La propiedad del current user debe ser eliminada para evitar sobrescribir.
- Es necesario limpiar todo lo relacionado con el current.
Propiedad Access
- Access determina si tenemos acceso al elemento.
- Si Access es False, no tendremos acceso al elemento y se anulará completamente la entrada.
Ejemplo de uso de Access en username
Resumen de la sección: En esta sección, el orador muestra un ejemplo de cómo usar la propiedad "Access" en el campo "username".
- Se agrega la propiedad "Access" al campo "username".
- El campo "username" desaparece cuando se establece la propiedad "Access" en False.
- Se muestra cómo los valores del formulario están disponibles incluso si no son visibles para el usuario.
Conclusión
Resumen de la sección: En esta última parte, el orador concluye su presentación y sugiere tomar un descanso antes de continuar.
Prueba de formulario en usuario anónimo
Resumen de la sección: En esta sección, el presentador muestra cómo probar un formulario como usuario anónimo y cómo manejar los mensajes de error que pueden aparecer.
Prueba del formulario como usuario anónimo
- Se puede probar el formulario como usuario anónimo abriendo una ventana de incógnito y ejecutando el formulario. El nombre de usuario no se rellena automáticamente porque no tiene valor.
- Si se rellena el correo electrónico, debe ser válido para que pase la prueba.
Manejo de mensajes de error
- Cuando no se ven los mensajes de DPM (Depuración por Mensajes Directos), es necesario ir a los permisos del usuario.
- En desarrollo, se puede permitir que cualquier usuario vea la salida del DPM. En producción, esto no es posible.
- Para guardar la salida del DPM en lugar de mostrarla en pantalla, es necesario guardar estos permisos.
Comprobación si hay nombre de cuenta
- Si el nombre de cuenta está vacío, no rompe nada. Simplemente devuelve un valor vacío.
- Se puede usar un operador ternario para comprobar si hay nombre de cuenta y mostrar o ocultar campos según corresponda.
Uso del operador ternario en PHP
Resumen de la sección: En esta sección, el presentador explica cómo usar el operador ternario en PHP para simplificar el código.
- El operador ternario en PHP es un If abreviado que se puede usar para meter una sola línea de código.
- La sintaxis del operador ternario es: condición ? valor si verdadero : valor si falso.
- Se puede usar una variable auxiliar para simplificar aún más el código.
Desactivar el campo de email con "disable"
Resumen de la sección: En esta sección, el presentador muestra cómo desactivar un campo de correo electrónico utilizando la propiedad "disable".
- Se utiliza la propiedad "disable" para desactivar un elemento, pero aún así se muestra en pantalla.
- El presentador establece la propiedad "disable" en true para el campo de correo electrónico.
- Se comprueba que el campo de correo electrónico está desactivado y no puede ser editado.
Comprobación del estado del usuario
Resumen de la sección: En esta sección, el presentador muestra cómo comprobar si un usuario está registrado o es anónimo.
- Se establece una condición utilizando los métodos "is_anonymous" o "is_authenticated" para determinar si un usuario es anónimo o registrado.
- Si el usuario es anónimo, se le da acceso a cierta funcionalidad. Si no lo es, no tiene acceso.
- También se menciona que las condiciones siempre devuelven verdadero o falso.
Problemas con caché
Resumen de la sección: En esta sección, el presentador considera que puede haber problemas con la caché al comprobar si un usuario está registrado o es anónimo.
- El presentador sugiere que los problemas pueden estar relacionados con la caché.
- Sin embargo, después de vaciar la caché, todavía hay problemas para mostrar ciertos valores dependiendo del estado del usuario.
Operador ternario
Resumen de la sección: En esta sección, el presentador explica cómo utilizar el operador ternario para asignar valores a una propiedad dependiendo de una condición.
- El presentador muestra cómo utilizar el operador ternario para asignar un valor verdadero o falso a una propiedad.
- También se menciona que el operador ternario es útil cuando se quiere asignar un valor diferente a verdadero o falso.
- Se utiliza la función "is_anonymous" para determinar si un usuario es anónimo y, en consecuencia, establecer la propiedad en true o false.
Propiedad "disable" vs. Propiedad "access"
Resumen de la sección: En esta sección, el presentador explica las diferencias entre las propiedades "disable" y "access".
- La propiedad "disable" desactiva un elemento pero aún lo muestra en pantalla.
- La propiedad "access" oculta un elemento completamente si no se cumple cierta condición.
- El presentador muestra cómo utilizar ambas propiedades para controlar el acceso a ciertas funcionalidades.
Modificación de elementos en formulario
Resumen de la sección: En esta sección, el presentador muestra cómo modificar elementos en un formulario. Se explica cómo mostrar y deshabilitar elementos según si el usuario está autenticado o no. También se discuten las propiedades obligatorias y opcionales de los elementos del formulario.
Mostrar y deshabilitar elementos según la autenticación del usuario
- Al mostrar un elemento con su valor, pero no poder modificarlo, se puede usar una condición para que el true y false dependan de alguna variable.
- Si queremos que un elemento esté desactivado cuando el usuario está autenticado, podemos poner una condición para que devuelva true disable.
- Si el usuario es anónimo, el campo de email se deja como estado normal mientras que si está autenticado solo lo deshabilita pero el usuario lo puede ver.
Propiedades obligatorias y opcionales
- Las propiedades obligatorias son: tipo, descripción, valor por defecto, disable y Access.
- El atributo nos permite añadir elementos adicionales a la parte HTML. Por ejemplo, podemos añadir clases al elemento.
- El peso es utilizado para ordenar los campos en un formulario.
Ejemplos prácticos
- El elemento film set permite agrupar campos dentro de él.
- Es importante hacer referencia al campo final en lugar del grupo padre al obtener valores del Ford State.
Cuidado con los nombres de elementos
Resumen de la sección: En esta sección, el presentador advierte sobre la importancia de tener cuidado al nombrar los elementos dentro de un grupo en Drupal. Los nombres deben ser únicos e irrepetibles para evitar conflictos.
Nombres de elementos
- Es importante que los nombres de cada elemento dentro del grupo sean únicos e irrepetibles.
- Si hay conflictos entre los nombres, puede haber problemas cuando se devuelven los valores.
- El nombre final del campo debe ser el nombre único y final que se utiliza.
Uso del elemento "details"
Resumen de la sección: En esta sección, el presentador explica cómo utilizar el elemento "details" en Drupal para reemplazar al anterior "personal data".
Elemento "details"
- El elemento "details" es una versión más moderna y configurable del filtro.
- Permite crear una caja desplegable que puede estar abierta o cerrada por defecto.
Uso del elemento "vertical tabs"
Resumen de la sección: En esta sección, el presentador muestra cómo utilizar el elemento "vertical tabs" en Drupal para agrupar elementos y darles estilo.
Elemento "vertical tabs"
- El elemento "vertical tabs" permite agrupar elementos y darles estilo.
- Todo lo que se ve en Drupal puede replicarse utilizando este elemento.
- Se utiliza para agrupar elementos cuando queremos darles otro estilo o diseño.
Ejemplo completo con grupos y vertical tabs
Resumen de la sección: En esta sección, el presentador muestra un ejemplo completo utilizando grupos y vertical tabs en Drupal.
Ejemplo completo
- Se muestra un ejemplo completo utilizando grupos y vertical tabs.
- El grupo "information" contiene dos elementos "details".
- El elemento "vertical tabs" se utiliza para agrupar los elementos dentro del grupo.
- Los nombres de los elementos deben ser únicos e irrepetibles.
Propiedades de los elementos del formulario
Resumen de la sección: En esta sección, se discuten las propiedades específicas de cada elemento del formulario y cómo acceder a ellas a través de sus clases correspondientes.
Propiedades de los elementos del formulario
- Los elementos del formulario tienen propiedades específicas que se pueden acceder a través de sus clases correspondientes.
- Las propiedades comunes incluyen el tipo de elemento, mientras que otras pueden depender del elemento en sí mismo.
- Por ejemplo, el vertical tabs tiene una propiedad llamada thefap que permite indicar qué pestaña debe abrirse por defecto.
- Cada elemento de formulario tiene una clase asociada que maneja su programación y propiedades.
- El container tiene una propiedad opcional que indica si debe renderizarse cuando no tiene hijos visibles.
Elementos básicos del formulario
- Los elementos básicos incluyen text, textarea, email, numérico, password y teléfono.
- El textarea permite agregar un formato de texto con el editor incluido.
- Es posible restringir los formatos disponibles para el usuario al llenar un campo obligatorio.
Introducción
Resumen de la sección: En esta sección, el presentador introduce el tema del formulario web y explica su importancia en la creación de sitios web interactivos.
¿Qué es un formulario web?
- Un formulario web es una herramienta que permite a los usuarios enviar información a través de un sitio web.
- Los formularios pueden ser utilizados para recopilar información de contacto, comentarios, opiniones y más.
- Los formularios son una parte importante de la experiencia del usuario en un sitio web.
Campos ocultos
Resumen de la sección: En esta sección, el presentador explica cómo funcionan los campos ocultos en los formularios web y cómo pueden ser utilizados para pasar información adicional.
¿Qué son los campos ocultos?
- Los campos ocultos son elementos HTML que no son visibles para el usuario pero que contienen información adicional.
- Los campos ocultos pueden ser utilizados para pasar información como el ID del usuario o el ID del nodo.
- Hay dos tipos de campos ocultos: "hidden" y "value". El campo "hidden" es visible en el código fuente mientras que el campo "value" no lo es.
¿Cómo utilizar los campos ocultos?
- Para utilizar un campo oculto, debemos agregarlo al formulario con su respectivo valor.
- Podemos acceder al valor del campo oculto en el código PHP utilizando la variable $_POST.
- Es importante tener cuidado con la información que se pasa a través de los campos ocultos, ya que puede ser accesible para cualquier persona que tenga acceso al código fuente.
Elementos Renderizables y Formularios
Resumen de la sección: En esta sección, el instructor habla sobre los elementos renderizables y cómo los elementos de formulario son un subconjunto de ellos. También explica cómo agregar HTML en cualquier parte del formulario utilizando el elemento "ítem". Luego, describe los elementos de lista y selección, incluyendo el uso del elemento "Select" y sus opciones.
Elementos Renderizables
- Los elementos renderizables incluyen tanto los elementos de formulario como otros que no tienen interacción con el usuario.
- El elemento "ítem" permite agregar HTML en cualquier parte del formulario.
Elementos de Lista y Selección
- El elemento "Select" es utilizado para crear una lista desplegable con opciones predefinidas.
- Las opciones dentro del elemento "Select" utilizan una estructura similar a la del HTML, con claves y valores.
- El valor seleccionado por el usuario es lo que se guarda y envía por el formulario.
- Los elementos de lista y selección también pueden tener un valor por defecto.
Checkbox, Radio Buttons y Botones de Radio
- Los checkbox funcionan como verdadero o falso.
- Los botones de radio permiten al usuario seleccionar una opción única entre varias opciones predefinidas.
Elementos de Formulario
Resumen de la sección: En esta sección, el presentador muestra los diferentes elementos que se pueden utilizar en un formulario en Drupal.
Tipos de elementos
- El Tablet Select: es una tabla donde solo eliges un valor.
- Options: tiene un código que corresponde al líder del usuario.
- Elementos de fecha: hay varios tipos, como el modo popular y el modo separado.
- Botón Submit: es similar a enviar por defecto.
- Actions: es un grupo de botones que generalmente incluye submit, vista previa, eliminar y cancelar.
- Elemento Button: permite añadir elementos adicionales que no sean submit. Por ejemplo, Image Button añade un botón con una imagen o icono.
- Selección de archivo y selección de color: se verán a nivel programado.
Campos específicos de Drupal
- Campo Peso: permite elegir desde un valor negativo hasta uno positivo para ordenar.
- Campo Machine Name: autogenera el nombre del sistema a partir del campo anterior pero luego tiene su propia edición. Funciona como el componente de nombre del sistema que está en todos los elementos de Drupal.
- Autoconflicto: cuando rellenamos usuarios o taxonomías, busca cualquier usuario o término correspondiente según lo que estemos seleccionando.
Modificación de formularios con hook alter
Resumen de la sección: En esta sección, el presentador explica cómo modificar cualquier formulario del sistema, incluso si es de otro módulo, utilizando hook alter.
- Hook Alter: permite toquetear cualquier formulario del sistema.
Ejemplo de código para implementar un Hook
Resumen de la sección: En esta sección, el presentador muestra un ejemplo de código para implementar un Hook en Drupal.
Parámetros del formulario
- El
hook_form_alterse ejecuta para todos los formularios.
- Los parámetros que tiene son
form,form_stateyform_id.
- Es importante recordar que el nombre del sistema del formulario es el
form_id.
Generación del código
- Se puede generar un ejemplo de código utilizando el comando
drush generate hook.
- Para este caso, como es un Hook, se utiliza el comando
drush generate hook --hook=hook_form_alter.
- No hay nada específico que hacer para esto.
Implementación del Hook
- Para implementar el Hook en cuestión, se debe utilizar la función
Ford alter.
- En este caso, sería:
$form = Ford alter($form, $form_state, $form_id);
Consideraciones al implementar Hooks en Drupal
Resumen de la sección: En esta sección, el presentador da algunas consideraciones importantes a tener en cuenta al implementar Hooks en Drupal.
Nombre del módulo
- Al copiar Hooks de otros módulos, es importante cambiar su nombre por el nombre del módulo donde está programado.
- El nombre siempre debe ser "implements" seguido por el nombre del Hook y luego "in comentario".
Clase o interfaz del Form State
- Es importante pasar el nombre completo donde está la clase o interfaz del Form State a la cláusula "use".
- Se debe quitar la barra y dejar solo el nombre de la clase o interfaz.
Vaciar caché
- Es importante vaciar la caché después de implementar un Hook en Drupal.
- Se puede hacer desde el sitio o utilizando el comando
drush cr.
Identificación del form_id de un formulario en Drupal
Resumen de la sección: En esta sección, el presentador muestra cómo identificar el form_id de un formulario en Drupal.
Ejemplo práctico
- Si se ejecuta un formulario, se puede ver su
form_iden la URL.
- El
form_idtambién aparece en los nombres de sistema y títulos de las páginas donde está integrado el formulario.
- Es importante recordar que no tiene sentido modificar con
hook_form_alterun formulario que pertenece al mismo módulo.
Configuración de formulario
Resumen de la sección: En esta sección, el presentador muestra cómo interceptar y modificar un formulario en Drupal. Se enfoca en cambiar el valor por defecto del primer día de la semana y hacer que el campo país sea obligatorio.
Interceptando el formulario
- El presentador muestra cómo interceptar un formulario.
- Cambia el valor por defecto del primer día de la semana a "lunes".
- Hace que el campo país sea obligatorio.
Identificando el nombre del sistema
- El presentador explica que es necesario identificar el nombre del sistema para asegurarse de que las modificaciones solo se apliquen al formulario deseado.
- Muestra cómo usar dpm para imprimir información sobre los formularios.
Pasando variables por referencia
- El presentador explica la diferencia entre pasar variables por valor y por referencia.
- Explica que los objetos siempre se pasan por referencia, mientras que los valores simples como strings o integers pueden ser pasados tanto por valor como por referencia.
Localizando campos en un formulario
- El presentador muestra cómo localizar campos dentro de un formulario.
- Explica cómo buscar nombres de campo en el primer nivel o dentro de otros elementos.
Claves y valores en Drupal
Resumen de la sección: En esta sección, el orador muestra cómo encontrar claves y valores específicos en Drupal para hacer cambios. También explica cómo cambiar un campo a obligatorio y cómo cambiar el valor predeterminado de un campo.
Encontrar claves y valores
- Para encontrar claves específicas en Drupal, busca los elementos dentro del array.
- El tipo "Select" es donde se encuentra el sitio de Fall country.
- Para cambiar un campo a obligatorio, encuentra la clave correcta dentro del array.
- La clave local es un array que contiene otro array. Cada entrada debe ser puesta individualmente.
Cambiar campos
- Side Force country es el elemento Select que se va a poner como requerido.
- El siguiente campo dentro de locales es date First day, que también es un Select. El valor predeterminado es cero (domingo).
- Si quieres cambiar el valor predeterminado, cambia la clave Ford value a 1.
- Usa dpm antes y después para ver los cambios realizados en el sitio correcto.
Ejemplo práctico
- Actualiza la página para ver los cambios realizados.
- Asegúrate de hacer dpm antes y después para verificar los cambios realizados.
- Si te equivocas al poner una clave, Drupal creará una nueva con un nombre aleatorio.
Cambiar el valor de un campo en Drupal
Resumen de la sección: En esta sección, el orador explica cómo cambiar el valor de un campo en Drupal y muestra cómo hacerlo en tiempo real.
- Cambiar el día de la semana (por ejemplo, de lunes a miércoles) es raro porque lo que se hace es cambiarlo solo en el formulario. El valor predeterminado sigue siendo cero.
- Si cambias el valor del formulario, pero no actualizas la configuración, cuando vuelvas a mostrar el formulario, volverá al valor predeterminado.
- Asignar un campo como obligatorio es más normal que cambiar su valor directamente.