MediaWiki:Gadget-hilfelinks.js

Aus Stupidedia, der sinnfreien Enzyklopädie!
Wechseln zu: Navigation, Suche

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

Linktipps: Faditiva und 3DPresso