Example #1
0
function qtranxf_loadConfig()
{
    global $qtranslate_options, $q_config;
    qtranxf_set_default_options($qtranslate_options);
    $q_config = array();
    qtranxf_load_option_func('default_language');
    qtranxf_load_option_array('enabled_languages');
    qtranxf_load_option_flag_location('flag_location');
    foreach ($qtranslate_options['front']['int'] as $nm => $def) {
        qtranxf_load_option($nm, $def);
    }
    //qtranxf_dbg_log('qtranxf_loadConfig: $q_config[use_strftime]: ',$q_config['use_strftime']);
    if ($q_config['use_strftime'] != QTX_DATE_WP && qtranxf_windows_os()) {
        $q_config['use_strftime'] = QTX_DATE_WP;
    }
    qtranxf_load_languages_enabled();
    foreach ($qtranslate_options['front']['bool'] as $nm => $def) {
        qtranxf_load_option_bool($nm, $def);
    }
    foreach ($qtranslate_options['front']['str'] as $nm => $def) {
        qtranxf_load_option($nm, $def);
    }
    foreach ($qtranslate_options['front']['text'] as $nm => $def) {
        qtranxf_load_option($nm, $def);
    }
    foreach ($qtranslate_options['front']['array'] as $nm => $def) {
        qtranxf_load_option_array($nm, $def);
    }
    qtranxf_load_option_array('term_name', array());
    if ($q_config['filter_options_mode'] == QTX_FILTER_OPTIONS_LIST) {
        qtranxf_load_option_array('filter_options', QTX_FILTER_OPTIONS_DEFAULT);
    }
    $url_mode = $q_config['url_mode'];
    // check for invalid permalink/url mode combinations
    if (qtranxf_is_permalink_structure_query()) {
        switch ($url_mode) {
            case QTX_URL_QUERY:
            case QTX_URL_DOMAIN:
            case QTX_URL_DOMAINS:
                break;
            default:
                $q_config['url_mode'] = $url_mode = QTX_URL_QUERY;
                break;
        }
    }
    switch ($url_mode) {
        case QTX_URL_DOMAINS:
            $q_config['domains'] = array();
            qtranxf_load_option_array('domains');
            //qtranxf_dbg_echo('domains loaded: ',$q_config['domains']);
            foreach ($q_config['enabled_languages'] as $lang) {
                if (isset($q_config['domains'][$lang])) {
                    continue;
                }
                $homeinfo = qtranxf_get_home_info();
                $q_config['domains'][$lang] = $lang . '.' . $homeinfo['host'];
            }
            $q_config['disable_client_cookies'] = true;
            $q_config['hide_default_language'] = false;
            break;
        case QTX_URL_QUERY:
        case QTX_URL_PATH:
            $q_config['disable_client_cookies'] = false;
            qtranxf_load_option_bool('disable_client_cookies');
            break;
        case QTX_URL_DOMAIN:
        default:
            $q_config['disable_client_cookies'] = true;
            break;
    }
    $ignore_file_types = get_option('qtranslate_ignore_file_types');
    $val = explode(',', QTX_IGNORE_FILE_TYPES);
    if (!empty($ignore_file_types)) {
        $vals = preg_split('/[\\s,]+/', strtolower($ignore_file_types), null, PREG_SPLIT_NO_EMPTY);
        foreach ($vals as $v) {
            if (empty($v)) {
                continue;
            }
            if (in_array($v, $val)) {
                continue;
            }
            $val[] = $v;
        }
    }
    $q_config['ignore_file_types'] = $val;
    if (empty($q_config['front_config'])) {
        //todo this should be granulated to load only what is needed
        require_once QTRANSLATE_DIR . '/admin/qtx_activation_hook.php';
        require_once QTRANSLATE_DIR . '/admin/qtx_admin_options_update.php';
        qtranxf_update_i18n_config();
    }
    /**
     * Opportunity to load additional front-end features.
     */
    do_action('qtranslate_loadConfig');
}
Example #2
0
function qtranxf_loadConfig()
{
    global $qtranslate_options, $q_config;
    qtranxf_set_default_options($qtranslate_options);
    $q_config = array();
    qtranxf_load_option_func('default_language');
    qtranxf_load_option_array('enabled_languages');
    qtranxf_load_option_flag_location('flag_location');
    qtranxf_load_languages_enabled();
    foreach ($qtranslate_options['front']['int'] as $nm => $def) {
        qtranxf_load_option($nm, $def);
    }
    foreach ($qtranslate_options['front']['bool'] as $nm => $def) {
        qtranxf_load_option_bool($nm, $def);
    }
    foreach ($qtranslate_options['front']['str'] as $nm => $def) {
        qtranxf_load_option($nm, $def);
    }
    foreach ($qtranslate_options['front']['text'] as $nm => $def) {
        qtranxf_load_option($nm, $def);
    }
    foreach ($qtranslate_options['front']['array'] as $nm => $def) {
        qtranxf_load_option_array($nm, $def);
    }
    qtranxf_load_option_array('term_name', array());
    if ($q_config['filter_options_mode'] == QTX_FILTER_OPTIONS_LIST) {
        qtranxf_load_option_array('filter_options', QTX_FILTER_OPTIONS_DEFAULT);
    }
    $url_mode = $q_config['url_mode'];
    // check for invalid permalink/url mode combinations
    if (qtranxf_is_permalink_structure_query()) {
        switch ($url_mode) {
            case QTX_URL_QUERY:
            case QTX_URL_DOMAIN:
            case QTX_URL_DOMAINS:
                break;
            default:
                $q_config['url_mode'] = $url_mode = QTX_URL_QUERY;
                break;
        }
    }
    switch ($url_mode) {
        case QTX_URL_DOMAINS:
            $q_config['domains'] = array();
            qtranxf_load_option_array('domains');
            //qtranxf_dbg_echo('domains loaded: ',$q_config['domains']);
            foreach ($q_config['enabled_languages'] as $lang) {
                if (isset($q_config['domains'][$lang])) {
                    continue;
                }
                $homeinfo = qtranxf_get_home_info();
                $q_config['domains'][$lang] = $lang . '.' . $homeinfo['host'];
            }
            $q_config['disable_client_cookies'] = true;
            $q_config['hide_default_language'] = false;
            break;
        case QTX_URL_QUERY:
        case QTX_URL_PATH:
            $q_config['disable_client_cookies'] = false;
            qtranxf_load_option_bool('disable_client_cookies');
            break;
        case QTX_URL_DOMAIN:
        default:
            $q_config['disable_client_cookies'] = true;
            break;
    }
    $ignore_file_types = get_option('qtranslate_ignore_file_types');
    $val = explode(',', QTX_IGNORE_FILE_TYPES);
    if (!empty($ignore_file_types)) {
        $vals = preg_split('/[\\s,]+/', strtolower($ignore_file_types), null, PREG_SPLIT_NO_EMPTY);
        foreach ($vals as $v) {
            if (empty($v)) {
                continue;
            }
            if (in_array($v, $val)) {
                continue;
            }
            $val[] = $v;
        }
    }
    $q_config['ignore_file_types'] = $val;
    do_action('qtranslate_loadConfig');
}
Example #3
0
/**
 * Save language properties to database
 * @since 3.3
 */
function qtranxf_save_languages($langs_stored, $qtranslate_options = null)
{
    if (!$qtranslate_options) {
        global $qtranslate_options;
        if (!$qtranslate_options) {
            qtranxf_set_default_options($qtranslate_options);
        }
    }
    $cfg = array();
    foreach ($langs_stored as $lang => $props) {
        foreach ($props as $nm => $v) {
            $cfg[$nm][$lang] = $v;
        }
    }
    foreach ($qtranslate_options['languages'] as $nm => $opn) {
        if (empty($cfg[$nm])) {
            delete_option($opn);
        } else {
            update_option($opn, $cfg[$nm]);
        }
    }
    global $q_config;
    if (isset($q_config['date_i18n'])) {
        update_option('qtranslate_date_i18n', $q_config['date_i18n']);
    }
    //qtranxf_dbg_log('qtranxf_save_languages: $cfg: ',$cfg);
}
function qtranxf_sync_language_config()
{
    global $q_config, $qtranslate_options;
    qtranxf_set_default_options($qtranslate_options);
    if (!isset($q_config['enabled_languages'])) {
        $q_config['enabled_languages'] = get_option('qtranslate_enabled_languages');
    }
    qtranxf_load_language_props();
    qtranxf_sync_date_i18n_config();
}