LLWiki正在建设中,欢迎加入我们!
“MediaWiki:Gadget-MobileCategories.js”的版本间差异
跳转到导航
跳转到搜索
小 |
小 |
||
第3行: | 第3行: | ||
if(mw.config.get('skin') == 'vector') { return; } |
if(mw.config.get('skin') == 'vector') { return; } |
||
var |
var showhiddencats = mw.user.options.get('showhiddencats'), |
||
⚫ | |||
apiRequest = api.get( { |
apiRequest = api.get( { |
||
'action':'query', |
'action':'query', |
||
'titles': mw.config.get('wgPageName'), |
'titles': mw.config.get('wgPageName'), |
||
'prop': 'categories', |
'prop': 'categories', |
||
'clshow': '!hidden', |
'clshow': (showhiddencats ? '!hidden|hidden' : '!hidden'), |
||
'clprop': 'hidden', |
|||
'cllimit': 50, |
'cllimit': 50, |
||
'indexpageids': true, |
'indexpageids': true, |
||
第17行: | 第19行: | ||
$.when( apiRequest, apiRequest2 ).done( function( data ) { |
$.when( apiRequest, apiRequest2 ).done( function( data ) { |
||
var categories = [], |
var categories = [], |
||
hiddenCats = [], |
|||
response1Data = data[0], |
response1Data = data[0], |
||
response2Data = data[1]; |
response2Data = data[1]; |
||
第24行: | 第27行: | ||
function categoryHtmlGenerator(element, index, array) { |
function categoryHtmlGenerator(element, index, array) { |
||
var title = new mw.Title( element.title, mw.config.get( 'wgNamespaceIds' ).file ); |
var title = new mw.Title( element.title, mw.config.get( 'wgNamespaceIds' ).file ); |
||
if( !element.hidden ) { |
|||
$( |
categories.push( $('<li>').append( |
||
.attr( ' |
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) ) |
||
.attr( 'title', title ) |
|||
.append( document.createTextNode( title.getMainText() ) ) |
|||
) |
).get( 0 ) |
||
⚫ | |||
} |
|||
else if(showhiddencats) { |
|||
hiddenCats.push( $('<li>').append( |
|||
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) ) |
|||
⚫ | |||
.append( document.createTextNode( title.getMainText() ) ) |
|||
⚫ | |||
); |
|||
} |
|||
} |
} |
||
response1Data.query.pages[0].categories.forEach( categoryHtmlGenerator ); |
response1Data.query.pages[0].categories.forEach( categoryHtmlGenerator ); |
||
if( categories.length === 0 ) { return; } |
if( categories.length === 0 && hiddenCats.length === 0 ) { return; } |
||
var normalCatlinks, hiddenCatlinks; |
|||
if(categories.length) { |
|||
normalCatlinks = $( '<div>' ) |
|||
⚫ | |||
.addClass('mw-normal-catlinks') |
|||
.append( $( '<ul>' ).append( categories ) ) |
|||
⚫ | |||
} |
|||
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>' ) |
var catlinks = $( '<div>' ) |
||
. |
.addClass( 'catlinks' ) |
||
. |
.attr( 'id', 'catlinks' ) |
||
. |
.data( 'mw', 'interface' ); |
||
if(normalCatlinks) { catlinks.append(normalCatlinks); } |
|||
⚫ | |||
if(hiddenCatlinks) { catlinks.append(hiddenCatlinks); } |
|||
$('.printfooter') |
|||
$('.printfooter').after(catlinks); |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
} ); |
} ); |
||
} ); |
} ); |
2020年8月17日 (一) 09:21的版本
// 引自[[wikipedia:mediawiki:gadget-MobileCategories.js]] mw.hook( 'wikipage.content' ).add( function() { if(mw.config.get('skin') == 'vector') { return; } var showhiddencats = mw.user.options.get('showhiddencats'), api = new mw.Api(), apiRequest = api.get( { 'action':'query', 'titles': mw.config.get('wgPageName'), 'prop': 'categories', 'clshow': (showhiddencats ? '!hidden|hidden' : '!hidden'), 'clprop': 'hidden', 'cllimit': 50, 'indexpageids': true, 'formatversion': 2 } ), apiRequest2 = api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] ); $.when( apiRequest, apiRequest2 ).done( function( data ) { var categories = [], hiddenCats = [], response1Data = data[0], response2Data = data[1]; if( !response1Data.query.pages[0].categories ) { return; } function categoryHtmlGenerator(element, index, array) { var title = new mw.Title( element.title, mw.config.get( 'wgNamespaceIds' ).file ); if( !element.hidden ) { categories.push( $('<li>').append( $( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) ) .attr( 'title', title ) .append( document.createTextNode( title.getMainText() ) ) ).get( 0 ) ); } else if(showhiddencats) { hiddenCats.push( $('<li>').append( $( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) ) .attr( 'title', title ) .append( document.createTextNode( title.getMainText() ) ) ).get( 0 ) ); } } response1Data.query.pages[0].categories.forEach( categoryHtmlGenerator ); if( categories.length === 0 && hiddenCats.length === 0 ) { 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); } ); } );