MediaWiki:Common.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 18: | Zeile 18: | ||
} | } | ||
addOnloadHook(anmToc); | addOnloadHook(anmToc); | ||
− | /********* | + | |
+ | /*********USER RIGHTS*************/ | ||
var sysopRights = false; | var sysopRights = false; | ||
− | for (i in wgUserGroups) | + | var userRights = false; |
+ | function setSysopRights(){ | ||
+ | for (i in wgUserGroups) { | ||
+ | if (wgUserGroups[i]== "user") | ||
+ | userRights = true; | ||
if (wgUserGroups[i]== "sysop") | if (wgUserGroups[i]== "sysop") | ||
sysopRights = true; | sysopRights = true; | ||
+ | } | ||
+ | } | ||
+ | addOnloadHook(setSysopRights); | ||
+ | |||
+ | /******************************/ | ||
//Nach dem Einloggen wieder zur Ausgangsseite: | //Nach dem Einloggen wieder zur Ausgangsseite: | ||
− | |||
if (wgCanonicalSpecialPageName == "Userlogin") | if (wgCanonicalSpecialPageName == "Userlogin") | ||
addOnloadHook( function() { document.location = document.getElementById('mw-returnto').getElementsByTagName('a')[0].href; } ); | addOnloadHook( function() { document.location = document.getElementById('mw-returnto').getElementsByTagName('a')[0].href; } ); | ||
Zeile 75: | Zeile 84: | ||
{ //eigentliches Script ab hier. Achtung auf "}" ! | { //eigentliches Script ab hier. Achtung auf "}" ! | ||
− | function showTocToggle() { return; } //Funktion überschreiben... | + | //function showTocToggle() { return; } //Funktion überschreiben... |
+ | // Seite Beobachten, etc. | ||
function toggleMsg() { | function toggleMsg() { | ||
jsMessage=document.getElementById('mw-js-message')||false; | jsMessage=document.getElementById('mw-js-message')||false; | ||
− | |||
if (jsMessage) jsMessage.style.display='none'; | if (jsMessage) jsMessage.style.display='none'; | ||
} | } | ||
Zeile 104: | Zeile 113: | ||
' .glossar2:hover .g_body{}' + //8 | ' .glossar2:hover .g_body{}' + //8 | ||
' .sysop {}' + //9 | ' .sysop {}' + //9 | ||
+ | ' .user {}' + //10 | ||
+ | ' .anon{}' + //11 | ||
' </style>' | ' </style>' | ||
); | ); | ||
Zeile 137: | Zeile 148: | ||
//---------- falls Sysop ---------------- | //---------- falls Sysop ---------------- | ||
− | if ( | + | if (sysopRights) { |
− | |||
− | |||
newRules[9].style.display='block'; | newRules[9].style.display='block'; | ||
+ | newRules[10].style.display='block'; | ||
+ | newRules[11].style.display='none'; | ||
+ | } | ||
} | } | ||
+ | |||
} | } | ||
− | sizeX | + | addOnloadHook(sizeX); |
window.onresize = function() {sizeX();}; | window.onresize = function() {sizeX();}; | ||
Version vom 6. April 2011, 21:17 Uhr
function kommentarLink () {
var as = document.getElementsByTagName('A');
for (var i= 0; i<as.length; ++i)
if (as[i].href.indexOf("Kommentar_Abschnitt")!=-1)
as[i].title= "Kommentar zu dieser Seite verfassen";
}
addOnloadHook(kommentarLink);
////Buttons f. Bearbeitungsfenster ganz unten!
function anmToc(){
if (wgPageName&&wgPageName.indexOf('Metalog:Glossar')!=-1) {
var anm = document.createElement('DIV');
anm.innerHTML="Anmerkung: „ō“ und „ū“ sind alphabetisch wie „ou“ und „uu“ eingeordnet";
anm.className="anmToc";
document.getElementById('toc').appendChild(anm);
}
}
addOnloadHook(anmToc);
/*********USER RIGHTS*************/
var sysopRights = false;
var userRights = false;
function setSysopRights(){
for (i in wgUserGroups) {
if (wgUserGroups[i]== "user")
userRights = true;
if (wgUserGroups[i]== "sysop")
sysopRights = true;
}
}
addOnloadHook(setSysopRights);
/******************************/
//Nach dem Einloggen wieder zur Ausgangsseite:
if (wgCanonicalSpecialPageName == "Userlogin")
addOnloadHook( function() { document.location = document.getElementById('mw-returnto').getElementsByTagName('a')[0].href; } );
// Welche Scripts für welche Seiten...
var jsOK = false;
var useNewJs = [
newJS_Spaces = [wgNamespaceNumber,4,100,102,104,106,108,110,112,],
newJS_Pages = [wgPageName,'Hauptseite']
];
function setJsOK(array) {
for (var i in array)
for (var n=1; n<array[i].length; n++)
if (array[i][n] == array[i][0]) jsOK = true;
}
setJsOK(useNewJs);
if (!wgIsArticle || wgAction != "view") jsOK = false;
window.onload= function() {
sizeY();
if (jsOK) {
nv = document.getElementById('chapters');
nvY = findPos(nv);
fixNv();
styleNv();
getThumbs();
setGlossar();
setShowtalk();
}
};
function sizeY() {
//Maße und Elemente
var body_width = document.body.offsetWidth,
body_height = document.body.offsetHeight,
screen_height = window.innerHeight ||
document.documentElement.offsetHeight;
var spacer = document.getElementById("content").appendChild( document.createElement("DIV") );
// Höhe anpassen
spacer = document.getElementById("thisway") || spacer;
spacer.style.paddingTop = (body_height+10) < screen_height ?
screen_height-(body_height+10) +"px" : 0;
}
if (jsOK)
{ //eigentliches Script ab hier. Achtung auf "}" !
//function showTocToggle() { return; } //Funktion überschreiben...
// Seite Beobachten, etc.
function toggleMsg() {
jsMessage=document.getElementById('mw-js-message')||false;
if (jsMessage) jsMessage.style.display='none';
}
window.onclick = toggleMsg;
///////// var für Maße und Elemente///////////////
var body_width, body_height, screen_height;
/***********************************
Stylesheet changes
***********************************/
document.write (
'<style>' +
' #column-content {}' + //0
' #column-one {}' + //1
' #toc{}' + //2
' #column-content #content #bodyContent{}' + //3
' #sidebar {}' + //4
' #p-personal{}' + //5
' #p-cactions {}' + //6
' #dropdown {}' + //7
' .glossar2:hover .g_body{}' + //8
' .sysop {}' + //9
' .user {}' + //10
' .anon{}' + //11
' </style>'
);
var newCSS = document.styleSheets[document.styleSheets.length-1],
newRules = newCSS.cssRules || newCSS.rules; // für alle Browser ansprechbar
/***********************************
Anpassen an Browserfenster, u.a.
************************************/
function sizeX() {
var normW = 1024,
thisW = window.innerWidth || document.documentElement.offsetWidth || 0,
rand_abstand = (thisW > normW)? Math.round((thisW - normW)/20*3) : 0;
if (newRules) {
//--------- neue Abstaende ---------------
newRules[0].style.marginRight = // #column-content
newRules[0].style.marginLeft =
//newRules[1].style.left = // #column-one
//newRules[2].style.marginRight = //#toc
newRules[4].style.marginLeft = // #sidebar
//newRules[5].style.marginLeft = //#p-personal
//newRules[6].style.marginLeft = //#p-cactions
newRules[7].style.marginLeft = //#dropdown
rand_abstand+'px';
newRules[3].style.marginRight = //#bodyContent
newRules[3].style.marginLeft =
rand_abstand/2+'px';
//---------- Glossar, falls JS ----------------
newRules[8].style.display = 'none'; //.glossar2:hover .g_body
//---------- falls Sysop ----------------
if (sysopRights) {
newRules[9].style.display='block';
newRules[10].style.display='block';
newRules[11].style.display='none';
}
}
}
addOnloadHook(sizeX);
window.onresize = function() {sizeX();};
//die wichtigsten Funktionen:
/*** NAVIGATION ***/
importScript('mediawiki:navigation.js');
/*** POPUPS ***/
importScript('mediawiki:popup.js');
/*** GLOSSAR ***/
importScript('mediawiki:glossar.js');
/*** KOMMENTAR ***/
importScript('mediawiki:kommentare.js');
}// ende "jsOK"
//Vielleicht für später
//importStylesheet('mediawiki:abc' + wgCanonicalNamespace + '.css');
//importScript('mediawiki:abc' + wgCanonicalNamespace + '.js');
//////////////////////////
//—‚ ‘„ “ōŌūŪ­
//////////////////////////
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/no.gif",
"speedTip": "",
"tagOpen": "",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/ndash.jpg",
"speedTip": "kurzer Bindestrich (n–dash)",
"tagOpen": "–",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/mdash.jpg",
"speedTip": "Text zwischen langen Bindestrichen (m—dash)",
"tagOpen": "— ",
"tagClose": " — ",
"sampleText": "Text"};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/hyphens1_dt.jpg",
"speedTip": "dt. Anführungszeichen einfach",
"tagOpen": "‚",
"tagClose": "‘",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/hyphens2_dt.jpg",
"speedTip": "dt. Anführungszeichen doppelt",
"tagOpen": "„",
"tagClose": "“",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/oo.jpg",
"speedTip": "langes o, klein",
"tagOpen": "ō",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/oo_gr.jpg",
"speedTip": "langes O, gross",
"tagOpen": "Ō",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/uu.jpg",
"speedTip": "langes u, klein",
"tagOpen": "ū",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/uu_gr.jpg",
"speedTip": "langes U, gross",
"tagOpen": "Ū",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/shy.jpg",
"speedTip": "stummes Trennzeichen",
"tagOpen": "·",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/nbsp.jpg",
"speedTip": "festes Leerzeichen (no breaking space)",
"tagOpen": " ",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": "/rel_jap/w/skins/common/images/ref.jpg",
"speedTip": "Fussnoten",
"tagOpen": "<ref>",
"tagClose": "</ref>",
"sampleText": "Text"};
/*********** WIKI GADGETS *****************/
function PageHomeArrows()
{
//if (!wgNamespaceNumber || wgNamespaceNumber <100) return;
var c = document.getElementById("bodyContent") || document.getElementById("mw_content") || document.getElementById("article");
if (!c) return;
for (var level = 2; level <= 3; ++level) {
var h = c.getElementsByTagName("h" + level);
for (var i = 0; i < h.length; ++i) {
var mwh = h[i].lastChild; // moveEditsection not run yet
if (mwh && mwh.className == "mw-headline" && mwh.offsetTop>screen.availHeight) {
var arrow = document.createElement("a");
arrow.className = "toparrow noprint";
arrow.title= "zum Seitenanfang";
arrow.appendChild(document.createTextNode("top↑"));
arrow.href = "javascript:window.scrollTo(0,0); void 0;";
mwh.insertBefore(arrow, mwh.firstChild);
}
}
}
}
addOnloadHook(PageHomeArrows);
/**********************/
// Search box for Mediawiki
// (c) 2006 [[User:Zocky]], released under GPL
//<pre><nowiki>
importStylesheetURI('http://en.wikipedia.org/w/index.php?title=User:Zocky/SearchBox.css&action=raw&ctype=text/css');
var sr$t;
var sr$f;
var sr$s;
var sr$r;
var sr$w;
var sr$i;
var sr$re;
var sr$mc;
function $e(id) {return document.getElementById(id)}
function srBack()
{
if (sr$s.value=='') {sr$t.focus(); return }
if (sr$re.checked) {
var searchString = sr$s.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
}
searchString="("+searchString+")(?![\\s\\S]*"+searchString+")";
if (sr$mc.checked)
var re=new RegExp(searchString);
else
var re=new RegExp(searchString,"i");
var res = re.exec (sr$t.value.substring(0,sr$t.selectionStart));
if (!res) {
var res = re.exec (sr$t.value)
}
if (res)
{
sr$t.selectionStart=res.index;
sr$t.selectionEnd=res.index+res[1].length;
}
else sr$t.selectionStart=sr$t.selectionEnd;
srSync();
}
function srNext()
{
if (sr$s.value=='') {sr$t.focus(); return }
if (sr$re.checked) {
var searchString = sr$s.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
}
if (sr$mc.checked)
var re=new RegExp(searchString,"g");
else
var re=new RegExp(searchString,"gi");
re.lastIndex=sr$t.selectionEnd;
var res = re.exec (sr$t.value)
if (!res) {
re.lastIndex=0;
var res = re.exec (sr$t.value)
}
if (res)
{
sr$t.selectionStart=res.index;
sr$t.selectionEnd=res.index+res[0].length;
}
else sr$t.selectionStart=sr$t.selectionEnd;
srSync();
}
function srReplace()
{
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
if (sr$s.value=='' || sels==sele) {sr$t.focus(); return }
if (sr$re.checked) {
var searchString = sr$s.value;
var replaceString = sr$r.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');
}
if (sr$mc.checked)
var re=new RegExp(searchString,"g");
else
var re=new RegExp(searchString,"gi");
re.lastIndex=sels;
var res = re.exec (sr$t.value);
var $$=0;
if (res && res.index==sels && res[0].length==sele-sels)
{
if (sr$re.checked) {
replaceString=replaceString.replace(/\\\\/g,'&backslash;');
var replaceBits=(" "+replaceString).split(/(?=\$\d)/);
replaceString=replaceBits[0].substring(1);
for (var i=1; i<replaceBits.length; i++)
{
$$=replaceBits[i][1]-'0';
if ($$<res.length)
replaceString += res[$$] + replaceBits[i].substring(2)
else
replaceString += replaceBits[i];
}
replaceString=replaceString.replace (/\\n/,"\n").replace (/&backslash;/g,"\\").replace
(/$/g,"\$")
}
sr$t.value= sr$t.value.substring(0,sels) + replaceString + sr$t.value.substring(sele);
}
sr$t.selectionStart=sels;
sr$t.selectionEnd=sr$t.value.length-selr;
srSync();
}
function srReplaceall()
{
if (!sr$s.value) {sr$t.focus(); return }
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
var reps;
if (sr$re.checked) {
var searchString = sr$s.value;
var replaceString = sr$r.value.replace(/\\\\/,'&backslash;').replace(/\\n/,'\n').replace(/&backslash;/,"\\");
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1');
}
if (sele>sels)
reps=sr$t.value.substring(sels,sele);
else
reps=sr$t.value;
if (sr$mc.checked)
var re=new RegExp(searchString,"g");
else
var re=new RegExp(searchString,"gi");
var replaceCounter=0;
var replaceFunc=function(){replaceCounter++;return replaceString};
reps=reps.replace(re,replaceFunc);
if (sele>sels)
sr$t.value = sr$t.value.substring(0,sels) + reps + sr$t.value.substring(sele);
else
sr$t.value = reps;
sr$t.selectionStart=sels;
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
window.status = replaceCounter+" ocurrences of " + searchString + " replaced.";
srSync();
}
function srToggleCase()
{
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
var selt=sr$t.value.substring(sels,sele);
if (sele>sels)
{
if (selt==selt.toUpperCase())
selt=selt.toLowerCase()
else if (selt==selt.toLowerCase() && sele-sels>1)
selt=selt.substring(0,1).toUpperCase()+selt.substring(1).toLowerCase()
else
selt=selt.toUpperCase();
sr$t.value = sr$t.value.substring(0,sels) + selt + sr$t.value.substring(sele);
sr$t.selectionStart=sels;
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
}
srSync();
}
function srSync()
{
var i;
var allLines=0;
var lineNo=0;
var w=sr$t.cols-5;
var dummy=sr$t.value.split("\n");
for (i=0;i<dummy.length;i++){allLines+=Math.ceil(dummy[i].length/w)}
var dummy=sr$t.value.substring(0,sr$t.selectionStart).split("\n");
for (i=0;i<dummy.length;i++){lineNo+=Math.ceil(dummy[i].length/w)}
// alert (w+" "+lineNo+"/"+allLines);
sr$t.scrollTop=sr$t.scrollHeight*(lineNo-10)/allLines;
sr$t.focus();
}
function srInit()
{
if($e('wpTextbox1')) {
var srBoxCode ='<div id="srForm"><table id="srBox" cellpadding="0" cellspacing="2"><tr>'
+'<td></td>'
+'<td valign="middle">'
+'<input type="checkbox" id="srCase" onclick="sr$t.focus()" tabindex="10"/><small><span style="color:#000000;">match case</span</small> '
+'<input type="checkbox" id="srRegexp" onclick="sr$t.focus()" tabindex="11"/><small><span style="color:#000000;">use regexp</span></small> '
+'<a href="javascript:srBack()" onmouseover="sr$t.focus()" title="find previous match [alt-2]" accesskey="2"><</a> '
+'<a href="javascript:srNext()" onmouseover="sr$t.focus()" title="find next match [alt-3]" accesskey="3">find ></a> '
+'<a href="javascript:srReplace();srBack()" onmouseover="sr$t.focus()" title="replace and find previous match [alt-4]" accesskey="4"><</a> '
+'<a href="javascript:srReplace()" onmouseover="sr$t.focus()" title="replace this match">replace</a> '
+'<a href="javascript:srReplace();srNext()" onmouseover="sr$t.focus()" title="replace and find next match [alt-5]" accesskey="5">></a> '
+'<a href="javascript:srReplaceall()" onmouseover="sr$t.focus()" title="replace all matches [alt-7]" accesskey="7">replace all</a> '
+'</td>'
+'</tr><tr>'
+'<td valign="bottom"><small><span style="color:#000000;">search for:</span></small></td>'
+'<td valign="bottom"><input type="text" id="srSearch" accesskey="F" tabindex="8" onkeypress="event.which == 13 && srNext()"; value=""/></td>'
+'</tr><tr>'
+'<td valign="bottom"><small><span style="color:#000000;">replace with:</span></small></td>'
+'<td valign="bottom"><input type="text" id="srReplace" accesskey="G" tabindex="9" onkeypress="event.which == 13 && srNext()"; value=""/></td>'
+'</tr></table></div>'
var ep=$e('searchInput');
if (ep) ep.accessKey='none';
sr$t=document.editform.wpTextbox1;
sr$w=sr$t.style.width;
var sr=document.createElement('div');
sr.innerHTML=srBoxCode;
var im=document.createElement('span');
im.innerHTML='<a id="SearchIcon" href="javascript:srShowHide()"><img style="cursor: pointer;" title="Search/Replace" alt="Search/Replace" src="http://upload.wikimedia.org/wikipedia/en/1/12/Button_find.png" border="0" height="22" width="23"></a><a href="javascript:srToggleCase()"><img style="cursor: pointer;" title="Toggle case" alt="Toggle case" src="http://upload.wikimedia.org/wikipedia/en/1/12/Button_case.png" border="0" height="22" width="23"></a>';
var ep=$e('toolbar');
if (ep)
{
ep.appendChild(im)
}
else
{
var ep=$e('editform');
ep.parentNode.insertBefore(im,ep);
}
sr$i=$e('SearchIcon');
sr$i.accessKey="F";
sr.firstChild.style.display='none';
var ep=$e('editform');
ep.parentNode.insertBefore(sr,ep);
sr$f=$e('srForm');
sr$s=$e('srSearch');
sr$r=$e('srReplace');
sr$re=$e('srRegexp');
sr$mc=$e('srCase');
}
}
function srShowHide()
{
if (sr$f.style.display=='none')
{
sr$f.style.display='block';
sr$i.accessKey="none";
sr$t.style.width='auto';
sr$s.focus();
}
else
{
sr$f.style.display='none';
sr$t.style.width=sr$w;
sr$i.accessKey="F";
}
}
addOnloadHook(srInit);
//</nowiki></pre>