Mastermind sobre Joomla! ®

El Podcast de Joomla! para que potencies tus proyectos

Gestión de proyectos, Recursos web, Extensiones Joomla!, Seguridad Web, Empezando con Joomla!

¿Necesitas poner un formulario en tu web? En este episodio verás que con Joomla! es muy fácil añadir formularios y preguntarles todo lo que quieres saber ;)

¡Escucha ahora el episodio!


Ya he vuelto de mis vacaciones y Javier Olivares está en medio de las suyas pero eso no ha impedido que nos juntemos para grabar otro episodio y hablemos de lo que más nos gusta: hacer proyectos web de éxito.

En lo que estamos

Aquí está la foto de Gúguel:

guguel

Noticias
Necesitamos tu ayuda para lanzar Joomla! 3.9

Esta versión mejora la privacidad del sistema. Puedes probarla aquí

Ayuda a organizar el JoomlaDay Madrid

El JoomlaDay Madrid 2018 será el 17 de noviembre en la Casa del Corazón en Madrid y ¡Necesitamos tus ideas!

Participa aportando tus ideas al JoomlaDay Madrid 2018

Extensiones vulnerables
Resueltas

Como mencionamos Kunena es la extensión de referencia para montar un foro en Joomla!. Y aquí tenéis la discusión en Twitter con Ciro donde hablamos sobre extensiones de foros.

Formularios en Joomla

Los formularios son una parte muy importante de la web. Si miramos cómo funcionan las páginas web hoy día realmente sólo hacen dos cosas, o muestran información o piden información a los usuarios. Pues bien cada vez que un sitio web os pide información, utiliza un formulario para hacerlo. Así cuando hacemos login en un sitio, añadimos un artículo a un carrito de compra o incluso cuando dejamos un comentario en un sitio (puedes dejar un comentario a este artículo en el formulario de abajo para comprobarlo ?), siempre estaremos usando formularios.

Así que cuando queremos saber cosas de nuestros usuarios lo normal es crear un formulario para que puedan responder a nuestras preguntas.

Como los formularios están en la esencia misma de la web, siempre ha habido formas de hacer formularios con Joomla. Eso sí, no siempre ha sido tan fácil como ahora. Antes era común encontrar una extensión de formularios para joomla que no daban mucha flexibilidad a pesar de ser de pago y que no te permitían por ejemplo tener más de un formulario por página...

Por suerte ahora tenemos Extensiones de formulario para Joomla como Chronoforms o RS Forms. Estas extensiones de formulario son muy potentes y nos permiten por ejemplo ajustar el diseño a nuestras necesidades o procesar los datos de los formularios con mucha facilidad.

¿Qué podemos hacer con los datos que nos envían los formularios?

Vale le hemos pedido a los usuarios que nos envíen sus datos o que nos respondan a nuestras preguntas, y ahora ¿qué hacemos con estos datos?

Desde luego lo más fácil es enviar los datos fel formulario por email. Esta opción la tienes incluso en el formulario de contacto del componente de contactos de Joomla.

Con componentes de formulario especializados normalmente puedes personalizar cómo quieres que sea este email y los campos del formulario que quieres que incluya. También puedes configurar el envío de un email de respuesta al cliente.

Guardar envío de formulario en base de datos

Uno de mis primeros trabajos importantes con Joomla fue la web de un congreso de Neurocirugía. En este proyecto toda la gestión de inscripciones la realicé con el componente de formularios Chronoforms que ya en Joomla 1.5 era muy potente. Chronoforms además de tener una interfaz de creación de formularios intuitiva y fácil de manejar, te permite una gestión muy completa de la lógica tras el envío de los datos del formulario.

Siguiendo las instrucciones en el foro de soporte de Chronoforms pude conectar el formulario de la web con la pasarela de pago de Paypal y así gestionar el pago de las inscripciones.

La secretaría técnica del congreso sólo necesitaba en aquel momento un listado de los inscritos y la situación del pago. Chronoforms además de guardar los datos del formulario en la base de datos de Joomla, te permite exportar este listado fácilmente así que fue muy fácil gestionar inscripciones.

Como anécdota nos quedó que una de las agencias que inscribía a los médicos no entendió muy bien eso de inscribirse por internet y decidió imprimir en papel el formulario de inscripción y enviarlo por fax ??‍♂️

Asegurar los formularios

Si no quieres que tus formularios colapsen con un montón de envíos de Spammers anunciando sus servicios, tienes que poner alguna medida de seguridad.

Pero no te preocupes porque no será muy difícil. Los spammers no están rellenando formularios a mano todo el día ¡ni mucho menos! Normalmente tienen bots que intentan rellenar los formularios que encuentran en su camino mientras que navegan por la red. Por tanto sólo necesitas algo que demuestre que quien está rellenando el formulario es una persona (humana a ser posible ?)

