public function hookDisplayFooter() { if ($this->update_source != 'auto' or (int) $this->last_update + $this->task_time > time()) { return; } if ($this->update_rates == 'yes') { Currency::refreshCurrencies(); } if ($this->update_prices == 'yes') { $this->UpdateAll(); } }
public function postProcess() { global $currentIndex; if (isset($_GET['delete' . $this->table])) { if ($this->tabAccess['delete'] === '1') { if (Validate::isLoadedObject($object = $this->loadObject())) { if ($object->id == Configuration::get('PS_CURRENCY_DEFAULT')) { $this->_errors[] = $this->l('You can\'t delete the default currency'); } elseif ($object->delete()) { Tools::redirectAdmin($currentIndex . '&conf=1' . '&token=' . $this->token); } else { $this->_errors[] = Tools::displayError('an error occurred during deletion'); } } else { $this->_errors[] = Tools::displayError('an error occurred while deleting object') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)'); } } else { $this->_errors[] = Tools::displayError('You do not have permission to delete here.'); } } elseif (Tools::getValue('submitOptions' . $this->table)) { foreach ($this->_fieldsOptions as $key => $field) { Configuration::updateValue($key, $field['cast'](Tools::getValue($key))); if ($key == 'PS_CURRENCY_DEFAULT') { $currency = new Currency($field['cast'](Tools::getValue($key))); $currency->conversion_rate = 1; $currency->update(); } } Tools::redirectAdmin($currentIndex . '&conf=6' . '&token=' . $this->token); } elseif (Tools::isSubmit('submitExchangesRates')) { if (!($this->_errors[] = Currency::refreshCurrencies())) { Tools::redirectAdmin($currentIndex . '&conf=6' . '&token=' . $this->token); } } else { parent::postProcess(); } }
public function postProcess() { global $currentIndex; if (isset($_GET['delete' . $this->table])) { if ($this->tabAccess['delete'] === '1') { if (Validate::isLoadedObject($object = $this->loadObject())) { if ($object->id == Configuration::get('PS_CURRENCY_DEFAULT')) { $this->_errors[] = $this->l('You cannot delete the default currency'); } elseif ($object->delete()) { Tools::redirectAdmin($currentIndex . '&conf=1' . '&token=' . $this->token); } else { $this->_errors[] = Tools::displayError('An error occurred during deletion.'); } } else { $this->_errors[] = Tools::displayError('An error occurred while deleting object.') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)'); } } else { $this->_errors[] = Tools::displayError('You do not have permission to delete here.'); } } elseif ((isset($_GET['status' . $this->table]) or isset($_GET['status'])) and Tools::getValue($this->identifier)) { if ($this->tabAccess['edit'] === '1') { if (Validate::isLoadedObject($object = $this->loadObject())) { if ($object->active and $object->id == Configuration::get('PS_CURRENCY_DEFAULT')) { $this->_errors[] = $this->l('You cannot disable the default currency'); } elseif ($object->toggleStatus()) { Tools::redirectAdmin($currentIndex . '&conf=5' . (($id_category = (int) Tools::getValue('id_category') and Tools::getValue('id_product')) ? '&id_category=' . $id_category : '') . '&token=' . $this->token); } else { $this->_errors[] = Tools::displayError('An error occurred while updating status.'); } } else { $this->_errors[] = Tools::displayError('An error occurred while updating status for object.') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)'); } } else { $this->_errors[] = Tools::displayError('You do not have permission to edit here.'); } } elseif (Tools::getValue('submitOptions' . $this->table)) { foreach ($this->_fieldsOptions as $key => $field) { Configuration::updateValue($key, $field['cast'](Tools::getValue($key))); if ($key == 'PS_CURRENCY_DEFAULT') { Currency::refreshCurrencies(); } } Tools::redirectAdmin($currentIndex . '&conf=6' . '&token=' . $this->token); } elseif (Tools::isSubmit('submitExchangesRates')) { if (!($this->_errors[] = Currency::refreshCurrencies())) { Tools::redirectAdmin($currentIndex . '&conf=6' . '&token=' . $this->token); } } else { parent::postProcess(); } }
/** * @param SimpleXMLElement $xml * @param bool $install_mode * @return bool * @throws PrestaShopException */ protected function _installCurrencies($xml, $install_mode = false) { if (isset($xml->currencies->currency)) { foreach ($xml->currencies->currency as $data) { /** @var SimpleXMLElement $data */ $attributes = $data->attributes(); if (Currency::exists($attributes['iso_code'], (int) $attributes['iso_code_num'])) { continue; } $currency = new Currency(); $currency->name = (string) $attributes['name']; $currency->iso_code = (string) $attributes['iso_code']; $currency->iso_code_num = (int) $attributes['iso_code_num']; $currency->sign = (string) $attributes['sign']; $currency->blank = (int) $attributes['blank']; $currency->conversion_rate = 1; // This value will be updated if the store is online $currency->format = (int) $attributes['format']; $currency->decimals = (int) $attributes['decimals']; $currency->active = true; if (!$currency->validateFields()) { $this->_errors[] = Tools::displayError('Invalid currency properties.'); return false; } if (!Currency::exists($currency->iso_code, $currency->iso_code_num)) { if (!$currency->add()) { $this->_errors[] = Tools::displayError('An error occurred while importing the currency: ') . strval($attributes['name']); return false; } PaymentModule::addCurrencyPermissions($currency->id); } } if (($error = Currency::refreshCurrencies()) !== null) { $this->_errors[] = $error; } if (!count($this->_errors) && $install_mode && isset($attributes['iso_code']) && count($xml->currencies->currency) == 1) { $this->iso_currency = $attributes['iso_code']; } } return true; }
protected function _installCurrencies($xml, $install_mode = false) { if (isset($xml->currencies->currency)) { if (!($feed = Tools::simplexml_load_file('http://www.prestashop.com/xml/currencies.xml')) and !($feed = @simplexml_load_file(dirname(__FILE__) . '/../localization/currencies.xml'))) { $this->_errors[] = Tools::displayError('Cannot parse the currencies XML feed.'); return false; } foreach ($xml->currencies->currency as $data) { $attributes = $data->attributes(); if (Currency::exists($attributes['iso_code'])) { continue; } $currency = new Currency(); $currency->name = strval($attributes['name']); $currency->iso_code = strval($attributes['iso_code']); $currency->iso_code_num = (int) $attributes['iso_code_num']; $currency->sign = strval($attributes['sign']); $currency->blank = (int) $attributes['blank']; $currency->conversion_rate = 1; // This value will be updated if the store is online $currency->format = (int) $attributes['format']; $currency->decimals = (int) $attributes['decimals']; $currency->active = $install_mode; if (!$currency->validateFields()) { $this->_errors[] = Tools::displayError('Invalid currency properties.'); return false; } if (!Currency::exists($currency->iso_code)) { if (!$currency->add()) { $this->_errors[] = Tools::displayError('An error occurred while importing the currency: ') . strval($attributes['name']); return false; } PaymentModule::addCurrencyPermissions($currency->id); } } Currency::refreshCurrencies(); if (!sizeof($this->_errors) and $install_mode and isset($attributes['iso_code']) and sizeof($xml->currencies->currency) == 1) { $this->iso_currency = $attributes['iso_code']; } } return true; }
<?php /* * 2015-2016 DOGS * @author J.Podracky, L.Fisher * @copyright 2015-2016 F2FCREATIVE */ if (!defined('_PS_ADMIN_DIR_')) { define('_PS_ADMIN_DIR_', getcwd()); } include _PS_ADMIN_DIR_ . '/../config/config.inc.php'; if (isset($_GET['secure_key'])) { $secureKey = md5(_COOKIE_KEY_ . Configuration::get('PS_SHOP_NAME')); if (!empty($secureKey) && $secureKey === $_GET['secure_key']) { $shop_ids = Shop::getCompleteListOfShopsID(); foreach ($shop_ids as $shop_id) { Shop::setContext(Shop::CONTEXT_SHOP, (int) $shop_id); Currency::refreshCurrencies(); } } }
public function updateOptionPsCurrencyDefault($value) { if ($value == Configuration::get('PS_CURRENCY_DEFAULT')) { return; } Configuration::updateValue('PS_CURRENCY_DEFAULT', $value); /* Set conversion rate of default currency to 1 */ ObjectModel::updateMultishopTable('Currency', array('conversion_rate' => 1), 'a.id_currency'); $tmp_context = Shop::getContext(); if ($tmp_context == Shop::CONTEXT_GROUP) { $tmp_shop = Shop::getContextShopGroupID(); } else { $tmp_shop = (int) Shop::getContextShopID(); } foreach (Shop::getContextListShopID() as $id_shop) { Shop::setContext(Shop::CONTEXT_SHOP, (int) $id_shop); Currency::refreshCurrencies(); } Shop::setContext($tmp_context, $tmp_shop); }
/** * Update currency exchange rates */ public function processExchangeRates() { if (!($this->errors = Currency::refreshCurrencies())) { Tools::redirectAdmin(self::$currentIndex . '&conf=6&token=' . $this->token); } }
public function updateOptionPsCurrencyDefault($value) { Configuration::updateValue('PS_CURRENCY_DEFAULT', $value); /* Set conversion rate of default currency to 1 */ ObjectModel::updateMultishopTable('Currency', array('conversion_rate' => 1), 'a.id_currency'); Currency::refreshCurrencies(); }
public function updateCurrencies() { $date = Db::getInstance()->getValue('SELECT `last_update` FROM `' . _DB_PREFIX_ . 'gointerpay_cache_currency`'); if ($date == null) { Db::getInstance()->Execute('INSERT INTO `' . _DB_PREFIX_ . 'gointerpay_cache_currency` (`last_update`) VALUES (NOW())'); Currency::refreshCurrencies(); } else { $hours = floor(abs(strtotime($date) - strtotime('now')) / 3600); $expiry = Db::getInstance()->getValue('SELECT c.expiry FROM ' . _DB_PREFIX_ . 'currency c WHERE c.iso_code =\'' . $this->context->cookie->interpay_currency_code . '\' AND deleted = 0'); if ($hours > 1 || strtotime($expiry) < strtotime('now')) { Db::getInstance()->Execute('UPDATE `' . _DB_PREFIX_ . 'gointerpay_cache_currency` SET `last_update` = NOW()'); Currency::refreshCurrencies(); } } }
public function install() { include dirname(__FILE__) . '/sql-install.php'; foreach ($sql as $s) { if (!Db::getInstance()->Execute($s)) { return false; } } if (!parent::install() || !$this->registerHook('payment') || !$this->registerHook('adminOrder') || !$this->registerHook('paymentReturn') || !$this->registerHook('orderConfirmation')) { return false; } $this->registerHook('displayPayment'); $this->registerHook('rightColumn'); $this->registerHook('extraRight'); $this->registerHook('header'); if (!Configuration::get('KLARNA_PAYMENT_ACCEPTED')) { Configuration::updateValue('KLARNA_PAYMENT_ACCEPTED', $this->addState('Klarna: Payment accepted', '#DDEEFF')); } if (!Configuration::get('KLARNA_PAYMENT_PENDING')) { Configuration::updateValue('KLARNA_PAYMENT_PENDING', $this->addState('Klarna : payment in pending verification', '#DDEEFF')); } /*auto install currencies*/ $currencies = array('Euro' => array('iso_code' => 'EUR', 'iso_code_num' => 978, 'symbole' => '€', 'format' => 2), 'Danish Krone' => array('iso_code' => 'DKK', 'iso_code_num' => 208, 'symbole' => 'DAN kr.', 'format' => 2), 'krone' => array('iso_code' => 'NOK', 'iso_code_num' => 578, 'symbole' => 'NOK kr', 'format' => 2), 'Krona' => array('iso_code' => 'SEK', 'iso_code_num' => 752, 'symbole' => 'SEK kr', 'format' => 2)); $languages = array('Swedish' => array('iso_code' => 'se', 'language_code' => 'sv', 'date_format_lite' => 'Y-m-d', 'date_format_full' => 'Y-m-d H:i:s', 'flag' => 'sweden.png'), 'Deutsch' => array('iso_code' => 'de', 'language_code' => 'de', 'date_format_lite' => 'Y-m-d', 'date_format_full' => 'Y-m-d H:i:s', 'flag' => 'germany.png'), 'Dutch' => array('iso_code' => 'nl', 'language_code' => 'nl', 'date_format_lite' => 'Y-m-d', 'date_format_full' => 'Y-m-d H:i:s', 'flag' => 'netherlands.png'), 'Finnish' => array('iso_code' => 'fi', 'language_code' => 'fi', 'date_format_lite' => 'Y-m-d', 'date_format_full' => 'Y-m-d H:i:s', 'flag' => 'finland.jpg'), 'Norwegian' => array('iso_code' => 'no', 'language_code' => 'no', 'date_format_lite' => 'Y-m-d', 'date_format_full' => 'Y-m-d H:i:s', 'flag' => 'norway.png'), 'Danish' => array('iso_code' => 'da', 'language_code' => 'da', 'date_format_lite' => 'Y-m-d', 'date_format_full' => 'Y-m-d H:i:s', 'flag' => 'denmark.png')); foreach ($currencies as $key => $val) { if (_PS_VERSION_ >= 1.5) { $exists = Currency::exists($val['iso_code_num'], $val['iso_code_num']); } else { $exists = Currency::exists($val['iso_code_num']); } if (!$exists) { $currency = new Currency(); $currency->name = $key; $currency->iso_code = $val['iso_code']; $currency->iso_code_num = $val['iso_code_num']; $currency->sign = $val['symbole']; $currency->conversion_rate = 1; $currency->format = $val['format']; $currency->decimals = 1; $currency->active = true; $currency->add(); } } Currency::refreshCurrencies(); $version = str_replace('.', '', _PS_VERSION_); $version = substr($version, 0, 2); foreach ($languages as $key => $val) { $pack = @Tools::file_get_contents('http://api.prestashop.com/localization/' . $version . '/' . $val['language_code'] . '.xml'); if ($pack || ($pack = @Tools::file_get_contents(dirname(__FILE__) . '/../../localization/' . $val['language_code'] . '.xml'))) { $localizationPack = new LocalizationPack(); $localizationPack->loadLocalisationPack($pack, array('taxes', 'languages')); } if (!Language::getIdByIso($val['language_code'])) { if (_PS_VERSION_ >= 1.5) { Language::checkAndAddLanguage($val['language_code']); } else { $lang = new Language(); $lang->name = $key; $lang->iso_code = $val['iso_code']; $lang->language_code = $val['language_code']; $lang->date_format_lite = $val['date_format_lite']; $lang->date_format_full = $val['date_format_full']; $lang->add(); $insert_id = (int) $lang->id; $pack = Tools::file_get_contents('http://www.prestashop.com/download/localization/' . $val['iso_code'] . '.xml'); $lang_pack = Tools::jsonDecode(Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version=' . _PS_VERSION_ . '&iso_lang=' . $val['iso_code'])); if ($lang_pack) { $flag = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/flags/jpeg/' . $val['iso_code'] . '.jpg'); if ($flag != null && !preg_match('/<body>/', $flag)) { $file = fopen(dirname(__FILE__) . '/../../img/l/' . $insert_id . '.jpg', 'w'); if ($file) { fwrite($file, $flag); fclose($file); } } } } } } foreach ($this->countries as $key => $val) { $country = new Country(Country::getByIso($key)); $country->active = true; $country->update(); } return true; }
public function updateOptionPsCurrencyDefault($value) { Configuration::updateValue('PS_CURRENCY_DEFAULT', $value); Currency::refreshCurrencies(); }