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.13'); $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'); ?>