MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus SELFHTML-Wiki
Apsel (Diskussion | Beiträge) K (t) |
(Beispiel-Code-Links führen direkt zum Editieren oder Roh-Ansicht) |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 21: | Zeile 21: | ||
/* Vorlage:Beispiel | /* Vorlage:Beispiel | ||
| − | Zeige zusätzlichen Link zum Code für Beispiel-Administratoren */ | + | Zeige zusätzlichen Link zum Code mit unterschiedlicher Beschriftung für Beispiel-Administratoren und andere */ |
var BeispielAdmin = { | var BeispielAdmin = { | ||
setup: function() { | setup: function() { | ||
| − | var | + | var linkText, linkAffix; |
| − | if (wgUserGroups) | + | if (wgUserGroups && wgUserGroups.indexOf('exampleadmin') > -1) { |
| − | + | linkText = 'bearbeiten …'; | |
| − | + | linkAffix = '?action=edit'; | |
| − | + | } else { | |
| − | + | linkText = 'Quelltext …'; | |
| + | linkAffix = '?action=render'; | ||
| + | } | ||
var examples = getElementsByClassName(document, '*', 'vorlage_beispiel'); | var examples = getElementsByClassName(document, '*', 'vorlage_beispiel'); | ||
| − | for (var | + | for (var example = 0; example < examples.length; example++) { |
| − | var a = getElementsByClassName(examples[ | + | var a = getElementsByClassName(examples[example], 'a', 'beispiel_url'); |
if (a.length == 2) { | if (a.length == 2) { | ||
var codeLink = document.createElement('a'); | var codeLink = document.createElement('a'); | ||
| − | codeLink.href = wgArticlePath.replace(/\$1/, /\/extensions\/Selfhtml\/example.php\/(.*)$/.exec(a[0].href)[1]); | + | codeLink.href = wgArticlePath.replace(/\$1/, /\/extensions\/Selfhtml\/example.php\/(.*)$/.exec(a[0].href)[1]) + linkAffix; |
codeLink.className = 'beispiel_url_code'; | codeLink.className = 'beispiel_url_code'; | ||
| − | codeLink.appendChild(document.createTextNode( | + | codeLink.appendChild(document.createTextNode(linkText)); |
a[0].parentNode.appendChild(codeLink); | a[0].parentNode.appendChild(codeLink); | ||
} | } | ||
| − | } | + | } |
} | } | ||
}; | }; | ||
Version vom 11. Oktober 2015, 21:02 Uhr
/* Links zum Forum */
$('#mw-content-text > h2').append(" <a href='https://forum.selfhtml.org/self/new' title='Frage im SELFHTML-Forum stellen‽'><img src='https://src.selfhtml.org/wiki/Interrobang_20.png' alt='(‽)'></a>");
$('#mw-content-text > h3').append(" <a href='https://forum.selfhtml.org/self/new' title='Frage im SELFHTML-Forum stellen‽'><img src='https://src.selfhtml.org/wiki/interrobang_16.png' alt='(‽)'></a>");
if (document.URL.indexOf('Spezial:') == -1) {
$('#p-namespaces > ul').append("<li><span><a href='https://forum.selfhtml.org/self/new' title='Frage im SELFHTML-Forum stellen‽'>Forum</a></span></li>");
}
$('#ca-view').after("<li><span><a href='https://forum.selfhtml.org/self/new' title='Frage im SELFHTML-Forum stellen‽'>Fragen</a></span></li>");
/* Placeholder im Suchfeld */
document.getElementById('searchInput').setAttribute('placeholder', 'Suchbegriff');
/* Das folgende JavaScript wird für alle Benutzer geladen. */
/* CharInsert extension */
importScript('MediaWiki:Edittools.js');
/* Vorlage:Beispiel
Zeige zusätzlichen Link zum Code mit unterschiedlicher Beschriftung für Beispiel-Administratoren und andere */
var BeispielAdmin = {
setup: function() {
var linkText, linkAffix;
if (wgUserGroups && wgUserGroups.indexOf('exampleadmin') > -1) {
linkText = 'bearbeiten …';
linkAffix = '?action=edit';
} else {
linkText = 'Quelltext …';
linkAffix = '?action=render';
}
var examples = getElementsByClassName(document, '*', 'vorlage_beispiel');
for (var example = 0; example < examples.length; example++) {
var a = getElementsByClassName(examples[example], 'a', 'beispiel_url');
if (a.length == 2) {
var codeLink = document.createElement('a');
codeLink.href = wgArticlePath.replace(/\$1/, /\/extensions\/Selfhtml\/example.php\/(.*)$/.exec(a[0].href)[1]) + linkAffix;
codeLink.className = 'beispiel_url_code';
codeLink.appendChild(document.createTextNode(linkText));
a[0].parentNode.appendChild(codeLink);
}
}
}
};
addOnloadHook(BeispielAdmin.setup);
/* Vorlage:Verbergen */
function hasClass(element, className) {
return new RegExp('\\b' + className + '\\b').test(element.className);
}
var Verbergen = {
toggle: function(what) {
if (!hasClass(what, 'verbergen_schalter') || what.id.substr(0, 'verbergen_'.length) != 'verbergen_')
return;
var id = what.id.substr('verbergen_'.length);
var nodes = getElementsByClassName(document, '*', 'verbergen_id_' + id);
for (var i = 0; i < nodes.length; i++)
nodes[i].style.display = nodes[i].style.display == 'none' ? '' : 'none';
},
showAll: function() {
var hide = getElementsByClassName(document, '*', 'verbergen_verborgen');
for (var i = 0; i < hide.length; i++)
hide[i].style.display = '';
var show = getElementsByClassName(document, '*', 'verbergen_gezeigt');
for (var i = 0; i < show.length; i++)
show[i].style.display = 'none';
},
hideAll: function() {
var hide = getElementsByClassName(document, '*', 'verbergen_verborgen');
for (var i = 0; i < hide.length; i++)
hide[i].style.display = 'none';
var show = getElementsByClassName(document, '*', 'verbergen_gezeigt');
for (var i = 0; i < show.length; i++)
show[i].style.display = '';
},
toggleAll: function() {
var hide = getElementsByClassName(document, '*', 'verbergen_verborgen');
var show = getElementsByClassName(document, '*', 'verbergen_gezeigt');
for (var i = 0; i < hide.length; i++)
hide[i].style.display = hide[i].style.display == 'none' ? '' : 'none';
for (var i = 0; i < show.length; i++)
show[i].style.display = show[i].style.display == 'none' ? '' : 'none';
},
span2a: function(toggle, onclickHandler) {
var toggleLink = document.createElement('a');
toggleLink.href = "?schalte";
toggleLink.onclick = onclickHandler;
toggleLink.className = toggle.className;
if (toggle.id)
toggleLink.id = toggle.id;
toggleLink.innerHTML = toggle.innerHTML;
if (toggle.style.cssText) toggleLink.style.cssText = toggle.style.cssText;
else toggleLink.setAttribute('style', toggle.getAttribute('style'));
toggle.parentNode.replaceChild(toggleLink, toggle);
},
setup: function() {
var toggles = getElementsByClassName(document, '*', 'verbergen_schalter');
for (var i = 0; i < toggles.length; i++) {
Verbergen.span2a(toggles[i],
function() {Verbergen.toggle(this); return false;});
}
var hiddenNodes = getElementsByClassName(document, '*', 'verbergen_verborgen');
for (var i = 0; i < hiddenNodes.length; i++)
hiddenNodes[i].style.display = 'none';
toggles = getElementsByClassName(document, '*', 'verbergen_zeige_alles');
for (var i = 0; i < toggles.length; i++)
Verbergen.span2a(toggles[i], function() {Verbergen.showAll(); return false;});
toggles = getElementsByClassName(document, '*', 'verbergen_verberge_alles');
for (var i = 0; i < toggles.length; i++)
Verbergen.span2a(toggles[i], function() {Verbergen.hideAll(); return false;});
toggles = getElementsByClassName(document, '*', 'verbergen_schalte_alles');
for (var i = 0; i < toggles.length; i++)
Verbergen.span2a(toggles[i], function() {Verbergen.toggleAll(); return false;});
}
};
addOnloadHook(Verbergen.setup);
// Überschrift in Startseite ausblenden
if (document.URL.indexOf('Startseite') > 0) {
document.getElementById('firstHeading').style.display = 'none';
document.getElementById('content').style.borderTop = 'none';
}