function fn_rus_ruble_install() { $currencies = Registry::get('currencies'); if (empty($currencies)) { $currencies = fn_get_currencies_list(array(), 'A', CART_LANGUAGE); Registry::set('currencies', $currencies); } $magic_key = fn_rus_ruble_gen_magic_key(); Settings::instance()->updateValue('cron_key', $magic_key, 'rus_ruble'); RusCurrency::process_sbrf_currencies(CURRENCY_RUB); }
/** * Gets currencies for blocks with "Currency" type * * @return array List of available currencies */ function fn_block_manager_get_currencies() { if (fn_allowed_for('ULTIMATE:FREE')) { $params = array('only_primary' => 'Y'); } else { $params = array('status' => array('A')); } $currencies = fn_get_currencies_list($params, AREA, CART_LANGUAGE); return $currencies; }
} } elseif ($mode == 'delete') { if (!empty($_REQUEST['currency_id'])) { $currency_code = db_get_field("SELECT currency_code FROM ?:currencies WHERE currency_id = ?i", $_REQUEST['currency_id']); if ($currency_code != CART_PRIMARY_CURRENCY) { db_query("DELETE FROM ?:currencies WHERE currency_code = ?s", $currency_code); db_query("DELETE FROM ?:currency_descriptions WHERE currency_code = ?s", $currency_code); fn_set_notification('N', __('notice'), __('currency_deleted')); } else { fn_set_notification('W', __('warning'), __('base_currency_not_deleted')); } } return array(CONTROLLER_STATUS_REDIRECT, "currencies.manage"); } elseif ($mode == 'update_status') { if (fn_allowed_for('ULTIMATE:FREE')) { $currency_data = fn_get_currencies_list(array('currency_id' => $_REQUEST['id']), AREA, DESCR_SL); $currency_data = reset($currency_data); if ($currency_data['is_primary'] == 'Y' && $_REQUEST['status'] != 'A') { fn_set_notification('E', __('error'), __('default_currency_status')); return array(CONTROLLER_STATUS_REDIRECT, fn_url('currencies.manage')); } elseif ($_REQUEST['status'] != 'A') { fn_set_notification('E', __('error'), __('currency_hidden_status_free')); return array(CONTROLLER_STATUS_REDIRECT, fn_url('currencies.manage')); } else { $currency_data['is_primary'] = 'Y'; fn_update_currency($currency_data, $_REQUEST['id'], DESCR_SL); } } fn_tools_update_status($_REQUEST); return array(CONTROLLER_STATUS_REDIRECT, fn_url('currencies.manage')); }
/** * Init currencies * * @param array $params request parameters * @param string $area Area ('A' for admin or 'C' for customer) * @return boolean always true */ function fn_init_currency($params, $area = AREA) { /** * Performs actions before initializing currencies * * @param array $params request parameters * @param string $area Area ('A' for admin or 'C' for customer) */ fn_set_hook('init_currency_pre', $params, $area); $_params = array(); if (fn_allowed_for('ULTIMATE:FREE')) { $_params['only_primary'] = 'Y'; } elseif ($area == 'C') { $_params['status'] = array('A', 'H'); } else { $_params['status'] = array('A', 'H'); } $currencies = fn_get_currencies_list($_params, $area, CART_LANGUAGE); if (!empty($params['currency']) && !empty($currencies[$params['currency']])) { $secondary_currency = $params['currency']; } elseif (($c = fn_get_session_data('secondary_currency' . $area)) && !empty($currencies[$c])) { $secondary_currency = $c; } else { foreach ($currencies as $v) { if ($v['is_primary'] == 'Y') { $secondary_currency = $v['currency_code']; break; } } } if (empty($secondary_currency)) { reset($currencies); $secondary_currency = key($currencies); } if ($secondary_currency != fn_get_session_data('secondary_currency' . $area)) { fn_set_session_data('secondary_currency' . $area, $secondary_currency, COOKIE_ALIVE_TIME); } $primary_currency = ''; foreach ($currencies as $v) { if ($v['is_primary'] == 'Y') { $primary_currency = $v['currency_code']; break; } } if (empty($primary_currency)) { reset($currencies); $first_currency = current($currencies); $primary_currency = $first_currency['currency_code']; } elseif ($area == 'C') { if ($currencies[$secondary_currency]['status'] != 'A') { $first_currency = ''; foreach ($currencies as $key => $currency) { if ($currency['status'] != 'A' && $currency['is_primary'] != 'Y') { unset($currencies[$key]); } elseif ($currency['status'] == 'A' && !$first_currency) { $first_currency = $currency; } } $secondary_currency = $first_currency['currency_code']; } } /** * Sets currencies * * @param array $params request parameters * @param string $area Area ('A' for admin or 'C' for customer) * @param string $primary_currency Primary currency code * @param string $secondary_currency Secondary currency code */ fn_set_hook('init_currency_post', $params, $area, $primary_currency, $secondary_currency); define('CART_PRIMARY_CURRENCY', $primary_currency); define('CART_SECONDARY_CURRENCY', $secondary_currency); Registry::set('currencies', $currencies); return array(INIT_STATUS_OK); }
/** * Init currencies * * @param array $params request parameters * @param string $area Area ('A' for admin or 'C' for customer) * @return boolean always true */ function fn_init_currency($params, $area = AREA) { $_params = array(); if (fn_allowed_for('ULTIMATE:FREE')) { $_params['only_primary'] = 'Y'; } elseif ($area == 'C') { $_params['status'] = array('A', 'H'); } else { $_params['status'] = array('A', 'H'); } $currencies = fn_get_currencies_list($_params, $area, CART_LANGUAGE); if (!empty($params['currency']) && !empty($currencies[$params['currency']])) { $secondary_currency = $params['currency']; } elseif (($c = fn_get_session_data('secondary_currency' . $area)) && !empty($currencies[$c])) { $secondary_currency = $c; } else { //enable selection of curency in storefront foreach ($currencies as $v) { if ($v['is_primary'] == 'Y') { $secondary_currency = $v['currency_code']; break; } } //disable selection of curency in storefront(force one currency) // $secondary_currency = '946'; } if (empty($secondary_currency)) { reset($currencies); $secondary_currency = key($currencies); } if ($secondary_currency != fn_get_session_data('secondary_currency' . $area)) { fn_set_session_data('secondary_currency' . $area, $secondary_currency, COOKIE_ALIVE_TIME); } $primary_currency = ''; //enable selection of curency in storefront foreach ($currencies as $v) { if ($v['is_primary'] == 'Y') { $primary_currency = $v['currency_code']; break; } } //disable selection of curency in storefront(force one currency) // $secondary_currency = '946'; if (empty($primary_currency)) { reset($currencies); $first_currency = current($currencies); $primary_currency = $first_currency['currency_code']; } elseif ($area == 'C') { if ($currencies[$secondary_currency]['status'] != 'A') { $first_currency = ''; foreach ($currencies as $key => $currency) { if ($currency['status'] != 'A' && $currency['is_primary'] != 'Y') { unset($currencies[$key]); } elseif ($currency['status'] == 'A' && !$first_currency) { $first_currency = $currency; } } $secondary_currency = $first_currency['currency_code']; } } define('CART_PRIMARY_CURRENCY', $primary_currency); define('CART_SECONDARY_CURRENCY', $secondary_currency); Registry::set('currencies', $currencies); return array(INIT_STATUS_OK); }
if (fn_allowed_for('ULTIMATE:FREE')) { $currency_data = fn_get_currencies_list(array('currency_id' => $_REQUEST['id']), AREA, DESCR_SL); $currency_data = reset($currency_data); if ($currency_data['is_primary'] == 'Y' && $_REQUEST['status'] != 'A') { fn_set_notification('E', __('error'), __('default_currency_status')); return array(CONTROLLER_STATUS_REDIRECT, fn_url('currencies.manage')); } elseif ($_REQUEST['status'] != 'A') { fn_set_notification('E', __('error'), __('currency_hidden_status_free')); return array(CONTROLLER_STATUS_REDIRECT, fn_url('currencies.manage')); } else { $currency_data['is_primary'] = 'Y'; fn_update_currency($currency_data, $_REQUEST['id'], DESCR_SL); } } fn_tools_update_status($_REQUEST); } return array(CONTROLLER_STATUS_OK, 'currencies.manage'); } // ---------------------- GET routines --------------------------------------- if ($mode == 'manage') { if (fn_allowed_for('ULTIMATE:FREE') && !defined('AJAX_REQUEST')) { fn_set_notification('N', __('notice'), __('change_currency_in_free_mode'), 'K'); } $currencies = fn_get_currencies_list(array(), AREA, DESCR_SL); Registry::get('view')->assign('currencies_data', $currencies); } elseif ($mode == 'update') { if (!empty($_REQUEST['currency_id'])) { $currency = db_get_row("SELECT a.*, b.description FROM ?:currencies as a LEFT JOIN ?:currency_descriptions as b ON a.currency_code = b.currency_code AND lang_code = ?s WHERE a.currency_id = ?s", DESCR_SL, $_REQUEST['currency_id']); Registry::get('view')->assign('currency', $currency); } }