Snippets/ToolboxLayer

How to use Snippets
List of Snippets
ToolboxLayer
Language(s): JavaScript Category:Snippets with JavaScript#ToolboxLayer
Compatible with: MediaWiki 1.17+ 
Category:All snippets#ToolboxLayer

Description

People familiar with how to add buttons to the old toolbar may find the wikiEditor interface confusing. People can continue to add buttons to wikiEditor using the old method by including this code.

Code

/**
 * Allow mwCustomEditButtons to continue to be used with wiki editor.
 *
 * @rev 1
 * @source https://www.mediawiki.org/wiki/Snippets/ToolboxLayer
 */

(function($) {
	if ( $.inArray( mw.config.get( 'wgAction' ), ['edit','submit']) === -1 || $.fn.wikiEditor === undefined ) {
		return;
	}

	$(document).ready( function() {
		var $tb = $('#wpTextbox1');
		$.each( window.mwCustomEditButtons || [], function(i) {
			var wikiOptions = { section: 'main', group: 'insert', tools: {}}, tool = this;
			wikiOptions.tools[ tool.name || 'mw-custom-edit-button-' + (i+1) ] = {
				label: tool.speedTip,
				type: 'button',
				icon: tool.imageFile,
				action: {
					type: 'callback',
					execute: function() {
						$tb.textSelection( 'encapsulateSelection', {
							pre: tool.tagOpen || '',
							peri: tool.sampleText || '',
							post: tool.tagClose || ''
						});
						if ( $.isFunction( tool.callbackFunct ) ) {
							tool.callbackFunct.call( window );
						}
					}
				}
			}
			$tb.wikiEditor( 'addToToolbar', wikiOptions );
		});
	});
})( jQuery );
Category:All snippets Category:Snippets with JavaScript