مدیاویکی:Gadget-Direct-link-to-Commons.js: تفاوت بین نسخه‌ها

از پژوهشکده امر به معروف
پرش به: ناوبری، جستجو
(صفحه‌ای تازه حاوی «/** * Direct imagelinks to Commons * * Required modules: jquery.mwExtension, mediawiki.util * * @source www.mediawiki.org/wiki/Snippet...» ایجاد کرد)
 
(بدون تفاوت)

نسخهٔ کنونی تا ‏۱۱ اسفند ۱۳۹۴، ساعت ۱۳:۱۱

/**
 * Direct imagelinks to Commons
 *
 * Required modules: jquery.mwExtension, mediawiki.util
 *
 * @source www.mediawiki.org/wiki/Snippets/Direct_imagelinks_to_Commons
 * @author Krinkle
 * @version 2014-05-14
 */
if ( mw.config.get( 'wgNamespaceNumber', 0 ) >= 0 ) {
	mw.hook( 'wikipage.content' ).add( function ( $content ) {
                'use strict';
		var
			uploadBaseRe = /^\/\/upload\.wikimedia\.org\/wikipedia\/commons/,
 
			localBasePath = new RegExp( '^' + mw.RegExp.escape( mw.util.getUrl( mw.config.get( 'wgFormattedNamespaces' )['6'] + ':' ) ) ),
			localBaseScript = new RegExp( '^' + mw.RegExp.escape( mw.util.wikiScript() + '?title=' + mw.util.wikiUrlencode( mw.config.get( 'wgFormattedNamespaces' )['6'] + ':' ) ) ),
 
			commonsBasePath =  '//commons.wikimedia.org/wiki/File:',
			commonsBaseScript =  '//commons.wikimedia.org/w/index.php?title=File:';
 
		$content.find( 'a.image' ).attr( 'href', function ( i, currVal ) {
			if ( uploadBaseRe.test( $( this ).find( 'img' ).attr( 'src' ) ) ) {
				currVal = currVal
					.replace( localBasePath, commonsBasePath )
					.replace( localBaseScript, commonsBaseScript );
                                currVal += (/\?/.test(currVal) ? '&' : '?') + 'uselang='
                                        + mw.config.get('wgPageContentLanguage');
                                return currVal;
			}
		} );
	} );
}