diff --git a/classes/Search.php b/classes/Search.php index 20bbdce47..e76f753b3 100644 --- a/classes/Search.php +++ b/classes/Search.php @@ -111,7 +111,7 @@ class SearchCore $string = preg_replace('/[^\s]-+/', '', $string); } - $blacklist = Configuration::get('PS_SEARCH_BLACKLIST', $id_lang); + $blacklist = Tools::strtolower(Configuration::get('PS_SEARCH_BLACKLIST', $id_lang)); if (!empty($blacklist)) { $string = preg_replace('/(?<=\s)('.$blacklist.')(?=\s)/Su', '', $string); diff --git a/controllers/admin/AdminLanguagesController.php b/controllers/admin/AdminLanguagesController.php index 11ce73750..2959fa896 100644 --- a/controllers/admin/AdminLanguagesController.php +++ b/controllers/admin/AdminLanguagesController.php @@ -277,127 +277,128 @@ class AdminLanguagesControllerCore extends AdminController return parent::renderForm(); } - public function postProcess() + public function processDelete() { - if (isset($_GET['delete'.$this->table])) - { - if ($this->tabAccess['delete'] === '1') - { - if (Validate::isLoadedObject($object = $this->loadObject()) && isset($this->fieldImageSettings)) - { - if ($object->id == Configuration::get('PS_LANG_DEFAULT')) - $this->errors[] = $this->l('You cannot delete the default language.'); - else if ($object->id == $this->context->language->id) - $this->errors[] = $this->l('You cannot delete the language currently in use. Please change languages before deleting.'); - else if ($this->deleteNoPictureImages((int)Tools::getValue('id_lang')) && $object->delete()) - { - $this->checkEmployeeIdLang($object->id); - Tools::redirectAdmin(self::$currentIndex.'&conf=1'.'&token='.$this->token); - } - - } - else - $this->errors[] = Tools::displayError('An error occurred while deleting object.').' '.$this->table.' '. - Tools::displayError('(cannot load object)'); - } - else - $this->errors[] = Tools::displayError('You do not have permission to delete here.'); - } - else if (Tools::getValue('submitDel'.$this->table) && isset($_POST[$this->table.'Box'])) - { - if ($this->tabAccess['delete'] === '1') - { - if (in_array(Configuration::get('PS_LANG_DEFAULT'), $_POST[$this->table.'Box'])) - $this->errors[] = $this->l('You cannot delete the default language.'); - else if (in_array($this->context->language->id, $_POST[$this->table.'Box'])) - $this->errors[] = $this->l('You cannot delete the language currently in use. Please change languages before deleting.'); - else - { - foreach ($_POST[$this->table.'Box'] as $language) - $this->deleteNoPictureImages($language); - if (Validate::isLoadedObject($object = $this->loadObject())) - $this->checkEmployeeIdLang($object->id); - parent::postProcess(); - } - } - else - $this->errors[] = Tools::displayError('You do not have permission to delete here.'); - } - else if (Tools::isSubmit('submitAddlang')) - { - /* New language */ - if ((int)Tools::getValue('id_'.$this->table) == 0) - { - if ($this->tabAccess['add'] === '1') - { - if (isset($_POST['iso_code']) && !empty($_POST['iso_code']) && Validate::isLanguageIsoCode(Tools::getValue('iso_code')) && Language::getIdByIso($_POST['iso_code'])) - $this->errors[] = Tools::displayError('This ISO code is already linked to another language.'); - if ((!empty($_FILES['no-picture']['tmp_name']) || !empty($_FILES['flag']['tmp_name'])) && Validate::isLanguageIsoCode(Tools::getValue('iso_code'))) - { - if ($_FILES['no-picture']['error'] == UPLOAD_ERR_OK) - $this->copyNoPictureImage(strtolower(Tools::getValue('iso_code'))); - // class AdminTab deal with every $_FILES content, don't do that for no-picture - unset($_FILES['no-picture']); - parent::postProcess(); - } - else - { - $this->validateRules(); - $this->errors[] = Tools::displayError('Flag and "No picture" image fields are required.'); - } - } - else - $this->errors[] = Tools::displayError('You do not have permission to add here.'); - } - /* Language edition */ - else - { - if ($this->tabAccess['edit'] === '1') - { - if (( isset($_FILES['no-picture']) && !$_FILES['no-picture']['error'] || isset($_FILES['flag']) && !$_FILES['flag']['error']) - && Validate::isLanguageIsoCode(Tools::getValue('iso_code'))) - { - if ($_FILES['no-picture']['error'] == UPLOAD_ERR_OK) - $this->copyNoPictureImage(strtolower(Tools::getValue('iso_code'))); - // class AdminTab deal with every $_FILES content, don't do that for no-picture - unset($_FILES['no-picture']); - parent::postProcess(); - } + $object = $this->loadObject(); + if (!$this->checkDeletion($object)) + return false; + if (!$this->deleteNoPictureImages((int)$object->id)) + $this->errors[] = Tools::displayError('An error occurred while deleting object.').' '.$this->table.' '; - if (!Validate::isLoadedObject($object = $this->loadObject())) - $this->errors[] = Tools::displayError('An error occurred while updating status for object.').' '.$this->table.' '.Tools::displayError('(cannot load object)'); - if ((int)$object->id == (int)Configuration::get('PS_LANG_DEFAULT') && (int)$_POST['active'] != (int)$object->active) - $this->errors[] = Tools::displayError('You cannot change the status of the default language.'); - else - parent::postProcess(); + return parent::processDelete(); + } - $this->validateRules(); + protected function processBulkDelete() + { + $can_bulk = true; + if (is_array($this->boxes) && !empty($this->boxes)) + { + foreach ($this->boxes as $id_lang) + { + $object = new Language((int)$id_lang); + if (!$this->checkDeletion($object)) + return false; + if (!$this->deleteNoPictureImages((int)$object->id)) + { + $this->errors[] = Tools::displayError('An error occurred while deleting object.').' '.$this->table.' '; + return false; } - else - $this->errors[] = Tools::displayError('You do not have permission to edit here.'); } } - else if (isset($_GET['status'.$this->table]) && isset($_GET['id_lang'])) + return parent::processBulkDelete(); + } + + protected function checkDeletion($object) + { + if (Validate::isLoadedObject($object)) { - if ($this->tabAccess['edit'] === '1') - { - if (!Validate::isLoadedObject($object = $this->loadObject())) - $this->errors[] = Tools::displayError('An error occurred while updating status for object.').' '.$this->table.' '.Tools::displayError('(cannot load object)'); - if ((int)$object->id == (int)Configuration::get('PS_LANG_DEFAULT')) + if ($object->id == Configuration::get('PS_LANG_DEFAULT')) + $this->errors[] = $this->l('You cannot delete the default language.'); + elseif ($object->id == $this->context->language->id) + $this->errors[] = $this->l('You cannot delete the language currently in use. Please change languages before deleting.'); + else + return true; + } + else + $this->errors[] = Tools::displayError('(cannot load object)'); + + return false; + } + + protected function checkDisableStatus($object) + { + if (!Validate::isLoadedObject($object)) + $this->errors[] = Tools::displayError('An error occurred while updating status for object.').' '.$this->table.' '.Tools::displayError('(cannot load object)'); + else + { + if ($object->id == (int)Configuration::get('PS_LANG_DEFAULT')) $this->errors[] = Tools::displayError('You cannot change the status of the default language.'); - else - { - if (Validate::isLoadedObject($object)) - $this->checkEmployeeIdLang($object->id); - return parent::postProcess(); - } - - } else - $this->errors[] = Tools::displayError('You do not have permission to edit here.'); + return true; + } + return false; + } + + public function processStatus() + { + $object = $this->loadObject(); + if ($this->checkDisableStatus($object)) + { + $this->checkEmployeeIdLang($object->id); + return parent::processStatus(); + } + return false; + } + + protected function processBulkDisableSelection() + { + if (is_array($this->boxes) && !empty($this->boxes)) + { + foreach ($this->boxes as $id_lang) + { + $object = new Language((int)$id_lang); + if (!$this->checkDisableStatus($object)) + return false; + $this->checkEmployeeIdLang($object->id); + } + } + return parent::processBulkDisableSelection(); + } + + public function processAdd() + { + if (isset($_POST['iso_code']) && !empty($_POST['iso_code']) && Validate::isLanguageIsoCode(Tools::getValue('iso_code')) && Language::getIdByIso($_POST['iso_code'])) + $this->errors[] = Tools::displayError('This ISO code is already linked to another language.'); + if ((!empty($_FILES['no-picture']['tmp_name']) || !empty($_FILES['flag']['tmp_name'])) && Validate::isLanguageIsoCode(Tools::getValue('iso_code'))) + { + if ($_FILES['no-picture']['error'] == UPLOAD_ERR_OK) + $this->copyNoPictureImage(strtolower(Tools::getValue('iso_code'))); + unset($_FILES['no-picture']); + return parent::processAdd(); } else - return parent::postProcess(); + $this->errors[] = Tools::displayError('Flag and "No picture" image fields are required.'); + + return false; + } + + public function processUpdate() + { + if (( isset($_FILES['no-picture']) && !$_FILES['no-picture']['error'] || isset($_FILES['flag']) && !$_FILES['flag']['error']) + && Validate::isLanguageIsoCode(Tools::getValue('iso_code'))) + { + if ($_FILES['no-picture']['error'] == UPLOAD_ERR_OK) + $this->copyNoPictureImage(strtolower(Tools::getValue('iso_code'))); + // class AdminTab deal with every $_FILES content, don't do that for no-picture + unset($_FILES['no-picture']); + } + $object = $this->loadObject(); + if (Tools::getValue('active') != (int)$object->active) + if (!$this->checkDisableStatus($object)) + return false; + + $this->checkEmployeeIdLang($object->id); + return parent::processUpdate(); } /** @@ -515,21 +516,4 @@ class AdminLanguagesControllerCore extends AdminController //update employee lang if current id lang is disabled Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.'employee` set `id_lang`='.(int)Configuration::get('PS_LANG_DEFAULT').' WHERE `id_lang`='.(int)$current_id_lang); } - - protected function processBulkStatusSelection($status) - { - if (!$status)//only check if status == 0 (disable) - { - if (is_array($this->boxes) && !empty($this->boxes)) - foreach ($this->boxes as $id) - if (Configuration::get('PS_LANG_DEFAULT') == $id) - $this->errors[] = $this->l('You cannot change the status of the default language.'); - if (!count($this->errors)) - parent::processBulkStatusSelection($status); - } - else - parent::processBulkStatusSelection($status); - } -} - - +} \ No newline at end of file diff --git a/install-dev/controllers/http/process.php b/install-dev/controllers/http/process.php index 2e094ef92..e9ba725f0 100644 --- a/install-dev/controllers/http/process.php +++ b/install-dev/controllers/http/process.php @@ -68,6 +68,7 @@ class InstallControllerHttpProcess extends InstallControllerHttp Context::getContext()->language = new Language(Configuration::get('PS_LANG_DEFAULT')); Context::getContext()->country = new Country('PS_COUNTRY_DEFAULT'); Context::getContext()->cart = new Cart(); + Context::getContext()->employee = new Employee(1); define('_PS_SMARTY_FAST_LOAD_', true); require_once _PS_ROOT_DIR_.'/config/smarty.config.inc.php'; diff --git a/themes/default/authentication.tpl b/themes/default/authentication.tpl index f2f71eb92..e5a528ce9 100644 --- a/themes/default/authentication.tpl +++ b/themes/default/authentication.tpl @@ -337,7 +337,7 @@ $(document).ready(function() {
- + {l s='DNI / NIF / NIE'}
@@ -345,7 +345,7 @@ $(document).ready(function() { {/if}