add('name', PLUGIN_EVENT_EMOTICATE_NAME); $propbag->add('description', PLUGIN_EVENT_EMOTICATE_DESC); $propbag->add('stackable', false); $propbag->add('author', 'Serendipity Team'); $propbag->add('version', '1.6'); $propbag->add('requirements', array( 'serendipity' => '0.8', 'smarty' => '2.6.7', 'php' => '4.1.0' )); $propbag->add('groups', array('MARKUP')); $propbag->add('cachable_events', array('frontend_display' => true)); $propbag->add('event_hooks', array('frontend_display' => true, 'frontend_comment' => true)); $this->markup_elements = array( array( 'name' => 'ENTRY_BODY', 'element' => 'body', ), array( 'name' => 'EXTENDED_BODY', 'element' => 'extended', ), array( 'name' => 'COMMENT', 'element' => 'comment', ), array( 'name' => 'HTML_NUGGET', 'element' => 'html_nugget', ) ); $conf_array = array(); foreach($this->markup_elements as $element) { $conf_array[] = $element['name']; } $conf_array[] = 'extension'; $propbag->add('configuration', $conf_array); } function install() { serendipity_plugin_api::hook_event('backend_cache_entries', $this->title); } function uninstall(&$propbag) { serendipity_plugin_api::hook_event('backend_cache_purge', $this->title); serendipity_plugin_api::hook_event('backend_cache_entries', $this->title); } function getEmoticons() { global $serendipity; /* Avoid multiple runs of serendipity_getTemplateFile(), in other words - if we already have a list of smilies, don't bother looking for another */ if (isset($this->smilies) && sizeof($this->smilies) != 0) { return $this->smilies; } /* Hijack global variable $serendipity['custom_emoticons'] if it exists */ $hijack_file = serendipity_getTemplateFile('emoticons.inc.php', 'serendipityPath'); if (@file_exists($hijack_file)) { @include $hijack_file; // This file contains $serendipity['custom_emoticons'] and maybe $serendipity['custom_emoticons_regexp'] if (isset($serendipity['custom_emoticons']) && is_array($serendipity['custom_emoticons'])) { $this->smilies = $serendipity['custom_emoticons']; if (is_array($this->smilies) && (!isset($serendipity['custom_emoticons_regexp']) || !$serendipity['custom_emoticons_regexp'])) { foreach($this->smilies AS $key => $val) { unset($this->smilies[$key]); $this->smilies[preg_quote($key, '/')] = $val; } } } } if (!isset($this->smilies)) { $ext = $this->get_config('extension', 'png'); $this->smilies = array( "\:'\(" => serendipity_getTemplateFile('img/emoticons/cry.'.$ext), '\:\-?\)' => serendipity_getTemplateFile('img/emoticons/smile.'.$ext), '\:\-?\|' => serendipity_getTemplateFile('img/emoticons/normal.'.$ext), '\:\-?O' => serendipity_getTemplateFile('img/emoticons/eek.'.$ext), '\:\-?\(' => serendipity_getTemplateFile('img/emoticons/sad.'.$ext), '8\-?\)' => serendipity_getTemplateFile('img/emoticons/cool.'.$ext), '\:\-?D' => serendipity_getTemplateFile('img/emoticons/laugh.'.$ext), '\:\-?P' => serendipity_getTemplateFile('img/emoticons/tongue.'.$ext), ';\-?\)' => serendipity_getTemplateFile('img/emoticons/wink.'.$ext), ); } return $this->smilies; } function humanReadableEmoticon($key) { return str_replace(array('-?', '\\'), array('-', ''), $key); } function generate_content(&$title) { $title = $this->title; } function example() { $s = '
' . $this->humanReadableEmoticon($key) . ' | |