Ejemplo n.º 1
0
function _l10n_chooser($permitted_langs)
{
    $count = 0;
    $langs = MLPLanguageHandler::get_site_langs();
    $o[] = '<div class="l10n_extensions"><fieldset><legend>' . gTxt('l10n-show_langs') . '</legend>' . n;
    $use_cookies = gps('l10n_filter_method') !== 'post';
    #
    #	See if there are any languages selected. If not, select them all -- to give the user something to look at!
    #
    $showlangs = array();
    $rendition_count = 0;
    $count = 0;
    foreach ($langs as $lang) {
        $table = _l10n_make_textpattern_name(array('long' => $lang));
        $lang_rendition_count = safe_count($table, L10N_COL_LANG . "='{$lang}'");
        $lang_has_renditions = $lang_rendition_count > 0;
        $rw = '';
        if ($use_cookies) {
            $checked = cs($lang) ? 'checked' : '';
        } else {
            $checked = gps($lang) ? 'checked' : '';
        }
        $lang_name = MLPLanguageHandler::get_native_name_of_lang($lang);
        if (!in_array($lang, $permitted_langs)) {
            $rw = 'disabled="disabled"';
            $checked = '';
        } elseif (!$lang_has_renditions) {
            $rw = 'disabled="disabled"';
            $checked = 'checked';
        }
        $showlangs[$lang]['lang_name'] = $lang_name;
        $showlangs[$lang]['rw'] = $rw;
        $showlangs[$lang]['checked'] = $checked;
        if (!empty($checked)) {
            $rendition_count += $lang_rendition_count;
        }
    }
    $override_check = false;
    if ($rendition_count === 0) {
        $override_check = true;
    }
    foreach ($showlangs as $lang => $record) {
        $dir = MLPLanguageHandler::get_lang_direction($lang);
        $rtl = $dir == 'rtl';
        extract($record);
        $checked = $override_check ? 'checked' : $checked;
        if ($rtl) {
            $o[] = t . '<span dir="rtl">';
        }
        $o[] = t . '<input type="checkbox" class="checkbox" ' . $rw . ' ' . $checked . ' value="' . $lang . '" name="' . $lang . '" id="' . $lang . '"/>' . n;
        $o[] = t . '<label for="' . $lang . '">' . $lang_name . '</label>' . n;
        if ($rtl) {
            $o[] = t . '</span>';
        }
    }
    $o[] = hInput('l10n_filter_method', 'post');
    $o[] = t . '<input type="submit" value="' . gTxt('go') . '" class="smallerbox" />' . n;
    $o[] = '</fieldset></div>' . n;
    $o = join('', $o);
    return $o;
}
Ejemplo n.º 2
0
 function do_fleshout_dirs(&$langs)
 {
     $result = array();
     if (is_array($langs) and !empty($langs)) {
         foreach ($langs as $code) {
             $code = trim($code);
             $tmp = MLPLanguageHandler::get_lang_direction($code);
             $result[$code] = $tmp;
         }
     }
     return $result;
 }
Ejemplo n.º 3
0
 function l10n_get_lang_dir($atts)
 {
     /*
     Outputs the direction (rtl/ltr) of the current language.
     Use in page/forms to output the direction needed by xhtml elements.
     */
     global $l10n_language;
     extract(lAtts(array('type' => 'short'), $atts));
     if (!$l10n_language) {
         $lang = MLPLanguageHandler::compact_code(MLPLanguageHandler::get_site_default_lang());
     } else {
         $lang = $l10n_language;
     }
     $dir = MLPLanguageHandler::get_lang_direction($lang[$type]);
     return $dir;
 }