add('name', PLUGIN_EVENT_TINYMCE_NAME);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_DESC);
$propbag->add('stackable', false);
$propbag->add('author', 'Garvin Hicking, Grischa Brockhaus');
$propbag->add('version', '1.11');
$propbag->add('requirements', array(
'serendipity' => '0.9',
'smarty' => '2.6.7',
'php' => '4.1.0'
));
$propbag->add('event_hooks', array(
'frontend_header' => true,
'backend_wysiwyg' => true,
'backend_wysiwyg_finish' => true
));
$propbag->add('configuration', array( 'article_only'
, 'imanager'
, 'tinymce_plugins'
, 'theme_advanced_buttons1'
, 'theme_advanced_buttons2'
, 'theme_advanced_buttons3'
, 'relativeurls'
, 'verifyhtml'
, 'cleanup'
, 'geckospellcheck'
, 'plugin_http_path'
));
$propbag->add('groups', array('BACKEND_EDITOR'));
}
function introspect_config_item($name, &$propbag)
{
global $serendipity;
switch($name) {
case 'article_only':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_ARTICLE_ONLY);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_ARTICLE_ONLY_DESC);
$propbag->add('default', false);
break;
case 'imanager':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_IMANAGER);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_IMANAGER_DESC);
$propbag->add('default', false);
break;
case 'tinymce_plugins':
$propbag->add('type', 'string');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_PLUGINS);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_PLUGINS_DESC);
$propbag->add('default', 'table,media,paste,directionality,fullscreen,s9ymdb');
break;
case 'theme_advanced_buttons1':
$propbag->add('type', 'string');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_BUTTONS1);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_BUTTONS1_DESC);
$propbag->add('default', 'help,visualaid,code,|,bold,italic,underline,strikethrough,sub,sup,|,bullist,numlist,|,outdent,indent,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect,formatselect,removeformat');
break;
case 'theme_advanced_buttons2':
$propbag->add('type', 'string');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_BUTTONS2);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_BUTTONS2_DESC);
$propbag->add('default', 'cut,copy,paste,pastetext,pasteword,|,search,replace,|,undo,redo,|,link,unlink,anchor,image,s9ymdb,imanager,tablecontrols,|,cleanup');
break;
case 'theme_advanced_buttons3':
$propbag->add('type', 'string');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_BUTTONS3);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_BUTTONS3_DESC);
$propbag->add('default', 'hr,|,charmap,emotions,media,|,ltr,rtl,|,fullscreen');
break;
case 'geckospellcheck':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_SPELLING);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_SPELLING_DESC);
$propbag->add('default', false);
break;
case 'relativeurls':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_RELURLS);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_RELURLS_DESC);
$propbag->add('default', true);
break;
case 'verifyhtml':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_VFYHTML);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_VFYHTML_DESC);
$propbag->add('default', true);
break;
case 'cleanup':
$propbag->add('type', 'boolean');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_CLEANUP);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_CLEANUP_DESC);
$propbag->add('default', true);
break;
case 'plugin_http_path':
$propbag->add('type', 'string');
$propbag->add('name', PLUGIN_EVENT_TINYMCE_HTTPREL);
$propbag->add('description', PLUGIN_EVENT_TINYMCE_HTTPREL_DESC);
$propbag->add('default', 'plugins/serendipity_event_tinymce');
break;
default:
return false;
}
return true;
}
function generate_content(&$title) {
$title = $this->title;
}
function event_hook($event, &$bag, &$eventData, $addData = null) {
global $serendipity;
$hooks = &$bag->get('event_hooks');
if (isset($hooks[$event])) {
switch($event) {
case 'frontend_header':
echo '' . "\n";
break;
case 'backend_wysiwyg':
$eventData['skip'] = true;
if (preg_match('@^nugget@i', $eventData['item'])) {
$this->event_hook('backend_wysiwyg_finish', $bag, $eventData);
}
break;
case 'backend_wysiwyg_finish':
$path = $this->get_config('plugin_http_path','plugins/serendipity_event_tinymce') . '/tinymce/';
$imanager = serendipity_db_bool($this->get_config('imanager'));
$geckospellcheck = serendipity_db_bool($this->get_config('geckospellcheck'));
$relativeurls = serendipity_db_bool($this->get_config('relativeurls'));
$verifyhtml = serendipity_db_bool($this->get_config('verifyhtml'));
$cleanup = serendipity_db_bool($this->get_config('cleanup'));
$article_only = serendipity_db_bool($this->get_config('article_only'));
$tinymce_plugins = $this->get_config('tinymce_plugins');
$theme_advanced_buttons1 = $this->get_config('theme_advanced_buttons1');
$theme_advanced_buttons2 = $this->get_config('theme_advanced_buttons2');
$theme_advanced_buttons3 = $this->get_config('theme_advanced_buttons3');
?>