الفرق بين المراجعتين لصفحة: «ميدياويكي:Gadget-MobileCategories.js»

تم حذف المحتوى تمت إضافة المحتوى
لإضافة جديدة
(لا فرق)

مراجعة 14:22، 16 يوليو 2020

/* المصدر: [[w:en:Gadget-MobileCategories.js]] */
/* التاريخ: الخميس 16 يوليو 2020 */
/* المهمة: إظهار تصنيفات المحتوى في نسخة الهاتف المحمول */
mw.hook( 'wikipage.content' ).add( function() {
	var api = new mw.Api();
	
	var apiRequest = api.get( {
		'action':'query',
		'titles': mw.config.get('wgPageName'),
		'prop': 'categories',
		'clprop': 'sortkey|hidden',
		'cllimit': 50,
		'indexpageids': true,
		'formatversion': 2
	} );
	var apiRequest2 = api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] );

	$.when( apiRequest, apiRequest2 ).done( function( data ) {
		var categories = [],
			response1Data = data[0],
			response2Data = data[1];
		
		if( !response1Data.query.pages[0].categories ) {
			return;
		}
		function categoryHtmlGenerator(element, index, array) {
			if( element.hidden ) {
				return;
			}
			var title = new mw.Title( element.title, mw.config.get( 'wgNamespaceIds' ).file );
  			categories.push(
  				$( '<a>' ).attr( {
  					'href': mw.util.getUrl( element.title )
  				} ).append(
  					document.createTextNode( title.getMainText() ) 
  				).get( 0 )
  			);
			categories.push( ', ' );
		}
		response1Data.query.pages[0].categories.forEach( categoryHtmlGenerator );

		if( categories.length === 0 ) {
			return;
		}
		categories.pop(); //remove the last comma
		categories.unshift( document.createTextNode(
			mw.message( 'pagecategories' ).escaped() + mw.message( 'colon-separator' ).escaped() + ' '
		) );
		
		$('.printfooter')
			.after( $( '<div>' )
				.addClass( 'catlinks' )
				.attr( 'id', 'catlinks' )
				.data( 'mw', 'interface' )
				.append( $( '<div>' )
						.attr( 'id', 'mw-normal-catlink' )
						.append( categories )
				)
			);
	} );
} );