コード例 #1
0
function wfLanguageSelectorHTML(Title $title, $style = null, $class = null, $selectorstyle = null, $buttonstyle = null, $showCode = null)
{
    global $wgLang, $wgContLang, $wgScript, $wgLanguageSelectorShowCode;
    if ($showCode === null) {
        $showCode = $wgLanguageSelectorShowCode;
    }
    static $id = 0;
    $id += 1;
    $code = $wgLang->getCode();
    $html = '';
    $html .= Xml::openElement('span', array('id' => 'languageselector-box-' . $id, 'class' => 'languageselector ' . $class, 'style' => $style));
    $html .= Xml::openElement('form', array('name' => 'languageselector-form-' . $id, 'id' => 'languageselector-form-' . $id, 'method' => 'get', 'action' => $wgScript, 'style' => 'display:inline;'));
    $html .= Html::Hidden('title', $title->getPrefixedDBKey());
    $html .= Xml::openElement('select', array('name' => 'setlang', 'id' => 'languageselector-select-' . $id, 'style' => $selectorstyle));
    foreach (wfGetLanguageSelectorLanguages() as $ln) {
        $name = $wgContLang->getLanguageName($ln);
        if ($showCode) {
            $name = wfBCP47($ln) . ' - ' . $name;
        }
        $html .= Xml::option($name, $ln, $ln == $code);
    }
    $html .= Xml::closeElement('select');
    $html .= Xml::submitButton(wfMsg('languageselector-setlang'), array('id' => 'languageselector-commit-' . $id, 'style' => $buttonstyle));
    $html .= Xml::closeElement('form');
    $html .= Xml::closeElement('span');
    return $html;
}
コード例 #2
0
/**
 * @param  $skin Skin
 * @param  $tpl QuickTemplate
 * @return bool
 */
function wfLanguageSelectorSkinTemplateOutputPageBeforeExec(&$skin, &$tpl)
{
    global $wgLanguageSelectorLocation;
    global $wgLang, $wgContLang;
    if ($wgLanguageSelectorLocation == LANGUAGE_SELECTOR_AS_PORTLET) {
        $code = $wgLang->getCode();
        $lines = array();
        foreach (wfGetLanguageSelectorLanguages() as $ln) {
            $lines[] = array($href = $skin->getTitle()->getFullURL('setlang=' . $ln), 'text' => $wgContLang->getLanguageName($ln), 'href' => $href, 'id' => 'n-languageselector', 'active' => $ln == $code);
        }
        $tpl->data['sidebar']['languageselector'] = $lines;
        return true;
    }
    $key = null;
    switch ($wgLanguageSelectorLocation) {
        case LANGUAGE_SELECTOR_INTO_SITENOTICE:
            $key = 'sitenotice';
            break;
        case LANGUAGE_SELECTOR_INTO_TITLE:
            $key = 'title';
            break;
        case LANGUAGE_SELECTOR_INTO_SUBTITLE:
            $key = 'subtitle';
            break;
        case LANGUAGE_SELECTOR_INTO_CATLINKS:
            $key = 'catlinks';
            break;
    }
    if ($key) {
        $html = wfLanguageSelectorHTML($skin->getTitle());
        $tpl->set($key, $tpl->data[$key] . $html);
    }
    return true;
}