Медијавики:Common.js — разлика између измена

Садржај обрисан Садржај додат
Нова страница: var importScript = function (s) { // It is important to call encodeURIComponent on s, or the importScript's that are based on page name // or other user controlled va…
 
(нема разлике)

Тренутна верзија на датум 7. август 2017. у 02:41

var importScript = function (s) {
	// It is important to call encodeURIComponent on s, or the importScript's that are based on page name
	// or other user controlled variables can be tricked into loading the wrong script page by embedding
	// an & in the page name, leading to XSS.
	mw.loader.load( '/w/index.php?title=' + encodeURIComponent(s) + '&action=raw&ctype=text/javascript' );
};
var importStylesheet = function (s) {
	mw.loader.load( '/w/index.php?title=' + encodeURIComponent(s) + '&action=raw&ctype=text/css', 'text/css' );
};

/*
 * Use Gadgets whenever possible to minimize loading for all users for every page.
 * Wait for mediawiki.util to be ready because some things assume its availability.
 */
mw.loader.using( 'mediawiki.util', function() {	
	/**
	 * Redirect User:Name/skin.js and skin.css to the current skin's pages
	 * (unless the 'skin' page really exists)
	 * @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
	 * @revision 2014-04-29
	 */
	if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
		var titleParts = mw.config.get( 'wgPageName' ).split( '/', 3 );
		// Make sure there was a part before and after the slash
		// And that the latter is 'skin.js' or 'skin.css'
		if ( titleParts.length == 2 ) {
			var userSkinPage = titleParts[0] + '/' + mw.config.get( 'skin' );
			if ( titleParts[1] === 'skin.js' ) {
				window.location.href = mw.util.getUrl( userSkinPage + '.js' );
			} else if ( titleParts[1] == 'skin.css' ) {
				window.location.href = mw.util.getUrl( userSkinPage + '.css' );
			}
		}
	}

	// Book specific
	mw.config.set( 'wgBookName', ( mw.config.get( 'wgPageName' ).split( '/', 1 )[0] || '' ).split( ':', 2 ).join( ':' ) );
	importStylesheet( 'MediaWiki:Common.css/' + mw.config.get( 'wgBookName' ) );

	// Page specific - lynchpin for [[Help:Dialog|dialog]] [[Category:Dialog javascript pages]]
	importScript( 'MediaWiki:Common.js/w/' + mw.config.get( 'wgPageName' ) );

	// Imported scripts
	importScript('MediaWiki:Common.js/Relics.js');
	importScript('MediaWiki:Common.js/ExtraTools.js');
	importScript('MediaWiki:Common.js/CollapseElements.js');
	importScript('MediaWiki:Common.js/NavigationTabs.js');
	importScript('MediaWiki:Common.js/Displaytitle.js');
	// importScript('MediaWiki:Common.js/RandomBook.js');
	importScript('MediaWiki:Common.js/Perbook.js');
	importScript('MediaWiki:Common.js/tabs.js');
	importScript('MediaWiki:Common.js/top.js');
	importScript('MediaWiki:Common.js/review.js');
	importScript('MediaWiki:Common.js/Categories.js');
	importScript('MediaWiki:Common.js/use.js');
	importScript('MediaWiki:Common.js/Slideshows.js');

	if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
		importScript('MediaWiki:Common.js/WatchlistNotice.js');
	} else if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit', 'upload'] ) !== -1 ) {
		importScript('MediaWiki:Common.js/Toolbox.js');
	}

// DO NOT ADD CODE BELOW THIS LINE
});