Jump to content

Añadir * (campo obligatorio) en contact form?


guidoakd

Recommended Posts

Hola como va??

Resulta que añadi varios campos al contact form, me llegan al mail bien, me actualiza correctamente la BD pero me gustaria que algunos de ellos fueran obligatorios, es decir, agregarle un asterisco al nombre, y que si no se ingresaron alguno de ellos, no se pueda enviar la consulta.

Los campos serian nombre, apellido y mail.

Si alguien tiene alguna idea de como cambiar el contactcontroller o alguno de esos php que son los que manejan los contactform se lo agradeceria

(cualquier cosa dejo el archivo..)

Saludos y gracias

Link to comment
Share on other sites

No se trata solo de añadir el asterisco, para que sea obligatorio xD.
 
Añadir el asterisco, es tan sencillo como ir al fichero:
 

contact-form.tpl

Y cambiar en los campos que quieres que sean obligatorios cambiar esto:
 

<p class="text">

por esto
 

<p class="text required">

y por ejemplo antes de cerrar el <p> en el campo añadir:

<sup>*</sup>

Luego, en el fichero.

ContactController.php

Dentro de la función:

postProcess

validas el campo y imprimes el error que quieres que se muestre: 

$this->errors[] = Tools::displayError('XXXXX');
Link to comment
Share on other sites

Antes que nada gracias por contestar

Hice los pasos que pusiste, me pone lo del asterisco, valido el campo, pero después intento enviar una consulta sin escribir el nombre por ejemplo (obligatorio el campo) y la envia igual.

Alguna ayuda con eso?

Saludos y gracias

 

Dejo un poco d codigo del contact controller y en color lo que agregue

 

class ContactController extends ContactControllerCore
{
    public function postProcess()
    {
        if (Tools::isSubmit('submitMessage'))
        {
            $fileAttachment = null;
            if (isset($_FILES['fileUpload']['name']) && !empty($_FILES['fileUpload']['name']) && !empty($_FILES['fileUpload']['tmp_name']))
            {
                $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
                $filename = uniqid().substr($_FILES['fileUpload']['name'], -5);
                $fileAttachment['content'] = file_get_contents($_FILES['fileUpload']['tmp_name']);
                $fileAttachment['name'] = $_FILES['fileUpload']['name'];
                $fileAttachment['mime'] = $_FILES['fileUpload']['type'];
            }
            $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
            if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from))
                $this->errors[] = Tools::displayError('Invalid email address.');
            else if (!$message)
                $this->errors[] = Tools::displayError('The message cannot be blank.');
            else if (!Validate::isCleanHtml($message))
                $this->errors[] = Tools::displayError('Invalid message');
else if (!Validate::isCleanHtml($nombre))
                $this->errors[] = Tools::displayError('Nombre no ingresado');
else if (!Validate::isCleanHtml($apellido))
                $this->errors[] = Tools::displayError('Apellido no ingresado');
            else if (!($id_contact = (int)(Tools::getValue('id_contact'))) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id))))
                $this->errors[] = Tools::displayError('Please select a subject from the list provided. ');
            else if (!empty($_FILES['fileUpload']['name']) && $_FILES['fileUpload']['error'] != 0)
                $this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
 
La del email si anda. Y sale el error
Edited by guidoakd (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...