Example #1
0
/**
 * Encode URL $url with language $lang.
 * @param (string) $url URL to be converted.
 * @param (string) $lang two-letter language code of the language to convert $url to.
 * @param (bool) $forceadmin $url is not converted on admin side, unless $forceadmin is set to true.
 * @param (bool) $showDefaultLanguage When set to true, $url is always encoded with a language, otherwise it senses option "Hide URL language information for default language" to keep $url consistent with the currently active language.
 *
 * If you need a URL to switch the language, set $showDefaultLanguage=true, if you need a URL to keep the current language, set it to false.
 */
function qtranxf_convertURL($url = '', $lang = '', $forceadmin = false, $showDefaultLanguage = false)
{
    global $q_config;
    if (empty($lang)) {
        $lang = $q_config['language'];
    }
    if (empty($url)) {
        if ($q_config['url_info']['doing_front_end'] && defined('QTS_VERSION') && $q_config['url_mode'] != QTX_URL_QUERY) {
            //quick workaround, but need a permanent solution
            $url = qts_get_url($lang);
            //qtranxf_dbg_log('qtranxf_convertURL: qts_get_url: url=', $url);
            if (!empty($url)) {
                if ($showDefaultLanguage && $q_config['hide_default_language'] && $lang == $q_config['default_language']) {
                    $url = qtranxf_convertURL($url, $lang, $forceadmin, true);
                }
                return $url;
            }
        }
        //$url = esc_url($q_config['url_info']['url']);
    }
    if (!$q_config['url_info']['doing_front_end'] && !$forceadmin) {
        return $url;
    }
    if (!qtranxf_isEnabled($lang)) {
        return '';
    }
    if (!$showDefaultLanguage) {
        $showDefaultLanguage = !$q_config['hide_default_language'];
    }
    $showLanguage = $showDefaultLanguage || $lang != $q_config['default_language'];
    //qtranxf_dbg_log('qtranxf_convertURL('.$url.','.$lang.'): showLanguage=',$showLanguage);
    $complete = qtranxf_get_url_for_language($url, $lang, $showLanguage);
    //qtranxf_dbg_log('qtranxf_convertURL: complete: ',$complete);
    return $complete;
}
/**
 * Adds support for old plugin function
 * 
 * @package Qtranslate Slug
 * @subpackage Core
 * @since 1.1.5
 */
function qTranslateSlug_getSelfUrl($lang = false)
{
    // bad naming, I'll keep just in case
    return qts_get_url($lang);
}