add('name', PLUGIN_MAILENTRY_NAME); $propbag->add('description', PLUGIN_MAILENTRY_DESC); $propbag->add('configuration', array('title')); $propbag->add('version', '1.24.1'); $propbag->add('event_hooks', array('frontend_display:html:per_entry' => true)); $propbag->add('groups', array('FRONTEND_ENTRY_RELATED')); $propbag->add('legal', array( 'services' => array( ), 'frontend' => array( 'Blog entries can be mailed to user-specified mail adresses by the server (without opt-in)', ), 'backend' => array( ), 'cookies' => array( ), 'stores_user_input' => false, 'stores_ip' => false, 'uses_ip' => true, 'transmits_user_input' => true )); } function introspect_config_item($name, &$propbag) { switch($name) { case 'title': $propbag->add('type', 'string'); $propbag->add('name', TITLE); $propbag->add('description', TITLE); $propbag->add('default', PLUGIN_MAILENTRY_NAME); break; default: return false; break; } return true; } function generate_content(&$title) { $title = PLUGIN_MAILENTRY_NAME; } function stripMe($str) { return str_replace(array("\n", "\r", "\t", "\0"), array('', '', '', ''), $str); } function event_hook($event, &$bag, &$eventData, $addData = null) { global $serendipity; switch ($event) { case 'frontend_display:html:per_entry': if ( $serendipity['GET']['id'] ) { ob_start(); if ( isset($serendipity['POST']) && isset($serendipity['POST']['mailEntry']) ) { $me = $serendipity['POST']['mailEntry']; if ( !preg_match('/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/', $me['to']) ) { echo '
' . PLUGIN_MAILENTRY_TO_INVALID . "
\n"; break; } if ( !preg_match('/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/', $me['fromAddr']) ) { echo '
' . PLUGIN_MAILENTRY_FROM_INVALID . "
\n"; break; } $headers = "To: " . $this->stripMe($me['to']) . "\r\n" . "Reply-To: " . $this->stripMe($me['fromName']) . " <" . $this->stripMe($me['fromAddr']) . ">\r\n" . "From: " . (!empty($serendipity['blogMail']) ? $serendipity['blogMail'] : $serendipity['email']) . "\r\n"; $message = sprintf(PLUGIN_MAILENTRY_EMAIL, $me['fromName'], $serendipity['blogTitle'], $eventData['title'], serendipity_archiveURL($eventData['id'], $eventData['title'], 'baseURL', true, array('timestamp' => $eventData['timestamp'])), trim($me['message']), $serendipity['signature']); if ( mail($me['to'], $eventData['title'] . ' - ' . $serendipity['blogTitle'], $message, $headers) ) { echo '
' . PLUGIN_MAILENTRY_SUCCESS . "
\n"; } else { echo '
' . PLUGIN_MAILENTRY_FAILURE . "
\n"; } } ?>

get_config('title', PLUGIN_MAILENTRY_NAME); ?>