add('name', PLUGIN_EVENT_COMMENTSPICE_TITLE); $propbag->add('description', PLUGIN_EVENT_COMMENTSPICE_DESC); $propbag->add('stackable', false); $propbag->add('author', 'Grischa Brockhaus'); $propbag->add('requirements', array( 'serendipity' => '0.8', 'smarty' => '2.6.7', 'php' => '4.1.0' )); $propbag->add('version', '0.1'); $propbag->add('event_hooks', array( 'frontend_comment' => true, 'frontend_display' => true, 'frontend_saveComment_finish' => true, 'external_plugin' => true, )); $propbag->add('groups', array('FRONTEND_VIEWS')); $propbag->add('configuration', array('twitterinput')); } function generate_content(&$title) { $title = PLUGIN_EVENT_EMOTICONCHOOSER_TITLE; } function introspect_config_item($name, &$propbag) { switch($name) { case 'twitterinput': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_COMMENTSPICE_TWITTERINPUT); $propbag->add('description', ''); $propbag->add('default', true); return true; break; } return false; } function event_hook($event, &$bag, &$eventData, &$addData) { global $serendipity; $hooks = &$bag->get('event_hooks'); if (isset($hooks[$event])) { switch($event) { case 'external_plugin': switch($eventData) { case 'spicetwitter.png': header('Content-Type: image/png'); echo file_get_contents(dirname(__FILE__). '/img/twitter.png'); break; case 'spicetwittersmall.png': header('Content-Type: image/png'); echo file_get_contents(dirname(__FILE__). '/img/twitter_small.png'); break; } return true; break; case 'frontend_saveComment_finish' : // Remember twitter name value into cookie, if user ordered to, else clear cookie if (isset($serendipity['POST']['remember'])) { serendipity_rememberCommentDetails(array ('twitter' => $serendipity['POST']['twitter'])); } else { serendipity_forgetCommentDetails(array('twitter')); } return true; break; case 'frontend_display': $this->printTwitterLink($eventData, $addData); return true; break; case 'frontend_comment': $this->printTwitterInput($eventData, $addData); return true; break; default: return false; break; } } else { return false; } } function printTwitterLink(&$eventData, &$addData) { global $serendipity; if (!isset($eventData['comment']) || !serendipity_db_bool($this->get_config('twitterinput', true))) { return true; } // Called from sidbar: if ($addData['from'] == 'serendipity_plugin_comments:generate_content') { return true; } if (isset($serendipity['COOKIE']['twitter'])) { $twittername = $serendipity['COOKIE']['twitter']; $eventData['comment'] = 'Read on twitter: ' . $twittername . '
' . $eventData['comment']; } } function printTwitterInput(&$eventData, &$addData) { global $serendipity; if (!serendipity_db_bool($this->get_config('twitterinput', true))) { return; } if (isset($serendipity['COOKIE']['twitter'])) $twittername = $serendipity['COOKIE']['twitter']; else $twittername = ''; echo '
'; echo ''; echo ' '; echo '
'; echo '
'; echo 'If you enter your twitter name, your timeline will get linked to your comment. (comment spice experimental)'; echo '
'; } }