From 1bf557e30721261a3aabfae483aefa7fffb259e6 Mon Sep 17 00:00:00 2001 From: Ian Date: Tue, 26 Jan 2016 14:09:35 +0100 Subject: [PATCH] consistent plugin usage - spamblock this and followup commits touches: use load_languiage API class method parenthesis "\n{\n \n}\n", case break switches, consistent boolean usage, append css to eventData and other cleanups --- .../serendipity_event_spamblock.php | 109 ++++++++++-------- 1 file changed, 58 insertions(+), 51 deletions(-) diff --git a/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php b/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php index 4a346e86..02d35528 100644 --- a/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php +++ b/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php @@ -1,10 +1,14 @@ -add('stackable', false); $propbag->add('author', 'Garvin Hicking, Sebastian Nohn, Grischa Brockhaus, Ian'); $propbag->add('requirements', array( - 'serendipity' => '0.8', + 'serendipity' => '1.6', 'smarty' => '2.6.7', 'php' => '4.1.0' )); - $propbag->add('version', '1.84'); + $propbag->add('version', '1.85'); $propbag->add('event_hooks', array( 'frontend_saveComment' => true, 'external_plugin' => true, @@ -100,6 +104,7 @@ var $filter_defaults; global $serendipity; switch($name) { + case 'disable_api_comments': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_API_COMMENTS); @@ -110,7 +115,6 @@ var $filter_defaults; 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT, NONE) )); $propbag->add('radio_per_row', '1'); - break; case 'trackback_ipvalidation': @@ -241,7 +245,6 @@ var $filter_defaults; 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT, NONE) )); $propbag->add('radio_per_row', '1'); - break; case 'akismet': @@ -249,7 +252,6 @@ var $filter_defaults; $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_AKISMET); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_AKISMET_DESC); $propbag->add('default', ''); - break; case 'akismet_server': @@ -269,7 +271,6 @@ var $filter_defaults; ) )); $propbag->add('radio_per_row', '1'); - break; case 'akismet_filter': @@ -282,7 +283,6 @@ var $filter_defaults; 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT, NONE) )); $propbag->add('radio_per_row', '1'); - break; case 'contentfilter_urls': @@ -334,7 +334,6 @@ var $filter_defaults; 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_LOGTYPE_FILE, PLUGIN_EVENT_SPAMBLOCK_LOGTYPE_DB, PLUGIN_EVENT_SPAMBLOCK_LOGTYPE_NONE) )); $propbag->add('radio_per_row', '1'); - break; case 'ipflood': @@ -412,17 +411,18 @@ var $filter_defaults; break; default: - return false; + return false; } - return true; } - function get_default_exclude_urls() { + function get_default_exclude_urls() + { return '^http://identi\.ca/notice/\d+$'; } - function htaccess_update($new_ip) { + function htaccess_update($new_ip) + { global $serendipity; serendipity_db_query("INSERT INTO {$serendipity['dbPrefix']}spamblock_htaccess (ip, timestamp) VALUES ('" . serendipity_db_escape_string($new_ip) . "', '" . time() . "')"); @@ -473,7 +473,8 @@ var $filter_defaults; return false; } - function akismetRequest($api_key, $data, &$ret, $action = 'comment-check', $eventData = null, $addData = null) { + function akismetRequest($api_key, $data, &$ret, $action = 'comment-check', $eventData = null, $addData = null) + { global $serendipity; $opt = array( @@ -585,8 +586,8 @@ var $filter_defaults; } } - - function tellAboutComment($where, $api_key, $comment_id, $is_spam) { + function tellAboutComment($where, $api_key, $comment_id, $is_spam) + { global $serendipity; $comment = serendipity_db_query(" SELECT C.*, L.useragent as log_useragent, E.title as entry_title " . " FROM {$serendipity['dbPrefix']}comments C, {$serendipity['dbPrefix']}spamblocklog L , {$serendipity['dbPrefix']}entries E " @@ -624,7 +625,8 @@ var $filter_defaults; if (function_exists('serendipity_request_end')) serendipity_request_end(); } - function &getBlacklist($where, $api_key, &$eventData, &$addData) { + function &getBlacklist($where, $api_key, &$eventData, &$addData) + { global $serendipity; $ret = false; @@ -661,7 +663,8 @@ var $filter_defaults; return $ret; } - function checkScheme() { + function checkScheme() + { global $serendipity; $dbversion = $this->get_config('dbversion', '1'); @@ -722,13 +725,15 @@ var $filter_defaults; return true; } - function generate_content(&$title) { + function generate_content(&$title) + { $title = $this->title; } // This method will be called on "fatal" spam errors that are unlikely to occur accidentally by users. // Their IPs will be constantly blocked. - function IsHardcoreSpammer() { + function IsHardcoreSpammer() + { global $serendipity; if (serendipity_db_bool($this->get_config('automagic_htaccess'))) { @@ -737,7 +742,8 @@ var $filter_defaults; } // Checks whether the current author is contained in one of the gorups that need no spam checking - function inGroup() { + function inGroup() + { global $serendipity; $checkgroups = explode('^', $this->get_config('hide_for_authors')); @@ -762,11 +768,13 @@ var $filter_defaults; return false; } - function example() { + function example() + { return '

' . PLUGIN_EVENT_SPAMBLOCK_LOOK . $this->show_captcha() . '

'; } - function show_captcha($use_gd = false) { + function show_captcha($use_gd = false) + { global $serendipity; if ($use_gd || (function_exists('imagettftext') && function_exists('imagejpeg'))) { @@ -798,19 +806,21 @@ var $filter_defaults; } } - function event_hook($event, &$bag, &$eventData, $addData = null) { + function event_hook($event, &$bag, &$eventData, $addData = null) + { global $serendipity; $debug = true; $hooks = &$bag->get('event_hooks'); if (isset($hooks[$event])) { + $captchas_ttl = $this->get_config('captchas_ttl', 7); $_captchas = $this->get_config('captchas', 'yes'); $captchas = ($_captchas !== 'no' && ($_captchas === 'yes' || $_captchas === 'scramble' || serendipity_db_bool($_captchas))); - // Check if the entry is older than the allowed amount of time. Enforce kaptchas if that is true - // of if kaptchas are activated for every entry + // Check if the entry is older than the allowed amount of time. Enforce Captchas if that is true + // of if Captchas are activated for every entry $show_captcha = ($captchas && isset($eventData['timestamp']) && ($captchas_ttl < 1 || ($eventData['timestamp'] < (time() - ($captchas_ttl*60*60*24)))) ? true : false); // Plugins can override with custom captchas @@ -836,8 +846,9 @@ var $filter_defaults; } switch($event) { + case 'fetchcomments': - if (is_array($eventData) && !$_SESSION['serendipityAuthedUser'] && serendipity_db_bool($this->get_config('hide_email', false))) { + if (is_array($eventData) && !$_SESSION['serendipityAuthedUser'] && serendipity_db_bool($this->get_config('hide_email', 'false'))) { // Will force emails to be not displayed in comments and RSS feed for comments. Will not apply to logged in admins (so not in the backend as well) @reset($eventData); while(list($idx, $comment) = each($eventData)) { @@ -862,7 +873,7 @@ var $filter_defaults; $checkmail = $this->get_config('checkmail'); // Check CSRF [comments only, cannot be applied to trackbacks] - if ($addData['type'] == 'NORMAL' && serendipity_db_bool($this->get_config('csrf', true))) { + if ($addData['type'] == 'NORMAL' && serendipity_db_bool($this->get_config('csrf', 'true'))) { if (!serendipity_checkFormToken(false)) { $this->log($logfile, $eventData['id'], 'REJECTED', PLUGIN_EVENT_SPAMBLOCK_CSRF_REASON, $addData); $eventData = array('allow_comments' => false); @@ -912,7 +923,7 @@ var $filter_defaults; // already there #$eventData = array('allow_comments' => false); // already there #$serendipity['messagestack']['emails'][] = PLUGIN_EVENT_SPAMBLOCK_ERROR_BODY; return false; - } elseif (serendipity_db_bool($this->get_config('killswitch', false)) === true) { + } elseif (serendipity_db_bool($this->get_config('killswitch', 'false')) === true) { $this->log($logfile, $eventData['id'], 'REJECTED', PLUGIN_EVENT_SPAMBLOCK_REASON_KILLSWITCH, $addData); $eventData = array('allow_comments' => false); $serendipity['messagestack']['comments'][] = PLUGIN_EVENT_SPAMBLOCK_ERROR_KILLSWITCH; @@ -940,7 +951,7 @@ var $filter_defaults; } // Check for global emergency moderation - if (serendipity_db_bool($this->get_config('killswitch', false)) === true) { + if (serendipity_db_bool($this->get_config('killswitch', 'false')) === true) { $this->log($logfile, $eventData['id'], 'REJECTED', PLUGIN_EVENT_SPAMBLOCK_REASON_KILLSWITCH, $addData); $eventData = array('allow_comments' => false); $serendipity['messagestack']['comments'][] = PLUGIN_EVENT_SPAMBLOCK_ERROR_KILLSWITCH; @@ -1162,7 +1173,7 @@ var $filter_defaults; } // Check invalid email - if ($addData['type'] == 'NORMAL' && serendipity_db_bool($this->get_config('checkmail', false))) { + if ($addData['type'] == 'NORMAL' && serendipity_db_bool($this->get_config('checkmail', 'false'))) { if (!empty($addData['email']) && strstr($addData['email'], '@') === false) { $this->log($logfile, $eventData['id'], 'REJECTED', PLUGIN_EVENT_SPAMBLOCK_REASON_CHECKMAIL, $addData); $eventData = array('allow_comments' => false); @@ -1175,12 +1186,10 @@ var $filter_defaults; return false; } } - - return true; break; case 'frontend_comment': - if (serendipity_db_bool($this->get_config('hide_email', false))) { + if (serendipity_db_bool($this->get_config('hide_email', 'false'))) { echo '
' . PLUGIN_EVENT_SPAMBLOCK_HIDE_EMAIL_NOTICE . '
'; } @@ -1188,7 +1197,7 @@ var $filter_defaults; echo '
' . PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL_VERIFICATION_INFO . '
'; } - if (serendipity_db_bool($this->get_config('csrf', true))) { + if (serendipity_db_bool($this->get_config('csrf', 'true'))) { echo serendipity_setFormToken('form'); } @@ -1209,11 +1218,8 @@ var $filter_defaults; } echo ''; } - - return true; break; - case 'external_plugin': $parts = explode('_', (string)$eventData); if (!empty($parts[1])) { @@ -1303,7 +1309,6 @@ var $filter_defaults; echo file_get_contents($cap); } } - return true; break; case 'backend_comments_top': @@ -1347,7 +1352,6 @@ var $filter_defaults; } echo ' ' . PLUGIN_EVENT_SPAMBLOCK_CONFIG . ''; - return true; break; case 'backend_view_comment': @@ -1374,20 +1378,16 @@ var $filter_defaults; $email_is_filtered = $this->checkFilter('emails', $eventData['email']); $eventData['action_email'] .= ' ' . ($email_is_filtered ? PLUGIN_EVENT_SPAMBLOCK_REMOVE_EMAIL : PLUGIN_EVENT_SPAMBLOCK_ADD_EMAIL) . ''; } - - return true; break; case 'backend_sidebar_admin_appearance': echo '
  • ' . PLUGIN_EVENT_SPAMBLOCK_TITLE . '
  • '; - return true; break; - default: return false; - break; } + return true; } else { return false; } @@ -1396,7 +1396,8 @@ var $filter_defaults; /** * wordfilter, email and additional link check moved to this function, to allow comment user to opt-in (verify_once), but reject all truly spam comments before. **/ - function wordfilter($logfile, &$eventData, $wordmatch, $addData, $ftc = false) { + function wordfilter($logfile, &$eventData, $wordmatch, $addData, $ftc = false) + { global $serendipity; // Check for word filtering @@ -1517,7 +1518,8 @@ var $filter_defaults; } // function wordfilter end - function &checkFilter($what, $match, $getItems = false) { + function &checkFilter($what, $match, $getItems = false) + { $items = explode(';', $this->get_config('contentfilter_' . $what, $this->filter_defaults[$what])); $filtered = false; @@ -1550,7 +1552,8 @@ var $filter_defaults; return $filtered; } - function getComment($key, $id) { + function getComment($key, $id) + { global $serendipity; $c = serendipity_db_query("SELECT $key FROM {$serendipity['dbPrefix']}comments WHERE id = '" . (int)$id . "'", true, 'assoc'); @@ -1561,7 +1564,8 @@ var $filter_defaults; return $c[$key]; } - function random_string($max_char, $min_char) { + function random_string($max_char, $min_char) + { $this->chars = array(2, 3, 4, 7, 9); // 1, 5, 6 and 8 may look like characters. $this->chars = array_merge($this->chars, array('A','B','C','D','E','F','H','J','K','L','M','N','P','Q','R','T','U','V','W','X','Y','Z')); // I, O, S may look like numbers @@ -1575,7 +1579,8 @@ var $filter_defaults; return $strings; } - function log($logfile, $id, $switch, $reason, $comment) { + function log($logfile, $id, $switch, $reason, $comment) + { global $serendipity; $method = $this->get_config('logtype'); @@ -1638,6 +1643,8 @@ var $filter_defaults; break; } } + } /* vim: set sts=4 ts=4 expandtab : */ +?> \ No newline at end of file