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

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

来自LLWiki
跳转到导航 跳转到搜索
第3行: 第3行:
if(mw.config.get('skin') == 'vector') { return; }
if(mw.config.get('skin') == 'vector') { return; }


var api = new mw.Api(),
var showhiddencats = mw.user.options.get('showhiddencats'),
api = new mw.Api(),
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 );
categories.push( $('<li>').append(
if( !element.hidden ) {
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) )
categories.push( $('<li>').append(
.attr( 'title', title )
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) )
.append( document.createTextNode( title.getMainText() ) )
.attr( 'title', title )
).get( 0 )
.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 );
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>' )
.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>' )
var catlinks = $( '<div>' )
.attr( 'id', 'mw-normal-catlinks' )
.addClass( 'catlinks' )
.addClass('mw-normal-catlinks')
.attr( 'id', 'catlinks' )
.append( $( '<ul>' ).append( categories ) )
.data( 'mw', 'interface' );
if(normalCatlinks) { catlinks.append(normalCatlinks); }
.prepend( '<a href="/zh/Special:Categories" title="Special:页面分类">' + mw.message( 'pagecategories' ).escaped() + '</a>' + mw.message( 'colon-separator' ).escaped() );
if(hiddenCatlinks) { catlinks.append(hiddenCatlinks); }
$('.printfooter')
.after( $( '<div>' )
$('.printfooter').after(catlinks);
.addClass( 'catlinks' )
.attr( 'id', 'catlinks' )
.data( 'mw', 'interface' )
.append( 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);
    } );
} );