创建包含所有模板的维基媒体下拉列表

时间:2015-07-15 14:41:36

标签: javascript drop-down-menu wikimedia

我正在尝试为WikiEdit工具栏创建自定义选择按钮。但是,我找不到如何使用我的维基页面上的所有模板动态填充它。

以下是我到目前为止添加到common.js文件的内容:

var customizeToolbar = function() {
    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
    'sections': {
    'templates': {
        'type': 'toolbar', // Can also be 'booklet'
        'label': 'Templates'
        // or 'labelMsg': 'section-emoticons-label' for a localized label
    }
}
} );

$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
    'section': 'templates',
    'groups': {
        'templates': {
            'label': 'add-template' // or use labelMsg for a localized label, see above
        }
    }
} );

$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
    'section': 'templates',
    'group': 'templates',
    'tools': {
        'choose': {
            label: 'Add Template!', 
            type: 'select',
            action: {
                type: 'module',
                options: {
                    {{Special:Allpages/Template|mode=list}} // this does not work, but I suppose I need something similar
                }
            }
        }
    }
} );

}

1 个答案:

答案 0 :(得分:0)

我必须将所有模板分配到下拉列表中的不同按钮,如下所示:

$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
    'section': 'main',
    'group': 'templates',
    'tools': { // creates tools in the templates group
        'choose': {
            label: 'Add Template!', // the title of the drop-down
            type: 'select', // creates drop down menu
            list: {
                    Hijacker : {
                        label: 'your-label',
                        action: {
                            type: 'encapsulate',
                            options: {
                                pre: '{{your-template-name|parameters-to-send-to-template}}',
                            }
                        }
                    } });

添加单击按钮时要执行的功能的方法:

 $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
    'section': 'your-section-name',
    'group': 'your-group-name',
    'tools': {
        'image': {
            label: 'your-label',
            type: 'button',
            icon: 'path-to-icon-image/image.png',
            action: {
                type: 'callback',
                    execute: function()
                                    { 
                                      //your code to execute
                                    }
            }
        }
    }
});