MediaWiki:Gadget-hilfelinks.js
Aus Stupidedia, der sinnfreien Enzyklopädie!
Wichtig: Nach dem Speichern musst Du deinem Browser sagen, dass er die neue Version laden soll: Mozilla/Firefox: Strg-Shift-R, IE: Strg-F5, Safari: Cmd-Shift-R, Konqueror: F5.
// <nowiki>
/**
* Dieses Objekt enthält seinerseits Objekte, welche bis zu drei Eigenschaften haben können:
* - page: Die Seite, auf die verlinkt werden soll
* - alt: Alternativtext für den Link (optional)
* - label: Optionaler Text, der im Dropdown angezeigt wird, ansonsten wird der Seitenname verwendet
*/
gHelpLinks.links = $.parseJSON( mw.user.options.get( 'userjs-hilfelinks' ) ) || {
hallOfFame: { page: 'Portal:Hall of Fame', alt: 'Hall of Fame' },
walkOfFame: { page: 'Portal:Walk of Fame', alt: 'Walk of Fame' },
richtlinien: { page: 'Stupidedia:Richtlinien', alt: 'Richtlinien' },
formatierung: { page: 'Hilfe:Formatierung', alt: 'Formatierungshilfe' },
lizenzen: { page: 'Stupidedia:Lizenzen', alt: 'Lizenzen' },
stupikette: { page: 'Stupidedia:Stupikette', alt: 'Stupikette' },
ersteSchritte: { page: 'Hilfe:Erste Schritte', alt: 'Erste Schritte' }
};
gHelpLinks.init = function() {
if ( global.isEditing && global.isTalkpage && document.getElementById( 'toolbar' ) ) {
gHelpLinks.createDropdown();
}
}
gHelpLinks.createDropdown = function() {
var dropdown = $( '<select id="gHelpLinks-dropdown" style="margin-left: 10px;"><option value="">Wichtigen Link einfügen</option></select>' );
$.each( gHelpLinks.links, function( value, link ) {
var label = ( link.label !== undefined ) ? link.label : link.page;
var option = $( '<option />' ).attr( 'value', value ).text( label );
dropdown.append( option );
} );
dropdown.appendTo( '#toolbar' ).on( 'change', gHelpLinks.setLink );
}
gHelpLinks.setLink = function() {
var dropdown = $( this );
if ( dropdown.val() === '' ) {
return;
}
var link = gHelpLinks.links[dropdown.val()];
dropdown.val( '' );
var text = '[[';
var title = new mw.Title( link.page );
// Dateien und Kategorien mit Doppelpunkt vorne dran verlinken
if ( title.getNamespaceId() === 6 || title.getNamespaceId() === 14 ) {
text += ':';
}
text += title.getPrefixedText();
// Optionaler Alternativtext
if ( typeof link.alt === 'string' && link.alt !== title.getPrefixedText() ) {
text += '|';
// Bei leerem Alternativtext den Titel ohne Präfix verwenden
if ( link.alt === '' ) {
text += title.getMainText();
}
// Ansonsten den angegebenen nutzen
else {
text += link.alt;
}
}
text += ']]';
insertTags( text, '', '' );
}
execute( 'gHelpLinks.init' );