{emailcloak=off}
BreezingForms es una excelente herramienta para Joomla que una vez la conozcamos no va a ahorrar mucho trabajo. Una de las características de BreezingForms es que envía automáticamente los formularios creados al correo electrónico además de guardar una copia en la base de datos del sitio.
Esto está muy bien, pero en muchas ocasiones se nos pide que el formulario se envíe a diferentes departamentos, según la naturaleza de la consulta. Por ejemplo, si es una consulta del departamento comercial, técnico, etc. A continuación vamos a ver cómo solucionar esto.
Lo que haremos será usar nuestro formulario de contacto de BreezingForms estándar y le añadiremos un campo de tipo “Lista de selección” , seleccionaremos que no sea de tipo múltiple y en las opciones tendremos que añadir los departamentos. En los values yo no he puesto el mail para evitar ser víctimas del spam, he puesto números enteros en su lugar que luego sustituiré por las direcciones de email que correspondan mediante código PHP.
Estos son los departamentos que he incluido yo:
1;Selecciona departamento;0
0;Soporte técnico;1
0;Comercial;2
0;Reclamaciones;3
Podéis ver el resto de opciones en la captura de imagen.
A continuación vamos a deshabilitar la opción que permite enviar automáticamente el formulario por correo, para ello nos vamos al “Formulario->Editar formulario->Ajustes” y ponemos a No la opción Notificar por email. Ahora vamos a la pestaña “Enviar Piezas” y pegamos el siguiente código en el “Inicio del submit”:
// load the standard FacileForms library
$this->execPieceByName('ff_InitLib');
// check attempt to post with invalid security code
if (ff_getSubmit('seccode') != JFactory::getSession()->get('ff_seccode','')) {
$this->status = 1000; // our custom error code
$this->message = "Código de seguridad incorrecto.";
} // if
/************ PARTE DE ENVIO DE MAILS ************/
global $mailfrom, $fromname;
//$this->execPieceByName('ff_InitLib');
// create the subject string
$subject = "Formulario recibido desde la web";
// create the message
$body = "Formulario: " . $this->formrow->title.nl().nl();
$body .= "Fecha de envío: " . $this->submitted.nl().nl();
if (count($this->maildata)) {
foreach ($this->maildata as $data) {
$body .= $data[_FF_DATA_TITLE].": ".$data[_FF_DATA_VALUE].nl();
}
}
$to = ff_getSubmit('departamento');
if($to == "1"){
$to = "cambiame@cambiame.123";
}
if($to == "2"){
$to = "cambiame@cambiame.123";
}
if($to == "3"){
$to = "cambiame@cambiame.123";
}
if($to == "0"){
$to = "cambiame@cambiame.123";
}
// send the mail
$this->sendMail(
$mailfrom, // mail de la persona que envia el mail
$fromname, // nombre de la persona que envia el mail
$to, // email destinatario (usar array con multiples direcciones)
$subject, // asunto del email
$body // cuerpo del email
);
La primera parte es para comprobar que el captcha es correcto. La parte de envío de mails es donde se obtienen los campos del formulario y se envía el mail a un destinatario u otro según sea necesario. Verás que esto se maneja con unos condicionales, puedes cambiarlos a tu gusto.
Ahora cuando accedamos a nuestro formulario podremos seleccionar el departamento y el mail llegará al sitio adecuado según se haya escogido en la caja de selección.
En esta captura podéis ver como queda el formulario final.
Hemos creado un paquete del formulario para que lo puedas instalar en tu sitio, para ello bajate el fichero XML, ves a “BreezingForms->Configuración->Instalador de paquete”, selecciona el fichero XML y pulsa en “Instalar paquete”. Así ya tendrás tu formulario instalado y funcionando en tu sitio.
Espero que os haya resultado de utilidad.
¿Te ha resultado útil este artículo?
Miembro del equipo de Administración de sistemas de webempresa.com y líder del equipo de desarrollo de CiberProtector y CiberBox.