guidoakd Posted October 10, 2013 Share Posted October 10, 2013 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 More sharing options...
guidoakd Posted October 11, 2013 Author Share Posted October 11, 2013 Alguna ayuda?? Muchas gracias! Link to comment Share on other sites More sharing options...
nadie Posted October 11, 2013 Share Posted October 11, 2013 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 More sharing options...
guidoakd Posted October 12, 2013 Author Share Posted October 12, 2013 (edited) 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 October 12, 2013 by guidoakd (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts