示例#1
0
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);
}
示例#2
0
/**
 * 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;
}
示例#3
0
    }
} 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'));
}
示例#4
0
/**
 * 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);
}
示例#5
0
/**
 * 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);
}
示例#6
0
        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);
    }
}