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.8');
$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, $addData = null) {
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 ' ';
if ($i++ % 10 == 0) {
echo '
';
}
}
echo '';
return true;
break;
default:
return false;
break;
}
} else {
return false;
}
}
}
/* vim: set sts=4 ts=4 expandtab : */
?>