From 68d25cb052632b9a13dd08e716c7a2afe8e1bf88 Mon Sep 17 00:00:00 2001 From: Grischa Brockhaus Date: Sun, 29 Jan 2012 15:15:16 +0100 Subject: [PATCH] comentSpice: Asure required fields, if spam_block plugin is not installed. --- .../UTF-8/lang_de.inc.php | 3 ++ .../lang_de.inc.php | 3 ++ .../lang_en.inc.php | 3 ++ .../serendipity_event_commentspice.php | 29 +++++++++++++++++-- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/serendipity_event_commentspice/UTF-8/lang_de.inc.php b/serendipity_event_commentspice/UTF-8/lang_de.inc.php index 25dc40bf..d486b319 100644 --- a/serendipity_event_commentspice/UTF-8/lang_de.inc.php +++ b/serendipity_event_commentspice/UTF-8/lang_de.inc.php @@ -43,6 +43,9 @@ @define('PLUGIN_EVENT_COMMENTSPICE_PATH', 'Plugin Pfad'); @define('PLUGIN_EVENT_COMMENTSPICE_PATH_DESC', 'In normalen Installationen ist der Default die korrekte Einstellung.'); +@define('PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS', 'Pflichtfelder'); +@define('PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS_DESC', 'Geben Sie die Liste von Pflichtfeldern bei der Abgabe eines Kommentars ein. Mehrere Felder können mit "," getrennt werden. Verfügbare Felder sind: name, email, url, replyTo, comment'); +@define('PLUGIN_EVENT_COMMENTSPICE_REASON_REQUIRED_FIELD', 'Sie haben das Feld "%s" nicht ausgefüllt!'); @define('PLUGIN_EVENT_COMMENTSPICE_EXPERTSETTINGS', 'Erweiterte Einstellungen anzeigen'); @define('PLUGIN_EVENT_COMMENTSPICE_STANDARDSETTINGS', 'Grundeinstellungen anzeigen'); diff --git a/serendipity_event_commentspice/lang_de.inc.php b/serendipity_event_commentspice/lang_de.inc.php index 4fa4a4fb..1567b47b 100644 --- a/serendipity_event_commentspice/lang_de.inc.php +++ b/serendipity_event_commentspice/lang_de.inc.php @@ -43,6 +43,9 @@ @define('PLUGIN_EVENT_COMMENTSPICE_PATH', 'Plugin Pfad'); @define('PLUGIN_EVENT_COMMENTSPICE_PATH_DESC', 'In normalen Installationen ist der Default die korrekte Einstellung.'); +@define('PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS', 'Pflichtfelder'); +@define('PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS_DESC', 'Geben Sie die Liste von Pflichtfeldern bei der Abgabe eines Kommentars ein. Mehrere Felder können mit "," getrennt werden. Verfügbare Felder sind: name, email, url, replyTo, comment'); +@define('PLUGIN_EVENT_COMMENTSPICE_REASON_REQUIRED_FIELD', 'Sie haben das Feld "%s" nicht ausgefüllt!'); @define('PLUGIN_EVENT_COMMENTSPICE_EXPERTSETTINGS', 'Erweiterte Einstellungen anzeigen'); @define('PLUGIN_EVENT_COMMENTSPICE_STANDARDSETTINGS', 'Grundeinstellungen anzeigen'); diff --git a/serendipity_event_commentspice/lang_en.inc.php b/serendipity_event_commentspice/lang_en.inc.php index c899146f..6eb555bf 100644 --- a/serendipity_event_commentspice/lang_en.inc.php +++ b/serendipity_event_commentspice/lang_en.inc.php @@ -44,6 +44,9 @@ @define('PLUGIN_EVENT_COMMENTSPICE_PATH', 'Plugins path'); @define('PLUGIN_EVENT_COMMENTSPICE_PATH_DESC', 'In normal installations the default is correct.'); +@define('PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS', 'Required comment fields'); +@define('PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS_DESC', 'Enter a list of required fields that need to be filled when a user comments. Seperate multiple fields with a ",". Available keys are: name, email, url, replyTo, comment'); +@define('PLUGIN_EVENT_COMMENTSPICE_REASON_REQUIRED_FIELD', 'You did not specify the %s field!'); @define('PLUGIN_EVENT_COMMENTSPICE_EXPERTSETTINGS', 'Show advanced settings'); @define('PLUGIN_EVENT_COMMENTSPICE_STANDARDSETTINGS', 'Show basic settings'); diff --git a/serendipity_event_commentspice/serendipity_event_commentspice.php b/serendipity_event_commentspice/serendipity_event_commentspice.php index 1118ef42..cbf4720e 100644 --- a/serendipity_event_commentspice/serendipity_event_commentspice.php +++ b/serendipity_event_commentspice/serendipity_event_commentspice.php @@ -56,6 +56,9 @@ class serendipity_event_commentspice extends serendipity_event $config_announce_expert = array('announcersscachemin','announcerss_nofollow','smartifyannouncerss','inputpatched_rss'); $config_general = array('title_general'); + if (!class_exists('serendipity_event_spamblock')) { // Only do that, if spamblock is not installed. + $config_general[] = 'required_fields'; + } if (function_exists('fetchPingbackData') && $this->isLocalConfigWritable()) { $config_general[] = 'fetchPingback'; } @@ -173,6 +176,12 @@ class serendipity_event_commentspice extends serendipity_event $propbag->add('description', PLUGIN_EVENT_COMMENTSPICE_PATCHEDINPUT_RSS_DESC); $propbag->add('default', false); break; + case 'required_fields': + $propbag->add('type', 'string'); + $propbag->add('name', PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS); + $propbag->add('description', PLUGIN_EVENT_COMMENTSPICE_REQUIRED_FIELDS_DESC); + $propbag->add('default', ''); + break; case 'plugin_path': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_COMMENTSPICE_PATH); @@ -365,8 +374,24 @@ class serendipity_event_commentspice extends serendipity_event if ("NORMAL" == $addData['type']) { // only supported for normal comments $this->rememberInputs(); - $promo_name = null; - $promo_url = null; + // Check, if all required fields are set, but only if spamblock is not installed. + if (!class_exists('serendipity_event_spamblock')) { + $required_fields = $this->get_config('required_fields', ''); + if (!empty($required_fields)) { + $required_field_list = explode(',', $required_fields); + foreach($required_field_list as $required_field) { + $required_field = trim($required_field); + if (empty($addData[$required_field])) { + $this->log($logfile, $eventData['id'], 'REJECTED', PLUGIN_EVENT_COMMENTSPICE_REASON_REQUIRED_FIELD, $addData); + $eventData = array('allow_comments' => false); + $serendipity['messagestack']['comments'][] = sprintf(PLUGIN_EVENT_COMMENTSPICE_REASON_REQUIRED_FIELD, $required_field); + return false; + } + } + } + } + + // Check, if promoted URL is still valid (unmodified) if (isset($serendipity['POST']['promorss']) && !empty($serendipity['POST']['promorss'])) { $promorss = $serendipity['POST']['promorss']; $parts = explode("\n", $promorss);