2011-11-10 5 views
2

Quelqu'un sait comment faire fonctionner les onglets de variantes en tant qu'onglets réels et non en tant que listes déroulantes?Onglets de variantes de MediaWiki

Ce comment sr.wikipedia.org a elle: desired solution, as seen on sr.wikipedia.org

et voici comment je l'ai sur ma page zablude.com/wiki/: enter image description here

et je l'ai tout essayé J'ai trouvé et cherché partout où je pouvais penser mais je n'étais pas capable de trouver une solution ... quelqu'un a des idées comment cela fonctionne?

Répondre

2

Ils pirater en JavaScript — voir ce morceau de code en bas de Медијавики: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); 

Il serait probablement plus propre de le faire avec un crochet de MediaWiki, cependant. Le code suivant est non testé, mais devrait fonctionner si je ne l'ai pas fait d'erreurs stupides:

// 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'; 

(en MW 1,17, ce crochet est seulement appelé de la peau Vector En MW 1,18, il aura une incidence sur toutes les peaux. Si vous ne voulez pas cela, vous pouvez tester si $skintemplate->skinname == 'vector'.)

+0

Ceci l'a résolu, IMPRESSIONNANT! Merci! –

0

Essayez $wgVectorFeatures['collapsibletabs']['global'] = false;. Cela est prévu pour la liste déroulante de l'autre côté, mais pourrait également fonctionner pour d'autres listes déroulantes.

+0

l'ai essayé ... (je l'ai placé dans LocalSettings.php) et il n'a pas fonctionné pour aucun côté ... –