diff --git a/include/functions_entries_admin.inc.php b/include/functions_entries_admin.inc.php index a5c9036d..9bff6225 100644 --- a/include/functions_entries_admin.inc.php +++ b/include/functions_entries_admin.inc.php @@ -161,7 +161,6 @@ function serendipity_emit_htmlarea_code($item, $jsname, $spawnMulti = false) { if ($init && $spawnMulti) { return; } - if (isset($serendipity['wysiwyg']) && $serendipity['wysiwyg']) { $eventData = array( @@ -171,25 +170,14 @@ function serendipity_emit_htmlarea_code($item, $jsname, $spawnMulti = false) { 'skip' => false, 'buttons'=> array() ); + serendipity_plugin_api::hook_event('backend_wysiwyg', $eventData); if ($eventData['skip']) { return; } - // entryform, staticpages, html nuggets - if (isset($serendipity['GET']['adminModule']) && ($serendipity['GET']['adminModule'] == 'entries' || $serendipity['GET']['adminModule'] == 'event_display' || $serendipity['GET']['adminModule'] == 'plugins') ) - { - $backend_wysiwyg = true; - } - - $data = array(); - $data['init'] = $init; - $data['spawnMulti'] = $spawnMulti; - $data['jsname'] = $jsname; - $data['eventData'] = $eventData; - $data['item'] = $item; - $data['backend_wysiwyg'] = $backend_wysiwyg ? $backend_wysiwyg : false; + $data = array('init' => $init, 'spawnMulti' => $spawnMulti, 'jsname' => $jsname, 'item' => $item, 'buttons' => $eventData['buttons']); echo serendipity_smarty_show('admin/wysiwyg_init.tpl', $data); } diff --git a/templates/2k11/admin/wysiwyg_init.tpl b/templates/2k11/admin/wysiwyg_init.tpl index 486ff7b9..b3dfceef 100644 --- a/templates/2k11/admin/wysiwyg_init.tpl +++ b/templates/2k11/admin/wysiwyg_init.tpl @@ -19,9 +19,29 @@ } }); + {foreach $buttons as $button} + CKEDITOR.plugins.add('{$button.id}', { + init: function( editor ) { + editor.addCommand( '{$button.name}', { + exec : function( editor ) { + {$button.javascript} + } + }); + editor.ui.addButton('{$button.id}', { + label: '{$button.name}', + command: '{$button.name}', + icon: '{$button.img_url}' + }); + + } + }); + {/foreach} + + CKEDITOR.replace($('#'+serendipity.escapeBrackets('{$item}')).get(0), { customConfig : '{$serendipityHTTPPath}htmlarea/ckeditor_custom_config.js', - extraPlugins : 's9y_medialibrary{$item}', + extraPlugins : 's9y_medialibrary{$item}{foreach $buttons as $button},{$button.id}{/foreach}', + toolbar: [ { name: 'tools', items: [ 'Maximize' ] }, { name: 'styles', items: [ 'Format' ] }, @@ -31,7 +51,7 @@ { name: 'insert', items: [ 'Image', 's9y_medialibrary{$item}', 'Table', 'HorizontalRule', 'SpecialChar' ] }, { name: 'clipboard', groups: [ 'clipboard', 'undo' ], items: [ 'Cut', 'Copy', 'Paste', 'PasteText', '-', 'Undo', 'Redo' ] }, { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ], items: [ 'Scayt' ] }, - { name: 'others', items: [ '-' ] }, + { name: 'others', items: [ '-' {foreach $buttons as $button}, '{$button.id}'{/foreach} ] }, { name: 'document', groups: [ 'mode', 'document', 'doctools' ], items: [ 'Source' ] }, { name: 'about', items: [ 'About' ] } ]