diff --git a/application/utils.inc.php b/application/utils.inc.php index 32743cab6..21226de12 100644 --- a/application/utils.inc.php +++ b/application/utils.inc.php @@ -2567,7 +2567,7 @@ class utils $aDefaultConf = array( 'language'=> $sLanguage, 'contentsLanguage' => $sLanguage, - 'extraPlugins' => 'disabler,codesnippet,mentions', + 'extraPlugins' => 'disabler,codesnippet,mentions,objectshortcut', ); // Mentions diff --git a/js/ckeditor/plugins/objectshortcut/dialogs/objectshortcut.js b/js/ckeditor/plugins/objectshortcut/dialogs/objectshortcut.js new file mode 100644 index 000000000..084fb92eb --- /dev/null +++ b/js/ckeditor/plugins/objectshortcut/dialogs/objectshortcut.js @@ -0,0 +1,46 @@ +CKEDITOR.dialog.add( 'objectshortcutDialog', function( editor ) { + return { + + // Basic properties of the dialog window: title, minimum size. + title: 'Object shortcut', + minWidth: 300, + minHeight: 200, + + // Dialog window content definition. + contents: [ + { + id: 'tab-basic', + label: 'Basic Settings', + + elements: [ + { + type: 'text', + id: 'class', + label: 'Class', + + validate: CKEDITOR.dialog.validate.notEmpty( "Class field cannot be empty." ) + }, + { + type: 'text', + id: 'id', + label: 'Id', + validate: CKEDITOR.dialog.validate.notEmpty( "Id field cannot be empty." ) + }, + { + type: 'text', + id: 'label', + label: 'Label', + }, + ] + }, + ], + + // This method is invoked once a user clicks the OK button, confirming the dialog. + onOk: function() { + editor.insertHtml( '[[' + this.getValueOf( 'tab-basic', 'class' ) + ':' + + this.getValueOf( 'tab-basic', 'id' ) + + ( this.getValueOf( 'tab-basic', 'label' ) ? '|' + this.getValueOf( 'tab-basic', 'label' ) : '') + + ']]' ); + } + }; +}); diff --git a/js/ckeditor/plugins/objectshortcut/icons/objectshortcut.png b/js/ckeditor/plugins/objectshortcut/icons/objectshortcut.png new file mode 100644 index 000000000..b54f4e16b Binary files /dev/null and b/js/ckeditor/plugins/objectshortcut/icons/objectshortcut.png differ diff --git a/js/ckeditor/plugins/objectshortcut/plugin.js b/js/ckeditor/plugins/objectshortcut/plugin.js new file mode 100644 index 000000000..f0ee55a1b --- /dev/null +++ b/js/ckeditor/plugins/objectshortcut/plugin.js @@ -0,0 +1,29 @@ +// Register the plugin within the editor. +CKEDITOR.plugins.add( 'objectshortcut', { + + // Register the icons. + icons: 'objectshortcut', + + // The plugin initialization logic goes inside this method. + init: function( editor ) { + + // Define an editor command that opens our dialog window. + editor.addCommand( 'objectshortcut', new CKEDITOR.dialogCommand( 'objectshortcutDialog' ) ); + + // Create a toolbar button that executes the above command. + editor.ui.addButton( 'Objectshortcut', { + + // The text part of the button (if available) and the tooltip. + label: 'Object Shortcut', + + // The command to execute on click. + command: 'objectshortcut', + + // The button placement in the toolbar (toolbar group name). + toolbar: 'insert' + }); + + // Register our dialog file -- this.path is the plugin folder path. + CKEDITOR.dialog.add( 'objectshortcutDialog', this.path + 'dialogs/objectshortcut.js' ); + } +});