]> git.mjollnir.org Git - s9y.git/commitdiff
A plan for the future, and stronger captchas might be required.
authorgarvinhicking <garvinhicking>
Wed, 1 Feb 2006 13:14:11 +0000 (13:14 +0000)
committergarvinhicking <garvinhicking>
Wed, 1 Feb 2006 13:14:11 +0000 (13:14 +0000)
plugins/serendipity_event_spamblock/UTF-8/lang_de.inc.php
plugins/serendipity_event_spamblock/lang_de.inc.php
plugins/serendipity_event_spamblock/lang_en.inc.php
plugins/serendipity_event_spamblock/serendipity_event_spamblock.php

index e1a6f2f16860ddb81c37382b544ae353e16de14c..d4444aa797b2771334366c398a6d87ab939f5d01 100644 (file)
@@ -81,3 +81,5 @@
         @define('PLUGIN_EVENT_SPAMBLOCK_BLOGG_SPAMLIST', 'URL-Filterung anhand der blogg.de Blacklist aktivieren');
         @define('PLUGIN_EVENT_SPAMBLOCK_REASON_TITLE', 'Artikeltitel ist derselbe wie Kommentar');
         @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_TITLE', 'Kommentare abweisen, die als Text nur den Artikeltitel enthalten');
+
+@define('PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_SCRAMBLE', 'Stärkere Captchas');
index ed9f52f84945e81b23bd7d64b396f94ca89836ab..1d96dce55cb2c27bddf51355a0b7937304501d97 100644 (file)
@@ -81,3 +81,5 @@
         @define('PLUGIN_EVENT_SPAMBLOCK_BLOGG_SPAMLIST', 'URL-Filterung anhand der blogg.de Blacklist aktivieren');
         @define('PLUGIN_EVENT_SPAMBLOCK_REASON_TITLE', 'Artikeltitel ist derselbe wie Kommentar');
         @define('PLUGIN_EVENT_SPAMBLOCK_FILTER_TITLE', 'Kommentare abweisen, die als Text nur den Artikeltitel enthalten');
+
+@define('PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_SCRAMBLE', 'Stärkere Captchas');
index aea6dc23fb67da886802ba4f0811616d02c9c271..ba5d0f12eb06f12a43f027819b7890f6a6ba2344 100644 (file)
@@ -96,4 +96,5 @@
 @define('PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL_DESC', 'Only allow trackbacks, when its URL contains a link to your blog');
 @define('PLUGIN_EVENT_SPAMBLOCK_REASON_TRACKBACKURL', 'Trackback URL invalid.');
 
-?>
+@define('PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_SCRAMBLE', 'Scrambled Captchas');
+
index 06f96760392823d24a53b37cdda1c30a89f2c92d..2a14839b4b76a89013bff3152cd5a928673daae3 100644 (file)
@@ -34,7 +34,7 @@ var $filter_defaults;
             'smarty'      => '2.6.7',
             'php'         => '4.1.0'
         ));
-        $propbag->add('version',       '1.31');
+        $propbag->add('version',       '1.32');
         $propbag->add('event_hooks',    array(
             'frontend_saveComment' => true,
             'external_plugin'      => true,
@@ -114,10 +114,14 @@ var $filter_defaults;
                 break;
 
             case 'captchas':
-                $propbag->add('type', 'boolean');
+                $propbag->add('type', 'radio');
                 $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS);
                 $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_DESC);
-                $propbag->add('default', true);
+                $propbag->add('default', 'yes');
+                $propbag->add('radio', array(
+                    'value' => array(true, 'no', 'scramble'),
+                    'desc'  => array(YES, NO, PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_SCRAMBLE)
+                ));
                 break;
 
             case 'killswitch':
@@ -329,7 +333,9 @@ var $filter_defaults;
 
         if (isset($hooks[$event])) {
             $captchas_ttl = $this->get_config('captchas_ttl', 7);
-            $captchas     = (serendipity_db_bool($this->get_config('captchas', true)) ? true : false);
+            $_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
             $show_captcha = ($captchas && isset($eventData['timestamp']) && ($captchas_ttl < 1 || ($eventData['timestamp'] < (time() - ($captchas_ttl*60*60*24)))) ? true : false);
@@ -705,7 +711,7 @@ var $filter_defaults;
 
                         header('Content-Type: image/jpeg');
                         $image  = imagecreate($width, $height);
-                        imagecolorallocate($image, trim($bgcolors[0]), trim($bgcolors[1]), trim($bgcolors[2]));
+                        $bgcol  = imagecolorallocate($image, trim($bgcolors[0]), trim($bgcolors[1]), trim($bgcolors[2]));
                         // imagettftext($image, 10, 1, 1, 15, imagecolorallocate($image, 255, 255, 255), $font, 'String: ' . $string);
 
                         $pos_x  = 5;
@@ -729,6 +735,17 @@ var $filter_defaults;
                             $pos_x = $pos_x + $size + 2;
 
                         }
+                        
+                        if ($_captchas === 'scramble') {
+                            $line_diff = mt_rand(5, 15);
+                            $pixel_col = imagecolorallocate($image, trim($bgcolors[0])-mt_rand(10,50), trim($bgcolors[1])-mt_rand(10,50), trim($bgcolors[2])-mt_rand(10,50));
+                            for ($y = $line_diff; $y < $height; $y += $line_diff) {
+                                $row_diff = mt_rand(5, 15);
+                                for ($x = $row_diff; $x < $width; $x+= $row_diff) {
+                                    imagerectangle($image, $x, $y, $x+1, $y+1, $pixel_col);
+                                }
+                            }
+                        }
                         imagejpeg($image, '', 90);
                         imagedestroy($image);
                     } else {