add('name', PLUGIN_EVENT_EMOTICONCHOOSER_TITLE); $propbag->add('description', PLUGIN_EVENT_EMOTICONCHOOSER_DESC); $propbag->add('stackable', false); $propbag->add('author', 'Garvin Hicking, Jay Bertrandt'); $propbag->add('requirements', array( 'serendipity' => '0.8', 'smarty' => '2.6.7', 'php' => '4.1.0' )); $propbag->add('version', '1.7'); $propbag->add('event_hooks', array( 'backend_entry_toolbar_extended' => true, 'backend_entry_toolbar_body' => true, 'frontend_comment' => true )); $propbag->add('groups', array('BACKEND_EDITOR')); $propbag->add('configuration', array('frontend', 'popup', 'popuptext')); } function generate_content(&$title) { $title = PLUGIN_EVENT_EMOTICONCHOOSER_TITLE; } function introspect_config_item($name, &$propbag) { switch($name) { case 'frontend': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_EMOTICONCHOOSER_FRONTEND); $propbag->add('description', ''); $propbag->add('default', false); return true; break; case 'popup': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_EMOTICONCHOOSER_POPUP); $propbag->add('description', ''); $propbag->add('default', false); return true; break; case 'popuptext': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_EMOTICONCHOOSER_POPUPTEXT); $propbag->add('description', ''); $propbag->add('default', PLUGIN_EVENT_EMOTICONCHOOSER_POPUPTEXT_DEFAULT); return true; break; } return false; } function event_hook($event, &$bag, &$eventData) { global $serendipity; if (!class_exists('serendipity_event_emoticate')) { return false; } $hooks = &$bag->get('event_hooks'); if (isset($hooks[$event])) { switch($event) { case 'frontend_comment': if (serendipity_db_bool($this->get_config('frontend', false)) === false) { break; } $txtarea = 'serendipity_commentform_comment'; $func = 'comment'; $style = ''; $popcl = ''; case 'backend_entry_toolbar_extended': if (!isset($txtarea)) { $txtarea = 'serendipity[extended]'; $func = 'extended'; } case 'backend_entry_toolbar_body': if (!isset($txtarea)) { if (isset($eventData['backend_entry_toolbar_body:textarea'])) { // event caller has given us the name of the textarea converted // into a wysiwg editor(for example, the staticpages plugin) $txtarea = $eventData['backend_entry_toolbar_body:textarea']; } else { // default value $txtarea = 'serendipity[body]'; } if (isset($eventData['backend_entry_toolbar_body:nugget'])) { $func = $eventData['backend_entry_toolbar_body:nugget']; } else{ $func = 'body'; } } if (!isset($popcl)) { $popcl = ' serendipityPrettyButton'; } if (!isset($style)) { $style = 'text-align: right; margin-top: 5px'; } $popupstyle = ''; $popuplink = ''; if (serendipity_db_bool($this->get_config('popup', false))) { $popupstyle = '; display: none'; $popuplink = '' . $this->get_config('popuptext') . ''; } $i = 1; $emoticons = serendipity_event_emoticate::getEmoticons(); $unique = array(); foreach($emoticons as $key => $value) { if (is_callable(array('serendipity_event_emoticate', 'humanReadableEmoticon'))) { $key = serendipity_event_emoticate::humanReadableEmoticon($key); } $unique[$value] = $key; } ?> '; foreach($unique as $value => $key) { echo '' . $key . ' '; if ($i++ % 10 == 0) { echo '
'; } } echo ''; return true; break; default: return false; break; } } else { return false; } } } /* vim: set sts=4 ts=4 expandtab : */ ?>