LLWiki正在建设中,欢迎加入我们

“MediaWiki:Gadget-MobileCategories.js”的版本间差异

来自LLWiki
跳转到导航 跳转到搜索
第1行: 第1行:
/**
// 引自[[wikipedia:mediawiki:gadget-MobileCategories.js]]
* @OriginalVersion: [[wikipedia:mediawiki:gadget-MobileCategories.js]]
* @EditedBy: [[User:Bhsd]]
*/
$(function() {
$(function() {
if ( mw.config.get('skin') == 'vector' ||
if (mw.config.get( 'skin' ) == 'vector' || mw.config.get( 'wgAction' ) != 'view') {
window.MobileCategoriesComplete = true;
!["view","submit"].includes(mw.config.get('wgAction')) ) {
return;
window.MobileCategoriesComplete = true;
}
return;
}


var showhiddencats = mw.user.options.get('showhiddencats'),
const showhiddencats = mw.user.options.get('showhiddencats'),
api = new mw.Api(),
api = new mw.Api();
apiRequest = api.get( {action:'query', titles: mw.config.get('wgPageName'), prop: 'categories', clprop: 'hidden', cllimit: 50, formatversion: 2 } ),
apiRequest2 = api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] );


$.when( apiRequest, apiRequest2 ).done( function( data ) {
api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] ).then(function() {
var wgCategories = mw.config.get( 'wgCategories' ),
var categories = [],
categories = wgCategories.normal,
hiddenCats = [],
hiddenCats = wgCategories.hidden,
response1Data = data[0],
allCats = showhiddencats ? categories.concat( hiddenCats ) : categories;
response2Data = data[1],
allCats = response1Data.query.pages[0].categories || [];
if ( allCats.length === 0 ) {
window.MobileCategoriesComplete = true;
if ( allCats.length === 0 ) {
return;
window.MobileCategoriesComplete = true;
}
return;
}
function categoryHtmlGenerator(array) {
mw.config.set('wgCategories', allCats.map(function(ele) { return ele.title.slice(9); }));
return $( '<ul>', {html: array.map(function(cat) {

return $('<a>', {href: mw.util.getUrl( 'Category:'+cat ), title: 'Category:'+cat, text: cat})
api.get({ action:'parse', text:JSON.stringify(allCats), contentmodel:'wikitext', variant:mw.config.get('wgUserVariant'), formatversion:2, prop:'text' })
.wrap( '<li>' ).parent();
.then(function(data2) {
})});
const allCatsVar = data2.parse.text.match(/<p>(.*)\n<\/p>/)[1],
}
contentCats = JSON.parse(allCatsVar);
var normalCatlinks, hiddenCatlinks;
function categoryHtmlGenerator(element, index, array) {
if (categories.length) {
if ( !element.hidden ) {
normalCatlinks = $( '<div>' )
categories.push( $('<li>').append(
.attr( 'id', 'mw-normal-catlinks' )
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) )
.addClass('mw-normal-catlinks')
.attr( 'title', element.title )
.append( categoryHtmlGenerator( categories ) )
.append( document.createTextNode( contentCats[index].title.substring(9) ) )
.prepend( '<a href="/zh/Special:Categories" title="Special:页面分类">' + mw.message( 'pagecategories' ).escaped() + '</a>' + mw.message( 'colon-separator' ).escaped() );
).get( 0 )
}
);
if (showhiddencats && hiddenCats.length) {
}
hiddenCatlinks = $( '<div>' )
else if (showhiddencats) {
.attr( 'id', 'mw-hidden-catlinks' )
hiddenCats.push( $('<li>').append(
.addClass(['mw-hidden-catlinks', 'mw-hidden-cats-user-shown'])
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) )
.append( categoryHtmlGenerator( hiddenCats ) )
.attr( 'title', element.title )
.prepend( wgULS("隐藏分类", "隱藏分類") + mw.message( 'colon-separator' ).escaped() );
.append( document.createTextNode( contentCats[index].title.substring(9) ) )
}
).get( 0 )
var catlinks = $( '<div>' )
);
.addClass( 'catlinks' )
}
.attr( 'id', 'catlinks' )
}
.data( 'mw', 'interface' );

if (normalCatlinks) { catlinks.append(normalCatlinks); }
allCats.forEach( categoryHtmlGenerator );
if (hiddenCatlinks) { catlinks.append(hiddenCatlinks); }

$('.printfooter').after(catlinks);
if ( categories.length === 0 && hiddenCats.length === 0 ) {
window.MobileCategoriesComplete = true;
window.MobileCategoriesComplete = true;
mw.hook( 'wikipage.categories' ).fire(catlinks);
return;
});
}
var normalCatlinks, hiddenCatlinks;
if (categories.length) {
normalCatlinks = $( '<div>' )
.attr( 'id', 'mw-normal-catlinks' )
.addClass('mw-normal-catlinks')
.append( $( '<ul>' ).append( categories ) )
.prepend( '<a href="/zh/Special:Categories" title="Special:页面分类">' + mw.message( 'pagecategories' ).escaped() + '</a>' + mw.message( 'colon-separator' ).escaped() );
}
if (hiddenCats.length) {
hiddenCatlinks = $( '<div>' )
.attr( 'id', 'mw-hidden-catlinks' )
.addClass(['mw-hidden-catlinks', 'mw-hidden-cats-user-shown'])
.append( $( '<ul>' ).append( hiddenCats ) )
.prepend( wgULS("隐藏分类", "隱藏分類") + mw.message( 'colon-separator' ).escaped() );
}
var catlinks = $( '<div>' )
.addClass( 'catlinks' )
.attr( 'id', 'catlinks' )
.data( 'mw', 'interface' );
if (normalCatlinks) { catlinks.append(normalCatlinks); }
if (hiddenCatlinks) { catlinks.append(hiddenCatlinks); }
$('.printfooter').after(catlinks);
window.MobileCategoriesComplete = true;
mw.hook( 'wikipage.categories' ).fire(catlinks);
});
} );
} );
} );

