Zum Inhalt springen

„MediaWiki:Gadget-Direct-link-to-Commons.js“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Inhalt gelöscht Inhalt hinzugefügt
per Diskussionsseite und https://www.mediawiki.org/w/index.php?title=Snippets/Direct_imagelinks_to_Commons&diff=883778&oldid=832189
funktion nur wenn mediaviewer disabled, siehe disk: https://de.wikipedia.org/w/index.php?title=MediaWiki_Diskussion:Gadget-Direct-link-to-Commons.js&oldid=132885520#Wurde_jetzt_standardm.C3.A4ssig_deaktiviert.2C_f.C3.BCr_alle_.28auf_deWP.29
Zeile 7: Zeile 7:
* required modules: jquery, jquery.mwExtension, mediawiki, mediawiki.util
* required modules: jquery, jquery.mwExtension, mediawiki, mediawiki.util
*/
*/
if ( mw.config.get( 'wgNamespaceNumber', 0 ) >= 0 ) {
if ( mw.config.get( 'wgNamespaceNumber', 0 ) >= 0 && !mw.user.options.get( 'multimediaviewer-enable' )) {
mw.hook( 'wikipage.content' ).add( function ( $content ) {
mw.hook( 'wikipage.content' ).add( function ( $content ) {
var
var

Version vom 8. August 2014, 13:02 Uhr

/**
 * Direct imagelinks to Commons
 *
 * @source https://www.mediawiki.org/wiki/Snippets/Direct_imagelinks_to_Commons
 * @author [[commons:User:Krinkle]]
 * @version 12, with local modifications
 * required modules: jquery, jquery.mwExtension, mediawiki, mediawiki.util
 */
if ( mw.config.get( 'wgNamespaceNumber', 0 ) >= 0 && !mw.user.options.get( 'multimediaviewer-enable' )) {
	mw.hook( 'wikipage.content' ).add( function ( $content ) {
                var
                        commonsBasePath = '//commons.wikimedia.org/wiki/File:',
                        commonsBaseScript =  '//commons.wikimedia.org/w/index.php?title=File:',
                        localBasePath = new RegExp( '^' + $.escapeRE( mw.util.getUrl( mw.config.get( 'wgFormattedNamespaces' )['6'] + ':' ) ) ),
                        localBaseScript = new RegExp( '^' + $.escapeRE( mw.util.wikiScript() + '?title=' +
                                mw.util.wikiUrlencode( mw.config.get( 'wgFormattedNamespaces' )['6'] + ':' ) ) ),
                        uploadBaseRe = new RegExp( '^' + $.escapeRE( '/media/wikipedia/commons/' ) );

                $content.find( 'a.image' ).attr( 'href', function ( i, currVal ) {
                        if ( uploadBaseRe.test( $( this ).find( 'img' ).attr( 'src' ) ) ) {
                                return currVal
                                        .replace( localBasePath, commonsBasePath )
                                        .replace( localBaseScript, commonsBaseScript )
                                        // prevent false positive XSS detection in NoScript
                                        // https://de.wikipedia.org/?oldid=121733234#Verdacht_auf_XSS_bei_Klammern_im_Dateinamen
                                        .replace( /\(/g, '%28' )
                                        .replace( /\)/g, '%29' );
                        }
                });
        });
}