protected function _postConfig($fields) { global $currentIndex, $smarty; $languages = Language::getLanguages(false); if (method_exists('Tools', 'clearCache')) { Tools14::clearCache($smarty); } /* Check required fields */ foreach ($fields as $field => $values) { if (isset($values['required']) and $values['required']) { if (isset($values['type']) and $values['type'] == 'textLang') { foreach ($languages as $language) { if (($value = Tools14::getValue($field . '_' . $language['id_lang'])) == false and (string) $value != '0') { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is required.'); } } } elseif (($value = Tools14::getValue($field)) == false and (string) $value != '0') { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is required.'); } } } /* Check fields validity */ foreach ($fields as $field => $values) { if (isset($values['type']) and $values['type'] == 'textLang') { foreach ($languages as $language) { if (Tools14::getValue($field . '_' . $language['id_lang']) and isset($values['validation'])) { if (!Validate::$values['validation'](Tools14::getValue($field . '_' . $language['id_lang']))) { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is invalid.'); } } } } elseif (Tools14::getValue($field) and isset($values['validation'])) { if (!Validate::$values['validation'](Tools14::getValue($field))) { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is invalid.'); } } } /* Default value if null */ foreach ($fields as $field => $values) { if (!Tools14::getValue($field) and isset($values['default'])) { $_POST[$field] = $values['default']; } } /* Save process */ if (!sizeof($this->_errors)) { if (Tools14::isSubmit('submitAppearanceconfiguration')) { if (isset($_FILES['PS_LOGO']['tmp_name']) and $_FILES['PS_LOGO']['tmp_name']) { if ($error = checkImage($_FILES['PS_LOGO'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS')) or !move_uploaded_file($_FILES['PS_LOGO']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo.jpg')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } if (isset($_FILES['PS_LOGO_MAIL']['tmp_name']) and $_FILES['PS_LOGO_MAIL']['tmp_name']) { if ($error = checkImage($_FILES['PS_LOGO_MAIL'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS_MAIL')) or !move_uploaded_file($_FILES['PS_LOGO_MAIL']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo_mail.jpg')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } if (isset($_FILES['PS_LOGO_INVOICE']['tmp_name']) and $_FILES['PS_LOGO_INVOICE']['tmp_name']) { if ($error = checkImage($_FILES['PS_LOGO_INVOICE'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS_INVOICE')) or !move_uploaded_file($_FILES['PS_LOGO_INVOICE']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo_invoice.jpg')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } if (isset($_FILES['PS_STORES_ICON']['tmp_name']) and $_FILES['PS_STORES_ICON']['tmp_name']) { if ($error = checkImage($_FILES['PS_STORES_ICON'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS_STORES_ICON')) or !move_uploaded_file($_FILES['PS_STORES_ICON']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo_stores.gif')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } $this->uploadIco('PS_FAVICON', _PS_IMG_DIR_ . 'favicon.ico'); } /* Update settings in database */ if (!sizeof($this->_errors)) { foreach ($fields as $field => $values) { unset($val); if (isset($values['type']) and $values['type'] == 'textLang') { foreach ($languages as $language) { $val[$language['id_lang']] = isset($values['cast']) ? $values['cast'](Tools14::getValue($field . '_' . $language['id_lang'])) : Tools14::getValue($field . '_' . $language['id_lang']); } } else { $val = isset($values['cast']) ? $values['cast'](Tools14::getValue($field)) : Tools14::getValue($field); } Configuration::updateValue($field, $val); } Tools14::redirectAdmin($currentIndex . '&conf=6' . '&token=' . $this->token); } } }