2011-11-10 13 views
2

誰かがバリアントタブをドロップダウンではなく実際のタブとして使用する方法を知っていますか?MediaWikiのバリアントタブ

これはsr.wikipedia.orgがそれを持っているかである。 desired solution, as seen on sr.wikipedia.org

、これは私が私のzablude.com/wiki/ページ上でそれを持っているかである: enter image description here

と私はすべてを試してみました私が思っていたどこにいても見つけ出して検索しましたが、解決策を見つけることができませんでした...誰かがどのような考え方を持っていますか?

答えて

2

彼らにはJavaScript —でそれをハックはМедијавики:Vector.jsの下部にあるコードのこの部分を参照してください。

//to be able to switch the language variant (overrides the default buttons with more visible ones) 
function tabWorkaround() { 
    if(mw.config.get('wgUserVariant') == 'sr') { 
     var tab_urls = {}; 
     tab_urls[0] = document.getElementById('ca-varlang-0').getElementsByTagName('a')[0].href; //Ћирилица 
     tab_urls[1] = document.getElementById('ca-varlang-1').getElementsByTagName('a')[0].href; //Latinica 
     $('#p-variants').remove(); 
     mw.util.addPortletLink('p-namespaces', tab_urls[0], 'Ћирилица'); 
     mw.util.addPortletLink('p-namespaces', tab_urls[1], 'Latinica'); 
    } 
} 
$(document).ready(tabWorkaround); 

おそらくしかし、MediaWikiのフックでそれを行うにはきれいだろう。次のコードはテストされていないが、私はどんな愚かなミスを犯していない場合は動作するはずです:

// show language variants as tabs in Vector skin 
function tabWorkaround(&$skintemplate, &$links) { 
    $links['namespaces'] += $links['variants']; 
    $links['variants'] = array(); 
    return true; 
} 
$wgHooks['SkinTemplateNavigation::Universal'][] = 'tabWorkaround'; 

(MW 1.17では、このフックは、ベクターのみの皮膚から呼び出されたMW 1.18で、それはすべてのスキンに影響します。 )

+0

これは解決しましたが、驚くばかり!ありがとう! –

0

Try $wgVectorFeatures['collapsibletabs']['global'] = false;これは相手側のドロップダウンを意図していますが、他のドロップダウンも同様に機能します。

+0

それを試してみました...(私はLocalSettings.phpに配置しました)、どちらの側でも動作しませんでした... –