From: garvinhicking Date: Tue, 30 May 2006 08:19:27 +0000 (+0000) Subject: Allow to auto-moderate/reject trackbacks based on time of the entry X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=82d5d354d949a5db3b4017ce36ffe40c9dd39d3b;p=s9y.git Allow to auto-moderate/reject trackbacks based on time of the entry --- diff --git a/plugins/serendipity_event_spamblock/UTF-8/lang_de.inc.php b/plugins/serendipity_event_spamblock/UTF-8/lang_de.inc.php index eeabec9..b9d1d63 100644 --- a/plugins/serendipity_event_spamblock/UTF-8/lang_de.inc.php +++ b/plugins/serendipity_event_spamblock/UTF-8/lang_de.inc.php @@ -95,3 +95,7 @@ @define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL', 'Trackback-URLS prüfen'); @define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL_DESC', 'Einen Trackback nur dann zulassen, wenn Ihre URL auch auf der Zielseite genannt wird.'); @define('PLUGIN_EVENT_SPAMBLOCK_REASON_TRACKBACKURL', 'Trackback-URL ungültig.'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATION_TREAT', 'Was soll mit auto-moderierten Kommentaren passieren?'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_TREAT', 'Was soll mit auto-moderierten Trackbacks passieren?'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT', 'Trackbackmoderation nach wievielen Tagen erzwingen'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_DESC', 'Alle Trackbacks zu einem Artikel können abhängig vom Alter des Artikels automatisch moderiert werden. Tragen Sie hier das Minimalalter eines Artikels in Tagen ein, ab dem jedes Trackback erst nach Ihrer Moderation dargestellt wird. 0 bedeutet, dass keine automatische Moderation erzeugt wird.'); diff --git a/plugins/serendipity_event_spamblock/lang_de.inc.php b/plugins/serendipity_event_spamblock/lang_de.inc.php index 9da1d08..fdab9e7 100644 --- a/plugins/serendipity_event_spamblock/lang_de.inc.php +++ b/plugins/serendipity_event_spamblock/lang_de.inc.php @@ -95,3 +95,8 @@ @define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL', 'Trackback-URLS prüfen'); @define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL_DESC', 'Einen Trackback nur dann zulassen, wenn Ihre URL auch auf der Zielseite genannt wird.'); @define('PLUGIN_EVENT_SPAMBLOCK_REASON_TRACKBACKURL', 'Trackback-URL ungültig.'); + +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATION_TREAT', 'Was soll mit auto-moderierten Kommentaren passieren?'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_TREAT', 'Was soll mit auto-moderierten Trackbacks passieren?'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT', 'Trackbackmoderation nach wievielen Tagen erzwingen'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_DESC', 'Alle Trackbacks zu einem Artikel können abhängig vom Alter des Artikels automatisch moderiert werden. Tragen Sie hier das Minimalalter eines Artikels in Tagen ein, ab dem jedes Trackback erst nach Ihrer Moderation dargestellt wird. 0 bedeutet, dass keine automatische Moderation erzeugt wird.'); diff --git a/plugins/serendipity_event_spamblock/lang_en.inc.php b/plugins/serendipity_event_spamblock/lang_en.inc.php index 3a3fce8..4d58f3c 100644 --- a/plugins/serendipity_event_spamblock/lang_en.inc.php +++ b/plugins/serendipity_event_spamblock/lang_en.inc.php @@ -106,3 +106,7 @@ @define('PLUGIN_EVENT_SPAMBLOCK_AKISMET_FILTER', 'How to treat Akismet-reported spam'); @define('PLUGIN_EVENT_SPAMBLOCK_REASON_AKISMET_SPAMLIST', 'Filtered by Akismet.com Blacklist'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATION_TREAT', 'What to do with comments when being auto-moderated?'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_TREAT', 'What to do with trackbacks when being auto-moderated?'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT', 'Force trackback moderation after how many days'); +@define('PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_DESC', 'You can automatically set all trackbacks for entries to be moderated. Enter the age of an entry in days, after which it should be auto-moderated. 0 means no auto-moderation.'); diff --git a/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php b/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php index 2e00cac..f352d8d 100644 --- a/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php +++ b/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php @@ -34,7 +34,7 @@ var $filter_defaults; 'smarty' => '2.6.7', 'php' => '4.1.0' )); - $propbag->add('version', '1.51'); + $propbag->add('version', '1.52'); $propbag->add('event_hooks', array( 'frontend_saveComment' => true, 'external_plugin' => true, @@ -53,6 +53,9 @@ var $filter_defaults; 'captchas_ttl', 'captcha_color', 'forcemoderation', + 'forcemoderation_treat', + 'forcemoderationt', + 'forcemoderationt_treat', 'disable_api_comments', 'trackback_check_url', 'links_moderate', @@ -297,6 +300,37 @@ var $filter_defaults; $propbag->add('default', '30'); break; + case 'forcemoderation_treat': + $propbag->add('type', 'radio'); + $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATION_TREAT); + $propbag->add('description', ''); + $propbag->add('default', 'moderate'); + $propbag->add('radio', array( + 'value' => array('moderate', 'reject'), + 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT) + )); + $propbag->add('radio_per_row', '1'); + break; + + case 'forcemoderationt': + $propbag->add('type', 'string'); + $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT); + $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_DESC); + $propbag->add('default', '30'); + break; + + case 'forcemoderationt_treat': + $propbag->add('type', 'radio'); + $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_TREAT); + $propbag->add('description', ''); + $propbag->add('default', 'moderate'); + $propbag->add('radio', array( + 'value' => array('moderate', 'reject'), + 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT) + )); + $propbag->add('radio_per_row', '1'); + break; + case 'links_moderate': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_LINKS_MODERATE); @@ -525,6 +559,10 @@ var $filter_defaults; $show_captcha = ($captchas && isset($eventData['timestamp']) && ($captchas_ttl < 1 || ($eventData['timestamp'] < (time() - ($captchas_ttl*60*60*24)))) ? true : false); $forcemoderation = $this->get_config('forcemoderation', 60); + $forcemoderation_treat = $this->get_config('forcemoderation_treat', 'moderate'); + $forcemoderationt = $this->get_config('forcemoderationt', 60); + $forcemoderationt_treat = $this->get_config('forcemoderationt_treat', 'moderate'); + $links_moderate = $this->get_config('links_moderate', 10); $links_reject = $this->get_config('links_reject', 20); @@ -784,12 +822,32 @@ var $filter_defaults; // $this->log($logfile, $eventData['id'], 'REJECTED', 'Captcha not needed: ' . $serendipity['POST']['captcha'] . ' / ' . $_SESSION['spamblock']['captcha'] . ' // Source: ' . $_SERVER['REQUEST_URI'], $addData); } - // Check for forced moderation - if ($forcemoderation > 0 && $eventData['timestamp'] < (time() - ($forcemoderation * 60 * 60 * 24))) { - $this->log($logfile, $eventData['id'], 'MODERATE', PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION, $addData); - $eventData['moderate_comments'] = true; - $serendipity['csuccess'] = 'moderate'; - $serendipity['moderate_reason'] = PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION; + // Check for forced comment moderation + if ($addData['type'] == 'NORMAL' && $forcemoderation > 0 && $eventData['timestamp'] < (time() - ($forcemoderation * 60 * 60 * 24))) { + $this->log($logfile, $eventData['id'], $forcemoderation_treat, PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION, $addData); + if ($forcemoderation_treat == 'reject') { + $eventData = array('allow_comments' => false); + $serendipity['messagestack']['comments'][] = PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION; + return false; + } else { + $eventData['moderate_comments'] = true; + $serendipity['csuccess'] = 'moderate'; + $serendipity['moderate_reason'] = PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION; + } + } + + // Check for forced trackback moderation + if ($addData['type'] != 'NORMAL' && $forcemoderationt > 0 && $eventData['timestamp'] < (time() - ($forcemoderationt * 60 * 60 * 24))) { + $this->log($logfile, $eventData['id'], $forcemoderationt_treat, PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION, $addData); + if ($forcemoderationt_treat == 'reject') { + $eventData = array('allow_comments' => false); + $serendipity['messagestack']['comments'][] = PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION; + return false; + } else { + $eventData['moderate_comments'] = true; + $serendipity['csuccess'] = 'moderate'; + $serendipity['moderate_reason'] = PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION; + } } // Check for maximum number of links before forcing moderation