From 79e770e137146b4feeae7d16b99566b285a82c92 Mon Sep 17 00:00:00 2001 From: rMalie Date: Wed, 21 Sep 2011 12:55:57 +0000 Subject: [PATCH] // Fix validation of emails preferences --- admin-dev/tabs/AdminEmails.php | 10 +++++----- classes/AdminTab.php | 7 +++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/admin-dev/tabs/AdminEmails.php b/admin-dev/tabs/AdminEmails.php index 45ee96040..5293cb872 100644 --- a/admin-dev/tabs/AdminEmails.php +++ b/admin-dev/tabs/AdminEmails.php @@ -1,6 +1,6 @@ table = 'configuration'; parent::__construct(); - + foreach (Contact::getContacts($this->context->language->id) AS $contact) $arr[] = array('email_message' => $contact['id_contact'], 'name' => $contact['name']); @@ -53,7 +53,7 @@ class AdminEmails extends AdminPreferences 'title' => $this->l('E-mail'), 'icon' => 'email', 'fields' => array( - 'PS_MAIL_DOMAIN' => array('title' => $this->l('Mail domain:'), 'desc' => $this->l('Fully qualified domain name (keep it empty if you do not know)'), 'validation' => 'isUrl', 'size' => 30, 'type' => 'text', 'visibility' => Shop::CONTEXT_ALL), + 'PS_MAIL_DOMAIN' => array('title' => $this->l('Mail domain:'), 'desc' => $this->l('Fully qualified domain name (keep it empty if you do not know)'), 'empty' => true, 'validation' => 'isUrl', 'size' => 30, 'type' => 'text', 'visibility' => Shop::CONTEXT_ALL), 'PS_MAIL_SERVER' => array('title' => $this->l('SMTP server:'), 'desc' => $this->l('IP or server name (e.g., smtp.mydomain.com)'), 'validation' => 'isGenericName', 'size' => 30, 'type' => 'text', 'visibility' => Shop::CONTEXT_ALL), 'PS_MAIL_USER' => array('title' => $this->l('SMTP user:'), 'desc' => $this->l('Leave blank if not applicable'), 'validation' => 'isGenericName', 'size' => 30, 'type' => 'text', 'visibility' => Shop::CONTEXT_ALL), 'PS_MAIL_PASSWD' => array('title' => $this->l('SMTP password:'), 'desc' => $this->l('Leave blank if not applicable'), 'validation' => 'isAnything', 'size' => 30, 'type' => 'password', 'visibility' => Shop::CONTEXT_ALL), @@ -69,13 +69,13 @@ class AdminEmails extends AdminPreferences if ($_POST['PS_MAIL_METHOD'] == 2 AND (empty($_POST['PS_MAIL_SERVER']) OR empty($_POST['PS_MAIL_SMTP_PORT']))) $this->_errors[] = Tools::displayError('You must define a SMTP server and a SMTP port. If you do not know, use the PHP mail() function instead.'); } - + public function display() { parent::display(); $this->_displayMailTest(); } - + private function _displayMailTest() { echo ' diff --git a/classes/AdminTab.php b/classes/AdminTab.php index 265f99396..8599114a5 100644 --- a/classes/AdminTab.php +++ b/classes/AdminTab.php @@ -958,7 +958,7 @@ abstract class AdminTabCore if (!Tools::getValue($field) AND isset($values['default'])) $_POST[$field] = $values['default']; - if (!sizeof($this->_errors)) + if (1||!sizeof($this->_errors)) { foreach ($fields as $key => $options) { @@ -1024,8 +1024,7 @@ abstract class AdminTabCore { if (isset($field['validation'])) { - $validate = new Validate(); - if (method_exists($validate, $field['validation'])) + if ((!isset($field['empty']) || !$field['empty'] || (isset($field['empty']) && $field['empty'] && $value)) && method_exists('Validate', $field['validation'])) { if (!Validate::$field['validation']($value)) { @@ -1962,7 +1961,7 @@ abstract class AdminTabCore public function displayOptionTypeRadio($key, $field, $value) { foreach ($field['choices'] as $k => $v) - echo '
'; + echo '
'; echo '
'; }