Lo más habitual es usar un desafío CAPTCHA. El CAPTCHA es un tipo de desafío que un bot no puede rellenar pero que para una persona es fácil de resolver.

En los inicios de internet se solía mostrar una imagen con un código alfanumérico algo distorsionado. Con esta pequeña distorsión el bot no era capaz de leer el código pero para una persona era fácil de entender.

Rápidamente se popularizó el desafío llamado reCaptcha que compró Google y que ahora ya ha evolucionado al sistema llamado reCAPTCHA v3 o noCAPTCHA que es prácticamente transparente para los humanos.

Joomla! incorpora un plugin que permite usar este sistemade reCAPTCHA tanto en la nueva versión 3 como en al previa versión 2. La versión original ya no está soportada por Google y por tanto no es posible utilizarla.

En algún momento he visto algún plugin más de reCaptcha en el directorio de extensiones e incluso alguno como PlayThru que convertía el desafío CAPTCHA en un videojuego sencillo. En cualquier caso hay muchos plugins de CAPTCHA en el directorio de extensiones de Joomla que podéis utilizar si no os convence usar el servicio de reCAPTCHA.

Además del sistema de CAPTCHA, un sistema muy popular para evitar envíos automáticos de un formulario es montar una trampa o Honeypot. Esta trampa consiste en añadir un campo oculto a los ojos del usuario (normalmente con CSS o con javascript) y que los usuarios no rellenarán, pero que los bots sí se lanzarán a rellenar porque no saben que no deben hacerlo ;). Esto ha funcionado muy bien durante muchos años y aun hoy ayuda a evitar muchos envíos automáticos ;).

Para añadir esta Honeypot, puedes hacerlo tú mismos a mano si tienes control sobre la lógica del formulario o bien puedes usar una extensión de seguridad como Admin Tools que implementa este tipo de medidas de seguridad.

Formas menos usuales de hacer formularios

Vale, has revisado las extensiones de formulario que existen para Joomla y no te convence ninguna. Siempre les falla algo: el estilo, no permiten la lógica que tú quieres... O simplemente te apetece desarrollar algo propio para tener más control. En este caso siempre puedes generar un componente propio que te sirva para enviar formularios.

En estos casos, la opción más rápida es desde luego el servicio de Component Creator. Con este servicio puedes crear un componente Joomla con una tabla y con tantos campos como quieras. Es una opción muy interesante, sobretodo si no es un sitio que requiera de muchos formularios o si tienen una lógica de tratamiento muy compleja y necesitas muchísimo control sobre el sistema.

Si además quieres aprender más sobre el desarrollo Joomla, también puedes usar las plantillas para desarrollar extensiones Joomla que mantiene el proyecto Joomla ;)

Servicios de terceros para hacer formularios

Por el contrario, lo tuyo es no complicarte la vida y quieres que sean otros los que lleven todo el trabajo del formulario. Está bien. En estos casos puedes optar por un servicio como TypeForm o incluso como LimeSurvey para crear encuestas en línea.

Estos servicios te facilitarán un código que tendrás qeu incluir en tu sitio y con eso ellos cargarán el formulario que necesites en el sitio web ;).

Algunas cosas chulas con formularios

Eso sí, por muy chulos que sean estos servicios de terceros, pierdes posibilidades de personalización. Una cosa muy chula que existe desde hace un tiempo es Conversational Form que convierte tus formularios en chats. Esto es realmente impresionante porque para casos simples da la impresión completa de que estás hablando en un chat con alguien. No obstante no te olvides de que es sólo un cambio estético y que no hay ningún tipo de inteligencia artificial detrás haciendo preguntas ;)

Proyecto del episodio
Proyecto de la semana

Se trataba de un proyecto conjunto que ya avisamos en el episodio 30 que iba a ser a varias semanas. El proyecto es crear la App de Joomla! para Sandstorm.io

En estas semanas a pesar de las vacaciones hemos comenzado el proyecto y ya tenemos un servidor en OVH donde hemos instalado SandStorm y estamos viendo cómo funcionan las integraciones.

Proyecto del próximo episodio

Para el próximo episodio seguiremos trabajando en esta integración y os contaremos nuestros avances ;)

Feedback

Y este es el comic sobre Vim (sacado del grupo de Telegram de Hacklab Almería):

empezando con vim

Comentarios gracias a CComment

¡Escúchanos donde quieras!

mastermindjoomla.com is not affiliated with or endorsed by The Joomla! Project™. Use of the Joomla!® name, symbol, logo and related trademarks is permitted under a limited license granted by Open Source Matters, Inc.


mastermindjoomla.com no tiene afiliación alguna ni está recomendada por el proyecto Joomla! Project™. El uso del nombre Joomla!®, su símbología, y logotipo y sus marcas relacionadas está permitido bajo una licencia limitada concedida por Open Source Matters, Inc.

MastermindJoomla.com es un proyecto de MJ y Extly