2021年10月9日 (六) 03:52的版本

/**
 * @OriginalVersion: [[wikipedia:mediawiki:gadget-MobileCategories.js]]
 * @EditedBy: [[User:Bhsd]]
 */
$(function() {
	if (mw.config.get( 'skin' ) == 'vector' || mw.config.get( 'wgAction' ) != 'view') {
		window.MobileCategoriesComplete = true;
		return;
	}

	const showhiddencats = mw.user.options.get('showhiddencats'),
		api = new mw.Api();

	api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] ).then(function() {
		var wgCategories = mw.config.get( 'wgCategories' ),
			categories = wgCategories.normal,
			hiddenCats = wgCategories.hidden,
			allCats = showhiddencats ? categories.concat( hiddenCats ) : categories;
		
		if ( allCats.length === 0 ) {
			window.MobileCategoriesComplete = true;
			return;
		}
		
		function categoryHtmlGenerator(array) {
			return $( '<ul>', {html: array.map(function(cat) {
				return $('<a>', {href: mw.util.getUrl( 'Category:'+cat ), title: 'Category:'+cat, text: cat})
					.wrap( '<li>' ).parent();
			})});
		}
	
		var normalCatlinks, hiddenCatlinks;
		if (categories.length) {
			normalCatlinks = $( '<div>' )
				.attr( 'id', 'mw-normal-catlinks' )
				.addClass('mw-normal-catlinks')
				.append( categoryHtmlGenerator( categories ) )
				.prepend( '<a href="/zh/Special:Categories" title="Special:页面分类">' + mw.message( 'pagecategories' ).escaped() + '</a>' + mw.message( 'colon-separator' ).escaped() );
		}
		if (showhiddencats && hiddenCats.length) {
			hiddenCatlinks = $( '<div>' )
				.attr( 'id', 'mw-hidden-catlinks' )
				.addClass(['mw-hidden-catlinks', 'mw-hidden-cats-user-shown'])
				.append( categoryHtmlGenerator( hiddenCats ) )
				.prepend( wgULS("隐藏分类", "隱藏分類") + mw.message( 'colon-separator' ).escaped() );
		}
		var catlinks = $( '<div>' )
			.addClass( 'catlinks' )
			.attr( 'id', 'catlinks' )
			.data( 'mw', 'interface' );
		if (normalCatlinks) { catlinks.append(normalCatlinks); }
		if (hiddenCatlinks) { catlinks.append(hiddenCatlinks); }
		$('.printfooter').after(catlinks);
		window.MobileCategoriesComplete = true;
		mw.hook( 'wikipage.categories' ).fire(catlinks);
	});
} );