Joomla: Modificar Formulario de contacto

Al necesitar personalizar nuestro formulario de contacto para agregar por ejemplo "Teléfono", solo necesitamos trabajar con 4 archivos, 3 de ellos ubicados en /components/com_contact/ y el último he importante /language/es_ES/ .



Es importante hacer una copia de cada uno de los archivos con que estamos trabajando, o si utilizas algún controlador de versiones sería mucho mejor, en mi caso git.  Me explico:


Archivos a utilizar y su ubicación:
  1. /var/www/mi_sitio_web/components/com_contact/tmpl/default_form.php
  2. /var/www/mi_sitio_web/components/com_contact/controllers/contact.php
  3. /var/www/mi_sitio_web/components/com_contact/models/forms/contact.xml
  4. /var/www/mi_sitio_web/language/es-ES.com_contact.ini

  • default_form.php 
                  Justo desdepues de:

            
form->getInput('contact_email'); ?>


                  Agregar:
form->getLabel('contact_phone'); ?>
form->getInput('contact_phone'); ?>

Así saldrá la etiqueta y el campo nuevo luego de  Email*.

  • contact.php

                  Justo desdepues de:
$email      = $data['contact_email'];

                  Agregar:
$phone      = $data['contact_phone'];

                 Luego comentar la línea:
 $body = $prefix."\n".$name.' <'.$email.'>'."\r\n\r\n".stripslashes($body);

                Y agregar:

             $body   = $prefix."\n".$name.' <'.$email.'> Teléfono: <'.$phone.">\r\n\r\n".stripslashes($body);


                Quedando de la siguiente forma:

//$body = $prefix."\n".$name.' <'.$email.'>'."\r\n\r\n".stripslashes($body);
$body   = $prefix."\n".$name.' <'.$email.'> Teléfono: <'.$phone.">\r\n\r\n".stripslashes($body)



  • contact.xml

              Ubicar el siguiente párrafo:

       
                    type="email"
            id="contact-email"
            size="30"
            description="COM_CONTACT_EMAIL_DESC"
            label="COM_CONTACT_EMAIL_LABEL"
            filter="string"
            validate="contactemail"
            required="true"
        />
              Y debajo de este agregar:

            type="phone"
            id="contact-phone"
            size="30"
            description="COM_CONTACT_PHONE_DESC"
            label="COM_CONTACT_PHONE_LABEL"
            filter="string"
            required="true"
/>        


Nos falta es el lenguaje, así que vamos a:

  • es_ES.com_contact.ini
              Agregar las dos siguientes líneas:
COM_CONTACT_PHONE_LABEL="Teléfono"
COM_CONTACT_PHONE_DESC="Teléfono de contacto"

Ya con esto tenemos nuestro formulario de la siguiente manera:


Con tecnología de Blogger.