Version Description
- EN: Code refactoring of options management
- DE: berarbeitung der Optionen-Verwaltung
- EN: Support for
HTTP_FORWARDED_FOR
header - DE: Bercksichtigung der Header
HTTP_FORWARDED_FOR
- EN: Release time investment (Development & QA): 8,5 h
- DE: Release-Zeitaufwand (Development & QA): 8,5 Stunden
Download this release
Release Info
Developer | sergej.mueller |
Plugin | Antispam Bee |
Version | 2.6.1 |
Comparing to | |
See all releases |
Code changes from version 2.6.0 to 2.6.1
- antispam_bee.php +148 -51
- css/styles.css +127 -118
- css/styles.min.css +1 -1
- font/icons.ttf +0 -0
- font/icons.woff2 +0 -0
- inc/columns.class.php +16 -0
- inc/gui.class.php +15 -3
- lang/antispam_bee-nl_NL.mo +0 -0
- lang/antispam_bee-nl_NL.po +246 -0
- readme.txt +20 -8
antispam_bee.php
CHANGED
@@ -7,7 +7,26 @@ Description: Easy and extremely productive spam-fighting plugin with many sophis
|
|
7 |
Author: Sergej Müller
|
8 |
Author URI: http://wpcoder.de
|
9 |
Plugin URI: http://antispambee.com
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
*/
|
12 |
|
13 |
|
@@ -38,7 +57,7 @@ class Antispam_Bee {
|
|
38 |
* "Konstruktor" der Klasse
|
39 |
*
|
40 |
* @since 0.1
|
41 |
-
* @change 2.6.
|
42 |
*/
|
43 |
|
44 |
public static function init()
|
@@ -184,6 +203,13 @@ class Antispam_Bee {
|
|
184 |
10,
|
185 |
2
|
186 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
}
|
189 |
|
@@ -315,7 +341,7 @@ class Antispam_Bee {
|
|
315 |
'ignore_pings' => 0,
|
316 |
'always_allowed' => 0,
|
317 |
|
318 |
-
'dashboard_chart' =>
|
319 |
'dashboard_count' => 0,
|
320 |
|
321 |
/* Filter */
|
@@ -332,7 +358,7 @@ class Antispam_Bee {
|
|
332 |
/* Erweitert */
|
333 |
'flag_spam' => 1,
|
334 |
'email_notify' => 1,
|
335 |
-
'no_notice' =>
|
336 |
'cronjob_enable' => 0,
|
337 |
'cronjob_interval' => 0,
|
338 |
|
@@ -395,7 +421,7 @@ class Antispam_Bee {
|
|
395 |
return ( empty($GLOBALS['pagenow']) or ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'index.php' ) );
|
396 |
|
397 |
case 'options':
|
398 |
-
return ( !empty($
|
399 |
|
400 |
case 'plugins':
|
401 |
return ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'plugins.php' );
|
@@ -439,7 +465,7 @@ class Antispam_Bee {
|
|
439 |
public static function init_action_links($data)
|
440 |
{
|
441 |
/* Rechte? */
|
442 |
-
if ( !current_user_can('manage_options') ) {
|
443 |
return $data;
|
444 |
}
|
445 |
|
@@ -465,7 +491,7 @@ class Antispam_Bee {
|
|
465 |
* Meta-Links des Plugins
|
466 |
*
|
467 |
* @since 0.1
|
468 |
-
* @change 2.
|
469 |
*
|
470 |
* @param array $input Bereits vorhandene Links
|
471 |
* @param string $file Aktuelle Seite
|
@@ -483,7 +509,8 @@ class Antispam_Bee {
|
|
483 |
$input,
|
484 |
array(
|
485 |
'<a href="https://flattr.com/t/1323822" target="_blank">Flattr</a>',
|
486 |
-
'<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6" target="_blank">PayPal</a>'
|
|
|
487 |
)
|
488 |
);
|
489 |
}
|
@@ -834,44 +861,43 @@ class Antispam_Bee {
|
|
834 |
|
835 |
|
836 |
/**
|
837 |
-
*
|
838 |
*
|
839 |
* @since 2.4
|
840 |
-
* @change 2.
|
841 |
*
|
842 |
-
* @return array $options Array
|
843 |
*/
|
844 |
|
845 |
public static function get_options()
|
846 |
{
|
847 |
-
if (
|
848 |
-
$options = wp_parse_args(
|
849 |
-
get_option('antispam_bee'),
|
850 |
-
self::$defaults['options']
|
851 |
-
);
|
852 |
-
|
853 |
wp_cache_set(
|
854 |
'antispam_bee',
|
855 |
-
$options
|
856 |
);
|
857 |
}
|
858 |
|
859 |
-
return
|
|
|
|
|
|
|
860 |
}
|
861 |
|
862 |
|
863 |
/**
|
864 |
-
*
|
865 |
*
|
866 |
* @since 0.1
|
867 |
* @change 2.4.2
|
868 |
*
|
869 |
-
* @param string $field
|
870 |
-
* @return mixed
|
871 |
*/
|
872 |
|
873 |
public static function get_option($field)
|
874 |
{
|
|
|
875 |
$options = self::get_options();
|
876 |
|
877 |
return self::get_key($options, $field);
|
@@ -879,13 +905,13 @@ class Antispam_Bee {
|
|
879 |
|
880 |
|
881 |
/**
|
882 |
-
*
|
883 |
*
|
884 |
* @since 0.1
|
885 |
* @change 2.4
|
886 |
*
|
887 |
-
* @param string $field
|
888 |
-
* @param mixed
|
889 |
*/
|
890 |
|
891 |
private static function _update_option($field, $value)
|
@@ -899,29 +925,36 @@ class Antispam_Bee {
|
|
899 |
|
900 |
|
901 |
/**
|
902 |
-
*
|
903 |
*
|
904 |
* @since 0.1
|
905 |
-
* @change 2.
|
906 |
*
|
907 |
-
* @param array $data Array
|
908 |
*/
|
909 |
|
910 |
public static function update_options($data)
|
911 |
{
|
912 |
-
/*
|
913 |
-
$options =
|
914 |
-
|
915 |
-
|
916 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
917 |
|
918 |
-
/*
|
919 |
update_option(
|
920 |
'antispam_bee',
|
921 |
$options
|
922 |
);
|
923 |
|
924 |
-
/*
|
925 |
wp_cache_set(
|
926 |
'antispam_bee',
|
927 |
$options
|
@@ -1073,7 +1106,7 @@ class Antispam_Bee {
|
|
1073 |
* Prüfung der eingehenden Anfragen auf Spam
|
1074 |
*
|
1075 |
* @since 0.1
|
1076 |
-
* @change 2.
|
1077 |
*
|
1078 |
* @param array $comment Unbehandelter Kommentar
|
1079 |
* @return array $comment Behandelter Kommentar
|
@@ -1081,6 +1114,17 @@ class Antispam_Bee {
|
|
1081 |
|
1082 |
public static function handle_incoming_request($comment)
|
1083 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1084 |
/* Server-Werte */
|
1085 |
$url = self::get_key($_SERVER, 'REQUEST_URI');
|
1086 |
|
@@ -1195,7 +1239,7 @@ class Antispam_Bee {
|
|
1195 |
* Prüfung der Trackbacks
|
1196 |
*
|
1197 |
* @since 2.4
|
1198 |
-
* @change 2.
|
1199 |
*
|
1200 |
* @param array $comment Daten des Trackbacks
|
1201 |
* @return array Array mit dem Verdachtsgrund [optional]
|
@@ -1203,10 +1247,8 @@ class Antispam_Bee {
|
|
1203 |
|
1204 |
private static function _verify_trackback_request($comment)
|
1205 |
{
|
1206 |
-
/* IP */
|
1207 |
-
$ip = self::get_key($_SERVER, 'REMOTE_ADDR');
|
1208 |
-
|
1209 |
/* Kommentarwerte */
|
|
|
1210 |
$url = self::get_key($comment, 'comment_author_url');
|
1211 |
$body = self::get_key($comment, 'comment_content');
|
1212 |
|
@@ -1218,7 +1260,7 @@ class Antispam_Bee {
|
|
1218 |
}
|
1219 |
|
1220 |
/* IP? */
|
1221 |
-
if ( empty($ip)
|
1222 |
return array(
|
1223 |
'reason' => 'empty'
|
1224 |
);
|
@@ -1268,7 +1310,7 @@ class Antispam_Bee {
|
|
1268 |
* Prüfung den Kommentar
|
1269 |
*
|
1270 |
* @since 2.4
|
1271 |
-
* @change 2.
|
1272 |
*
|
1273 |
* @param array $comment Daten des Kommentars
|
1274 |
* @return array Array mit dem Verdachtsgrund [optional]
|
@@ -1276,10 +1318,8 @@ class Antispam_Bee {
|
|
1276 |
|
1277 |
private static function _verify_comment_request($comment)
|
1278 |
{
|
1279 |
-
/* IP */
|
1280 |
-
$ip = self::get_key($_SERVER, 'REMOTE_ADDR');
|
1281 |
-
|
1282 |
/* Kommentarwerte */
|
|
|
1283 |
$url = self::get_key($comment, 'comment_author_url');
|
1284 |
$body = self::get_key($comment, 'comment_content');
|
1285 |
$email = self::get_key($comment, 'comment_author_email');
|
@@ -1293,7 +1333,7 @@ class Antispam_Bee {
|
|
1293 |
}
|
1294 |
|
1295 |
/* IP? */
|
1296 |
-
if ( empty($ip)
|
1297 |
return array(
|
1298 |
'reason' => 'empty'
|
1299 |
);
|
@@ -2000,7 +2040,7 @@ class Antispam_Bee {
|
|
2000 |
* Logfile mit erkanntem Spam
|
2001 |
*
|
2002 |
* @since 2.5.7
|
2003 |
-
* @change 2.
|
2004 |
*
|
2005 |
* @param array $comment Array mit Kommentardaten
|
2006 |
* @return mixed FALSE im Fehlerfall
|
@@ -2009,7 +2049,7 @@ class Antispam_Bee {
|
|
2009 |
private static function _update_spam_log($comment)
|
2010 |
{
|
2011 |
/* Skip logfile? */
|
2012 |
-
if ( ! defined('ANTISPAM_BEE_LOG_FILE') OR ! ANTISPAM_BEE_LOG_FILE OR ! is_writable(ANTISPAM_BEE_LOG_FILE) ) {
|
2013 |
return false;
|
2014 |
}
|
2015 |
|
@@ -2018,7 +2058,7 @@ class Antispam_Bee {
|
|
2018 |
'%s comment for post=%d from host=%s marked as spam%s',
|
2019 |
current_time('mysql'),
|
2020 |
$comment['comment_post_ID'],
|
2021 |
-
|
2022 |
PHP_EOL
|
2023 |
);
|
2024 |
|
@@ -2045,6 +2085,53 @@ class Antispam_Bee {
|
|
2045 |
}
|
2046 |
|
2047 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2048 |
/**
|
2049 |
* Add spam reason as comment data
|
2050 |
*
|
@@ -2251,11 +2338,16 @@ class Antispam_Bee {
|
|
2251 |
* Aktualisierung der Anzahl von Spam-Kommentaren
|
2252 |
*
|
2253 |
* @since 0.1
|
2254 |
-
* @change 2.
|
2255 |
*/
|
2256 |
|
2257 |
private static function _update_spam_count()
|
2258 |
{
|
|
|
|
|
|
|
|
|
|
|
2259 |
self::_update_option(
|
2260 |
'spam_count',
|
2261 |
intval( self::get_option('spam_count') + 1 )
|
@@ -2267,11 +2359,16 @@ class Antispam_Bee {
|
|
2267 |
* Aktualisierung der Statistik
|
2268 |
*
|
2269 |
* @since 1.9
|
2270 |
-
* @change 2.
|
2271 |
*/
|
2272 |
|
2273 |
private static function _update_daily_stats()
|
2274 |
{
|
|
|
|
|
|
|
|
|
|
|
2275 |
/* Init */
|
2276 |
$stats = (array)self::get_option('daily_stats');
|
2277 |
$today = (int)strtotime('today');
|
7 |
Author: Sergej Müller
|
8 |
Author URI: http://wpcoder.de
|
9 |
Plugin URI: http://antispambee.com
|
10 |
+
License: GPLv2 or later
|
11 |
+
Version: 2.6.1
|
12 |
+
*/
|
13 |
+
|
14 |
+
/*
|
15 |
+
Copyright (C) 2009-2014 Sergej Müller
|
16 |
+
|
17 |
+
This program is free software; you can redistribute it and/or modify
|
18 |
+
it under the terms of the GNU General Public License as published by
|
19 |
+
the Free Software Foundation; either version 2 of the License, or
|
20 |
+
(at your option) any later version.
|
21 |
+
|
22 |
+
This program is distributed in the hope that it will be useful,
|
23 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
24 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
25 |
+
GNU General Public License for more details.
|
26 |
+
|
27 |
+
You should have received a copy of the GNU General Public License along
|
28 |
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
29 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
30 |
*/
|
31 |
|
32 |
|
57 |
* "Konstruktor" der Klasse
|
58 |
*
|
59 |
* @since 0.1
|
60 |
+
* @change 2.6.1
|
61 |
*/
|
62 |
|
63 |
public static function init()
|
203 |
10,
|
204 |
2
|
205 |
);
|
206 |
+
add_filter(
|
207 |
+
'admin_print_styles-edit-comments.php',
|
208 |
+
array(
|
209 |
+
'Antispam_Bee_Columns',
|
210 |
+
'print_column_styles'
|
211 |
+
)
|
212 |
+
);
|
213 |
}
|
214 |
}
|
215 |
|
341 |
'ignore_pings' => 0,
|
342 |
'always_allowed' => 0,
|
343 |
|
344 |
+
'dashboard_chart' => 0,
|
345 |
'dashboard_count' => 0,
|
346 |
|
347 |
/* Filter */
|
358 |
/* Erweitert */
|
359 |
'flag_spam' => 1,
|
360 |
'email_notify' => 1,
|
361 |
+
'no_notice' => 0,
|
362 |
'cronjob_enable' => 0,
|
363 |
'cronjob_interval' => 0,
|
364 |
|
421 |
return ( empty($GLOBALS['pagenow']) or ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'index.php' ) );
|
422 |
|
423 |
case 'options':
|
424 |
+
return ( !empty($_GET['page']) && $_GET['page'] == 'antispam_bee' );
|
425 |
|
426 |
case 'plugins':
|
427 |
return ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'plugins.php' );
|
465 |
public static function init_action_links($data)
|
466 |
{
|
467 |
/* Rechte? */
|
468 |
+
if ( ! current_user_can('manage_options') ) {
|
469 |
return $data;
|
470 |
}
|
471 |
|
491 |
* Meta-Links des Plugins
|
492 |
*
|
493 |
* @since 0.1
|
494 |
+
* @change 2.6.1
|
495 |
*
|
496 |
* @param array $input Bereits vorhandene Links
|
497 |
* @param string $file Aktuelle Seite
|
509 |
$input,
|
510 |
array(
|
511 |
'<a href="https://flattr.com/t/1323822" target="_blank">Flattr</a>',
|
512 |
+
'<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6" target="_blank">PayPal</a>',
|
513 |
+
'<a href="https://www.amazon.de/gp/registry/wishlist/2U5I7F9649LOJ/?layout=grid" target="_blank">Wishlist</a>'
|
514 |
)
|
515 |
);
|
516 |
}
|
861 |
|
862 |
|
863 |
/**
|
864 |
+
* Get all plugin options
|
865 |
*
|
866 |
* @since 2.4
|
867 |
+
* @change 2.6.1
|
868 |
*
|
869 |
+
* @return array $options Array with option fields
|
870 |
*/
|
871 |
|
872 |
public static function get_options()
|
873 |
{
|
874 |
+
if ( ! $options = wp_cache_get('antispam_bee') ) {
|
|
|
|
|
|
|
|
|
|
|
875 |
wp_cache_set(
|
876 |
'antispam_bee',
|
877 |
+
$options = get_option('antispam_bee')
|
878 |
);
|
879 |
}
|
880 |
|
881 |
+
return wp_parse_args(
|
882 |
+
$options,
|
883 |
+
self::$defaults['options']
|
884 |
+
);
|
885 |
}
|
886 |
|
887 |
|
888 |
/**
|
889 |
+
* Get single option field
|
890 |
*
|
891 |
* @since 0.1
|
892 |
* @change 2.4.2
|
893 |
*
|
894 |
+
* @param string $field Field name
|
895 |
+
* @return mixed Field value
|
896 |
*/
|
897 |
|
898 |
public static function get_option($field)
|
899 |
{
|
900 |
+
/* Get all options */
|
901 |
$options = self::get_options();
|
902 |
|
903 |
return self::get_key($options, $field);
|
905 |
|
906 |
|
907 |
/**
|
908 |
+
* Update single option field
|
909 |
*
|
910 |
* @since 0.1
|
911 |
* @change 2.4
|
912 |
*
|
913 |
+
* @param string $field Field name
|
914 |
+
* @param mixed Field value
|
915 |
*/
|
916 |
|
917 |
private static function _update_option($field, $value)
|
925 |
|
926 |
|
927 |
/**
|
928 |
+
* Update multiple option fields
|
929 |
*
|
930 |
* @since 0.1
|
931 |
+
* @change 2.6.1
|
932 |
*
|
933 |
+
* @param array $data Array with plugin option fields
|
934 |
*/
|
935 |
|
936 |
public static function update_options($data)
|
937 |
{
|
938 |
+
/* Get options */
|
939 |
+
$options = get_option('antispam_bee');
|
940 |
+
|
941 |
+
/* Merge new data */
|
942 |
+
if ( is_array($options) ) {
|
943 |
+
$options = array_merge(
|
944 |
+
$options,
|
945 |
+
$data
|
946 |
+
);
|
947 |
+
} else {
|
948 |
+
$options = $data;
|
949 |
+
}
|
950 |
|
951 |
+
/* Update options */
|
952 |
update_option(
|
953 |
'antispam_bee',
|
954 |
$options
|
955 |
);
|
956 |
|
957 |
+
/* Refresh cache */
|
958 |
wp_cache_set(
|
959 |
'antispam_bee',
|
960 |
$options
|
1106 |
* Prüfung der eingehenden Anfragen auf Spam
|
1107 |
*
|
1108 |
* @since 0.1
|
1109 |
+
* @change 2.6.1
|
1110 |
*
|
1111 |
* @param array $comment Unbehandelter Kommentar
|
1112 |
* @return array $comment Behandelter Kommentar
|
1114 |
|
1115 |
public static function handle_incoming_request($comment)
|
1116 |
{
|
1117 |
+
/* Add client IP */
|
1118 |
+
$comment['comment_author_IP'] = self::get_client_ip();
|
1119 |
+
|
1120 |
+
add_filter(
|
1121 |
+
'pre_comment_user_ip',
|
1122 |
+
array(
|
1123 |
+
__CLASS__,
|
1124 |
+
'get_client_ip'
|
1125 |
+
)
|
1126 |
+
);
|
1127 |
+
|
1128 |
/* Server-Werte */
|
1129 |
$url = self::get_key($_SERVER, 'REQUEST_URI');
|
1130 |
|
1239 |
* Prüfung der Trackbacks
|
1240 |
*
|
1241 |
* @since 2.4
|
1242 |
+
* @change 2.6.1
|
1243 |
*
|
1244 |
* @param array $comment Daten des Trackbacks
|
1245 |
* @return array Array mit dem Verdachtsgrund [optional]
|
1247 |
|
1248 |
private static function _verify_trackback_request($comment)
|
1249 |
{
|
|
|
|
|
|
|
1250 |
/* Kommentarwerte */
|
1251 |
+
$ip = self::get_key($comment, 'comment_author_IP');
|
1252 |
$url = self::get_key($comment, 'comment_author_url');
|
1253 |
$body = self::get_key($comment, 'comment_content');
|
1254 |
|
1260 |
}
|
1261 |
|
1262 |
/* IP? */
|
1263 |
+
if ( empty($ip) ) {
|
1264 |
return array(
|
1265 |
'reason' => 'empty'
|
1266 |
);
|
1310 |
* Prüfung den Kommentar
|
1311 |
*
|
1312 |
* @since 2.4
|
1313 |
+
* @change 2.6.1
|
1314 |
*
|
1315 |
* @param array $comment Daten des Kommentars
|
1316 |
* @return array Array mit dem Verdachtsgrund [optional]
|
1318 |
|
1319 |
private static function _verify_comment_request($comment)
|
1320 |
{
|
|
|
|
|
|
|
1321 |
/* Kommentarwerte */
|
1322 |
+
$ip = self::get_key($comment, 'comment_author_IP');
|
1323 |
$url = self::get_key($comment, 'comment_author_url');
|
1324 |
$body = self::get_key($comment, 'comment_content');
|
1325 |
$email = self::get_key($comment, 'comment_author_email');
|
1333 |
}
|
1334 |
|
1335 |
/* IP? */
|
1336 |
+
if ( empty($ip) ) {
|
1337 |
return array(
|
1338 |
'reason' => 'empty'
|
1339 |
);
|
2040 |
* Logfile mit erkanntem Spam
|
2041 |
*
|
2042 |
* @since 2.5.7
|
2043 |
+
* @change 2.6.1
|
2044 |
*
|
2045 |
* @param array $comment Array mit Kommentardaten
|
2046 |
* @return mixed FALSE im Fehlerfall
|
2049 |
private static function _update_spam_log($comment)
|
2050 |
{
|
2051 |
/* Skip logfile? */
|
2052 |
+
if ( ! defined('ANTISPAM_BEE_LOG_FILE') OR ! ANTISPAM_BEE_LOG_FILE OR ! is_writable(ANTISPAM_BEE_LOG_FILE) OR validate_file(ANTISPAM_BEE_LOG_FILE) === 1 ) {
|
2053 |
return false;
|
2054 |
}
|
2055 |
|
2058 |
'%s comment for post=%d from host=%s marked as spam%s',
|
2059 |
current_time('mysql'),
|
2060 |
$comment['comment_post_ID'],
|
2061 |
+
$comment['comment_author_IP'],
|
2062 |
PHP_EOL
|
2063 |
);
|
2064 |
|
2085 |
}
|
2086 |
|
2087 |
|
2088 |
+
/**
|
2089 |
+
* Return real client IP
|
2090 |
+
*
|
2091 |
+
* @since 2.6.1
|
2092 |
+
* @change 2.6.1
|
2093 |
+
*
|
2094 |
+
* @return mixed $ip Client IP
|
2095 |
+
*/
|
2096 |
+
|
2097 |
+
public static function get_client_ip()
|
2098 |
+
{
|
2099 |
+
if ( isset($_SERVER['HTTP_CLIENT_IP']) ) {
|
2100 |
+
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
2101 |
+
} else if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
|
2102 |
+
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
2103 |
+
} else if ( isset($_SERVER['HTTP_X_FORWARDED']) ) {
|
2104 |
+
$ip = $_SERVER['HTTP_X_FORWARDED'];
|
2105 |
+
} else if ( isset($_SERVER['HTTP_FORWARDED_FOR']) ) {
|
2106 |
+
$ip = $_SERVER['HTTP_FORWARDED_FOR'];
|
2107 |
+
} else if ( isset($_SERVER['HTTP_FORWARDED']) ) {
|
2108 |
+
$ip = $_SERVER['HTTP_FORWARDED'];
|
2109 |
+
} else if ( isset($_SERVER['REMOTE_ADDR']) ) {
|
2110 |
+
$ip = $_SERVER['REMOTE_ADDR'];
|
2111 |
+
} else {
|
2112 |
+
return '';
|
2113 |
+
}
|
2114 |
+
|
2115 |
+
if ( strpos($ip, ',') !== false ) {
|
2116 |
+
$ips = explode(',', $ip);
|
2117 |
+
$ip = trim(@$ips[0]);
|
2118 |
+
}
|
2119 |
+
|
2120 |
+
if ( function_exists('filter_var') ) {
|
2121 |
+
return filter_var(
|
2122 |
+
$ip,
|
2123 |
+
FILTER_VALIDATE_IP
|
2124 |
+
);
|
2125 |
+
}
|
2126 |
+
|
2127 |
+
return preg_replace(
|
2128 |
+
'/[^0-9a-f:\., ]/si',
|
2129 |
+
'',
|
2130 |
+
$ip
|
2131 |
+
);
|
2132 |
+
}
|
2133 |
+
|
2134 |
+
|
2135 |
/**
|
2136 |
* Add spam reason as comment data
|
2137 |
*
|
2338 |
* Aktualisierung der Anzahl von Spam-Kommentaren
|
2339 |
*
|
2340 |
* @since 0.1
|
2341 |
+
* @change 2.6.1
|
2342 |
*/
|
2343 |
|
2344 |
private static function _update_spam_count()
|
2345 |
{
|
2346 |
+
/* Skip if not enabled */
|
2347 |
+
if ( ! self::get_option('dashboard_count') ) {
|
2348 |
+
return;
|
2349 |
+
}
|
2350 |
+
|
2351 |
self::_update_option(
|
2352 |
'spam_count',
|
2353 |
intval( self::get_option('spam_count') + 1 )
|
2359 |
* Aktualisierung der Statistik
|
2360 |
*
|
2361 |
* @since 1.9
|
2362 |
+
* @change 2.6.1
|
2363 |
*/
|
2364 |
|
2365 |
private static function _update_daily_stats()
|
2366 |
{
|
2367 |
+
/* Skip if not enabled */
|
2368 |
+
if ( ! self::get_option('dashboard_chart') ) {
|
2369 |
+
return;
|
2370 |
+
}
|
2371 |
+
|
2372 |
/* Init */
|
2373 |
$stats = (array)self::get_option('daily_stats');
|
2374 |
$today = (int)strtotime('today');
|
css/styles.css
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
/* @group Webfont */
|
2 |
|
3 |
@font-face {
|
4 |
-
|
5 |
-
|
|
|
6 |
}
|
7 |
|
8 |
/* @end group */
|
@@ -13,14 +14,14 @@
|
|
13 |
.ab-main *,
|
14 |
.ab-main *:after,
|
15 |
.ab-main *:before {
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
}
|
25 |
|
26 |
/* @end group */
|
@@ -29,10 +30,10 @@
|
|
29 |
/* @group Browse Happy */
|
30 |
|
31 |
.browsehappy {
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
}
|
37 |
|
38 |
/* @end group */
|
@@ -41,17 +42,17 @@
|
|
41 |
/* @group Spalten */
|
42 |
|
43 |
.ab-wrap {
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
}
|
51 |
.ab-column {
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
}
|
56 |
|
57 |
/* @end group */
|
@@ -60,40 +61,41 @@
|
|
60 |
/* @group Überschriften + Icons */
|
61 |
|
62 |
.ab-column h3 {
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
}
|
69 |
.ab-column h3.icon:before {
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
|
|
79 |
}
|
80 |
.ab-column.ab-arrow h3.icon:before {
|
81 |
-
|
82 |
}
|
83 |
.ab-column.ab-join h3.icon:before {
|
84 |
-
|
85 |
}
|
86 |
.ab-column.ab-diff h3.icon:before {
|
87 |
-
|
88 |
}
|
89 |
|
90 |
.ab-column h6 {
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
}
|
98 |
|
99 |
/* @end group */
|
@@ -103,27 +105,27 @@
|
|
103 |
|
104 |
.ab-column input[type="text"],
|
105 |
.ab-column select {
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
}
|
111 |
.ab-column select[multiple] {
|
112 |
-
|
113 |
-
|
114 |
}
|
115 |
.ab-column input.ab-mini-field {
|
116 |
-
|
117 |
}
|
118 |
.ab-column input.ab-medium-field {
|
119 |
-
|
120 |
}
|
121 |
.ab-column input[type="text"] + label,
|
122 |
.ab-column select + label {
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
}
|
128 |
|
129 |
/* @end group */
|
@@ -132,46 +134,46 @@
|
|
132 |
/* @group Spalteninhalte */
|
133 |
|
134 |
.ab-column > ul {
|
135 |
-
|
136 |
}
|
137 |
.ab-column:last-of-type > ul {
|
138 |
-
|
139 |
}
|
140 |
.ab-column > ul > li {
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
}
|
150 |
|
151 |
.ab-column > ul > li a {
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
}
|
156 |
.ab-column > ul > li a:hover {
|
157 |
-
|
158 |
}
|
159 |
|
160 |
.ab-column > ul > li input[type="checkbox"] {
|
161 |
-
|
162 |
-
|
163 |
}
|
164 |
.ab-column > ul > li label {
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
}
|
170 |
.ab-column > ul > li label span {
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
}
|
176 |
|
177 |
/* @end group */
|
@@ -181,57 +183,64 @@
|
|
181 |
|
182 |
.ab-column > ul > li:after,
|
183 |
.ab-column > ul > li:before {
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
}
|
188 |
|
189 |
.ab-column.ab-arrow > ul > li:before,
|
190 |
.ab-column.ab-arrow > ul > li:after {
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
}
|
195 |
.ab-column.ab-arrow > ul > li:before {
|
196 |
-
|
197 |
-
|
198 |
}
|
199 |
.ab-column.ab-arrow > ul > li:after {
|
200 |
-
|
201 |
-
|
202 |
}
|
203 |
|
204 |
.ab-column.ab-join > ul > li:before {
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
}
|
210 |
|
211 |
.ab-column.ab-diff > ul > li:before {
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
}
|
218 |
|
219 |
/* @end group */
|
220 |
|
221 |
|
222 |
-
/* @group Submit
|
223 |
|
224 |
-
.ab-column
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
}
|
230 |
-
.ab-column
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
}
|
236 |
|
237 |
/* @end group */
|
@@ -241,22 +250,22 @@
|
|
241 |
|
242 |
.ab-column > ul > li:last-of-type:after,
|
243 |
.ab-column > ul > li:last-of-type:before {
|
244 |
-
|
245 |
}
|
246 |
|
247 |
.ab-column > ul > li > ul {
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
}
|
252 |
.ab-column > ul > li > ul li {
|
253 |
-
|
254 |
}
|
255 |
.ab-column > ul > li > ul label {
|
256 |
-
|
257 |
}
|
258 |
.ab-column > ul > li > input[type="checkbox"]:checked ~ ul {
|
259 |
-
|
260 |
}
|
261 |
|
262 |
/* @end group */
|
1 |
/* @group Webfont */
|
2 |
|
3 |
@font-face {
|
4 |
+
font-family: icons;
|
5 |
+
src: url('../font/icons.woff2') format('woff2'),
|
6 |
+
url('../font/icons.woff') format('woff');
|
7 |
}
|
8 |
|
9 |
/* @end group */
|
14 |
.ab-main *,
|
15 |
.ab-main *:after,
|
16 |
.ab-main *:before {
|
17 |
+
border: 0;
|
18 |
+
margin: 0;
|
19 |
+
padding: 0;
|
20 |
+
outline: 0;
|
21 |
|
22 |
+
-webkit-box-sizing: border-box;
|
23 |
+
-moz-box-sizing: border-box;
|
24 |
+
box-sizing: border-box;
|
25 |
}
|
26 |
|
27 |
/* @end group */
|
30 |
/* @group Browse Happy */
|
31 |
|
32 |
.browsehappy {
|
33 |
+
margin: 0 0 20px;
|
34 |
+
padding: 10px;
|
35 |
+
border: 1px solid #e66f00;
|
36 |
+
text-align: center;
|
37 |
}
|
38 |
|
39 |
/* @end group */
|
42 |
/* @group Spalten */
|
43 |
|
44 |
.ab-wrap {
|
45 |
+
color: #2f353e;
|
46 |
+
height: 1%;
|
47 |
+
margin: 0 0 0 -10px;
|
48 |
+
overflow: hidden;
|
49 |
+
padding: 20px 0 0 0;
|
50 |
+
text-rendering: optimizeLegibility;
|
51 |
}
|
52 |
.ab-column {
|
53 |
+
float: left;
|
54 |
+
margin: 0 0 0 10px;
|
55 |
+
position: relative;
|
56 |
}
|
57 |
|
58 |
/* @end group */
|
61 |
/* @group Überschriften + Icons */
|
62 |
|
63 |
.ab-column h3 {
|
64 |
+
margin: 0;
|
65 |
+
font-size: 14px;
|
66 |
+
font-weight: normal;
|
67 |
+
line-height: 20px;
|
68 |
+
text-transform: uppercase;
|
69 |
}
|
70 |
.ab-column h3.icon:before {
|
71 |
+
font: normal 30px/30px icons;
|
72 |
+
top: 4px;
|
73 |
+
right: 20px;
|
74 |
+
speak: none;
|
75 |
+
width: 1em;
|
76 |
+
color: #8e959c;
|
77 |
+
position: absolute;
|
78 |
+
text-align: center;
|
79 |
+
-webkit-font-smoothing: antialiased;
|
80 |
+
-moz-osx-font-smoothing: grayscale;
|
81 |
}
|
82 |
.ab-column.ab-arrow h3.icon:before {
|
83 |
+
content: '\2387';
|
84 |
}
|
85 |
.ab-column.ab-join h3.icon:before {
|
86 |
+
content: '\e795';
|
87 |
}
|
88 |
.ab-column.ab-diff h3.icon:before {
|
89 |
+
content: '\e73c';
|
90 |
}
|
91 |
|
92 |
.ab-column h6 {
|
93 |
+
clear: both;
|
94 |
+
color: #8e959c;
|
95 |
+
margin: 0 0 20px;
|
96 |
+
font-size: 10px;
|
97 |
+
font-weight: normal;
|
98 |
+
text-transform: uppercase;
|
99 |
}
|
100 |
|
101 |
/* @end group */
|
105 |
|
106 |
.ab-column input[type="text"],
|
107 |
.ab-column select {
|
108 |
+
height: 20px;
|
109 |
+
font-size: 11px;
|
110 |
+
text-align: center;
|
111 |
+
background: #f8f8f9;
|
112 |
}
|
113 |
.ab-column select[multiple] {
|
114 |
+
width: 150px;
|
115 |
+
height: 56px;
|
116 |
}
|
117 |
.ab-column input.ab-mini-field {
|
118 |
+
width: 30px;
|
119 |
}
|
120 |
.ab-column input.ab-medium-field {
|
121 |
+
width: 120px;
|
122 |
}
|
123 |
.ab-column input[type="text"] + label,
|
124 |
.ab-column select + label {
|
125 |
+
color: #8e959c;
|
126 |
+
margin: 0 0 0 7px;
|
127 |
+
display: inline-block;
|
128 |
+
text-transform: uppercase;
|
129 |
}
|
130 |
|
131 |
/* @end group */
|
134 |
/* @group Spalteninhalte */
|
135 |
|
136 |
.ab-column > ul {
|
137 |
+
padding: 0 20px 0 0;
|
138 |
}
|
139 |
.ab-column:last-of-type > ul {
|
140 |
+
border: 0;
|
141 |
}
|
142 |
.ab-column > ul > li {
|
143 |
+
width: 330px;
|
144 |
+
margin: 0 0 36px;
|
145 |
+
padding: 10px 0 12px 12px;
|
146 |
+
position: relative;
|
147 |
+
background: #fff;
|
148 |
+
list-style: none;
|
149 |
+
border-radius: 3px;
|
150 |
+
white-space: nowrap;
|
151 |
}
|
152 |
|
153 |
.ab-column > ul > li a {
|
154 |
+
color: inherit;
|
155 |
+
text-decoration: none;
|
156 |
+
border-bottom: 1px dotted #e0e5e9;
|
157 |
}
|
158 |
.ab-column > ul > li a:hover {
|
159 |
+
border-color: inherit;
|
160 |
}
|
161 |
|
162 |
.ab-column > ul > li input[type="checkbox"] {
|
163 |
+
display: inline-block;
|
164 |
+
margin: 0 8px 0 0;
|
165 |
}
|
166 |
.ab-column > ul > li label {
|
167 |
+
cursor: default;
|
168 |
+
display: inline-block;
|
169 |
+
overflow: hidden;
|
170 |
+
line-height: 24px;
|
171 |
}
|
172 |
.ab-column > ul > li label span {
|
173 |
+
color: #8e959c;
|
174 |
+
display: block;
|
175 |
+
font-size: 12px;
|
176 |
+
line-height: 16px;
|
177 |
}
|
178 |
|
179 |
/* @end group */
|
183 |
|
184 |
.ab-column > ul > li:after,
|
185 |
.ab-column > ul > li:before {
|
186 |
+
width: 0;
|
187 |
+
content: '';
|
188 |
+
position: absolute;
|
189 |
}
|
190 |
|
191 |
.ab-column.ab-arrow > ul > li:before,
|
192 |
.ab-column.ab-arrow > ul > li:after {
|
193 |
+
left: 157px;
|
194 |
+
border-width: 10px 10px 0;
|
195 |
+
border-style: solid;
|
196 |
}
|
197 |
.ab-column.ab-arrow > ul > li:before {
|
198 |
+
bottom: -24px;
|
199 |
+
border-color: #fff transparent;
|
200 |
}
|
201 |
.ab-column.ab-arrow > ul > li:after {
|
202 |
+
bottom: -22px;
|
203 |
+
border-color: #f1f1f1 transparent;
|
204 |
}
|
205 |
|
206 |
.ab-column.ab-join > ul > li:before {
|
207 |
+
left: 171px;
|
208 |
+
bottom: -27px;
|
209 |
+
height: 18px;
|
210 |
+
border-right: 2px solid #fff;
|
211 |
}
|
212 |
|
213 |
.ab-column.ab-diff > ul > li:before {
|
214 |
+
left: 162px;
|
215 |
+
bottom: -19px;
|
216 |
+
width: 18px;
|
217 |
+
height: 0;
|
218 |
+
border-bottom: 2px solid #fff;
|
219 |
}
|
220 |
|
221 |
/* @end group */
|
222 |
|
223 |
|
224 |
+
/* @group Submit & Service */
|
225 |
|
226 |
+
.ab-column--service {
|
227 |
+
width: 342px;
|
228 |
+
text-align: center;
|
229 |
+
border-top: 1px solid #e0e5e9;
|
230 |
+
border-bottom: 1px solid #e0e5e9;
|
231 |
}
|
232 |
+
.ab-column--service p {
|
233 |
+
margin: 8px 0;
|
234 |
+
}
|
235 |
+
.ab-column--service a {
|
236 |
+
padding: 0 2px;
|
237 |
+
}
|
238 |
+
.ab-column--submit {
|
239 |
+
width: 342px;
|
240 |
+
margin-top: 35px;
|
241 |
+
}
|
242 |
+
.ab-column--submit .button {
|
243 |
+
width: 100%;
|
244 |
}
|
245 |
|
246 |
/* @end group */
|
250 |
|
251 |
.ab-column > ul > li:last-of-type:after,
|
252 |
.ab-column > ul > li:last-of-type:before {
|
253 |
+
display: none;
|
254 |
}
|
255 |
|
256 |
.ab-column > ul > li > ul {
|
257 |
+
margin: 10px 10px 0 26px;
|
258 |
+
display: none;
|
259 |
+
list-style: none;
|
260 |
}
|
261 |
.ab-column > ul > li > ul li {
|
262 |
+
padding: 2px 0;
|
263 |
}
|
264 |
.ab-column > ul > li > ul label {
|
265 |
+
margin: 0 0 0 7px;
|
266 |
}
|
267 |
.ab-column > ul > li > input[type="checkbox"]:checked ~ ul {
|
268 |
+
display: block;
|
269 |
}
|
270 |
|
271 |
/* @end group */
|
css/styles.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@font-face{font-family:
|
1 |
+
@font-face{font-family:icons;src:url(../font/icons.woff2) format('woff2'),url(../font/icons.woff) format('woff')}.ab-main *,.ab-main :after,.ab-main :before{border:0;margin:0;padding:0;outline:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.browsehappy{margin:0 0 20px;padding:10px;border:1px solid #e66f00;text-align:center}.ab-wrap{color:#2f353e;height:1%;margin:0 0 0 -10px;overflow:hidden;padding:20px 0 0;text-rendering:optimizeLegibility}.ab-column{float:left;margin:0 0 0 10px;position:relative}.ab-column h3{margin:0;font-size:14px;font-weight:400;line-height:20px;text-transform:uppercase}.ab-column h3.icon:before{font:400 30px/30px icons;top:4px;right:20px;speak:none;width:1em;color:#8e959c;position:absolute;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ab-column.ab-arrow h3.icon:before{content:'\2387'}.ab-column.ab-join h3.icon:before{content:'\e795'}.ab-column.ab-diff h3.icon:before{content:'\e73c'}.ab-column h6{clear:both;color:#8e959c;margin:0 0 20px;font-size:10px;font-weight:400;text-transform:uppercase}.ab-column input[type=text],.ab-column select{height:20px;font-size:11px;text-align:center;background:#f8f8f9}.ab-column select[multiple]{width:150px;height:56px}.ab-column input.ab-mini-field{width:30px}.ab-column input.ab-medium-field{width:120px}.ab-column input[type=text]+label,.ab-column select+label{color:#8e959c;margin:0 0 0 7px;display:inline-block;text-transform:uppercase}.ab-column>ul{padding:0 20px 0 0}.ab-column:last-of-type>ul{border:0}.ab-column>ul>li{width:330px;margin:0 0 36px;padding:10px 0 12px 12px;position:relative;background:#fff;list-style:none;border-radius:3px;white-space:nowrap}.ab-column>ul>li a{color:inherit;text-decoration:none;border-bottom:1px dotted #e0e5e9}.ab-column>ul>li a:hover{border-color:inherit}.ab-column>ul>li input[type=checkbox]{display:inline-block;margin:0 8px 0 0}.ab-column>ul>li label{cursor:default;display:inline-block;overflow:hidden;line-height:24px}.ab-column>ul>li label span{color:#8e959c;display:block;font-size:12px;line-height:16px}.ab-column>ul>li:after,.ab-column>ul>li:before{width:0;content:'';position:absolute}.ab-column.ab-arrow>ul>li:after,.ab-column.ab-arrow>ul>li:before{left:157px;border-width:10px 10px 0;border-style:solid}.ab-column.ab-arrow>ul>li:before{bottom:-24px;border-color:#fff transparent}.ab-column.ab-arrow>ul>li:after{bottom:-22px;border-color:#f1f1f1 transparent}.ab-column.ab-join>ul>li:before{left:171px;bottom:-27px;height:18px;border-right:2px solid #fff}.ab-column.ab-diff>ul>li:before{left:162px;bottom:-19px;width:18px;height:0;border-bottom:2px solid #fff}.ab-column--service{width:342px;text-align:center;border-top:1px solid #e0e5e9;border-bottom:1px solid #e0e5e9}.ab-column--service p{margin:8px 0}.ab-column--service a{padding:0 2px}.ab-column--submit{width:342px;margin-top:35px}.ab-column--submit .button{width:100%}.ab-column>ul>li:last-of-type:after,.ab-column>ul>li:last-of-type:before{display:none}.ab-column>ul>li>ul{margin:10px 10px 0 26px;display:none;list-style:none}.ab-column>ul>li>ul li{padding:2px 0}.ab-column>ul>li>ul label{margin:0 0 0 7px}.ab-column>ul>li>input[type=checkbox]:checked~ul{display:block}
|
font/icons.ttf
ADDED
Binary file
|
font/icons.woff2
ADDED
Binary file
|
inc/columns.class.php
CHANGED
@@ -65,4 +65,20 @@ final class Antispam_Bee_Columns {
|
|
65 |
'antispam_bee'
|
66 |
);
|
67 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
}
|
65 |
'antispam_bee'
|
66 |
);
|
67 |
}
|
68 |
+
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Print CSS for the plugin column
|
72 |
+
*
|
73 |
+
* @since 2.6.1
|
74 |
+
* @change 2.6.1
|
75 |
+
*/
|
76 |
+
|
77 |
+
public static function print_column_styles() { ?>
|
78 |
+
<style>
|
79 |
+
.column-antispam_bee_reason {
|
80 |
+
width: 10%;
|
81 |
+
}
|
82 |
+
</style>
|
83 |
+
<?php }
|
84 |
}
|
inc/gui.class.php
CHANGED
@@ -30,6 +30,11 @@ class Antispam_Bee_GUI extends Antispam_Bee {
|
|
30 |
wp_die(__('Cheatin’ uh?'));
|
31 |
}
|
32 |
|
|
|
|
|
|
|
|
|
|
|
33 |
/* Referer prüfen */
|
34 |
check_admin_referer('antispam_bee');
|
35 |
|
@@ -170,7 +175,7 @@ class Antispam_Bee_GUI extends Antispam_Bee {
|
|
170 |
* Anzeige der GUI
|
171 |
*
|
172 |
* @since 0.1
|
173 |
-
* @change 2.6.
|
174 |
*/
|
175 |
|
176 |
public static function options_page() { ?>
|
@@ -426,12 +431,19 @@ class Antispam_Bee_GUI extends Antispam_Bee {
|
|
426 |
</ul>
|
427 |
</div>
|
428 |
|
|
|
|
|
|
|
|
|
|
|
|
|
429 |
|
430 |
-
<div class="ab-column ab-submit">
|
431 |
<p>
|
432 |
-
|
433 |
</p>
|
|
|
434 |
|
|
|
435 |
<input type="submit" class="button button-primary" value="<?php _e('Save Changes') ?>" />
|
436 |
</div>
|
437 |
</div>
|
30 |
wp_die(__('Cheatin’ uh?'));
|
31 |
}
|
32 |
|
33 |
+
/* Capability check */
|
34 |
+
if ( ! current_user_can('manage_options') ) {
|
35 |
+
wp_die(__('Cheatin’ uh?'));
|
36 |
+
}
|
37 |
+
|
38 |
/* Referer prüfen */
|
39 |
check_admin_referer('antispam_bee');
|
40 |
|
175 |
* Anzeige der GUI
|
176 |
*
|
177 |
* @since 0.1
|
178 |
+
* @change 2.6.1
|
179 |
*/
|
180 |
|
181 |
public static function options_page() { ?>
|
431 |
</ul>
|
432 |
</div>
|
433 |
|
434 |
+
<div class="ab-column ab-column--service">
|
435 |
+
<?php if ( get_locale() == 'de_DE' ) { ?>
|
436 |
+
<p>
|
437 |
+
<a href="http://playground.ebiene.de/antispam-bee-wordpress-plugin/" target="_blank">Online-Handbuch</a> • <a href="http://cup.wpcoder.de/wordpress-antispam-guide/" target="_blank">Antispam-Guide</a>
|
438 |
+
</p>
|
439 |
+
<?php } ?>
|
440 |
|
|
|
441 |
<p>
|
442 |
+
<a href="https://flattr.com/t/1323822" target="_blank">Flattr</a> • <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6" target="_blank">PayPal</a> • <a href="https://www.amazon.de/gp/registry/wishlist/2U5I7F9649LOJ/?layout=grid" target="_blank">Wishlist</a>
|
443 |
</p>
|
444 |
+
</div>
|
445 |
|
446 |
+
<div class="ab-column ab-column--submit">
|
447 |
<input type="submit" class="button button-primary" value="<?php _e('Save Changes') ?>" />
|
448 |
</div>
|
449 |
</div>
|
lang/antispam_bee-nl_NL.mo
ADDED
Binary file
|
lang/antispam_bee-nl_NL.po
ADDED
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Antispam Bee\n"
|
4 |
+
"POT-Creation-Date: \n"
|
5 |
+
"PO-Revision-Date: \n"
|
6 |
+
"Last-Translator: Sergej Müller\n"
|
7 |
+
"Language-Team: Presis\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
12 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"Language: nl_NL\n"
|
15 |
+
"X-Generator: Poedit 1.6.5\n"
|
16 |
+
"X-Poedit-SearchPath-0: .\n"
|
17 |
+
|
18 |
+
msgid "No data available."
|
19 |
+
msgstr "Geen gegevens beschikbaar."
|
20 |
+
|
21 |
+
msgid "New spam comment on your post"
|
22 |
+
msgstr "Nieuwe spam reactie op jouw bericht"
|
23 |
+
|
24 |
+
msgid "Marked as spam by Antispam Bee / Spam reason"
|
25 |
+
msgstr "Gemarkeerd als spam door Antispam Bee / Spam reactie"
|
26 |
+
|
27 |
+
msgid "Comment"
|
28 |
+
msgstr "Reactie"
|
29 |
+
|
30 |
+
msgid "Type"
|
31 |
+
msgstr "Type"
|
32 |
+
|
33 |
+
msgid "Spam Reason"
|
34 |
+
msgstr "Spam reden"
|
35 |
+
|
36 |
+
msgid "Empty Data"
|
37 |
+
msgstr "Geen gegevens"
|
38 |
+
|
39 |
+
msgid "CSS Hack"
|
40 |
+
msgstr "CSS hack"
|
41 |
+
|
42 |
+
msgid "Server IP"
|
43 |
+
msgstr "Server IP"
|
44 |
+
|
45 |
+
msgid "Spam IP"
|
46 |
+
msgstr "Spam IP"
|
47 |
+
|
48 |
+
msgid "Comment Language"
|
49 |
+
msgstr "Taal van reactie"
|
50 |
+
|
51 |
+
msgid "Country Check"
|
52 |
+
msgstr "Land controle"
|
53 |
+
|
54 |
+
msgid "DNSBL Spam"
|
55 |
+
msgstr "DNSBL Spam"
|
56 |
+
|
57 |
+
msgid "RegExp"
|
58 |
+
msgstr "RegExp"
|
59 |
+
|
60 |
+
msgid "Approve it"
|
61 |
+
msgstr "Toestaan"
|
62 |
+
|
63 |
+
msgid "Delete it"
|
64 |
+
msgstr "Verwijderen"
|
65 |
+
|
66 |
+
msgid "Trash it"
|
67 |
+
msgstr "Verplaats naar prullenbak"
|
68 |
+
|
69 |
+
msgid "Spam list"
|
70 |
+
msgstr "Spamlijst"
|
71 |
+
|
72 |
+
msgid "Notify message by Antispam Bee"
|
73 |
+
msgstr "Notificatiebericht van Antispam Bee "
|
74 |
+
|
75 |
+
msgid "Content removed by Antispam Bee"
|
76 |
+
msgstr "Inhoud verwijderd door Antispam Bee"
|
77 |
+
|
78 |
+
msgid "Last check"
|
79 |
+
msgstr "Laatste controle"
|
80 |
+
|
81 |
+
msgid "Blocked"
|
82 |
+
msgstr "Geblokkeerd"
|
83 |
+
|
84 |
+
msgid "Today"
|
85 |
+
msgstr "Vandaag"
|
86 |
+
|
87 |
+
msgid "Easy and extremely productive spam-fighting plugin with many sophisticated solutions. Includes protection again trackback spam."
|
88 |
+
msgstr "Eenvoudige en extreem productieve spam plugin met vele passende oplossingen. Inclusief bescherming tegen trackback spam."
|
89 |
+
|
90 |
+
msgid "http://antispambee.com"
|
91 |
+
msgstr "http://antispambee.com"
|
92 |
+
|
93 |
+
msgid "Comments"
|
94 |
+
msgstr "Reacties"
|
95 |
+
|
96 |
+
msgid "Comment marked as spam"
|
97 |
+
msgstr "Reactie gemarkeerd als spam"
|
98 |
+
|
99 |
+
# Langues
|
100 |
+
msgid "Language"
|
101 |
+
msgstr "Taal"
|
102 |
+
|
103 |
+
msgid "English"
|
104 |
+
msgstr "Engels"
|
105 |
+
|
106 |
+
msgid "German"
|
107 |
+
msgstr "Duits"
|
108 |
+
|
109 |
+
msgid "French"
|
110 |
+
msgstr "Frans"
|
111 |
+
|
112 |
+
msgid "Italian"
|
113 |
+
msgstr "Italiaans"
|
114 |
+
|
115 |
+
msgid "Spanish"
|
116 |
+
msgstr "Spaans"
|
117 |
+
|
118 |
+
# Antispam-Filter
|
119 |
+
msgid "Antispam filter"
|
120 |
+
msgstr "Antispam filter"
|
121 |
+
|
122 |
+
msgid "Filter in the execution order"
|
123 |
+
msgstr "Filter in uitvoer volgorde"
|
124 |
+
|
125 |
+
msgid "Trust approved commentators"
|
126 |
+
msgstr "Vertrouw toegestane reageerders"
|
127 |
+
|
128 |
+
msgid "No check for already commenting users"
|
129 |
+
msgstr "Geen controle voor gebruikers die al gereageerd hebben"
|
130 |
+
|
131 |
+
msgid "BBCode is spam"
|
132 |
+
msgstr "BBCode is spam"
|
133 |
+
|
134 |
+
msgid "Review the comment contents for BBCode links"
|
135 |
+
msgstr "Controleer de reactie-inhoud voor BBCode links"
|
136 |
+
|
137 |
+
msgid "Use a public antispam database"
|
138 |
+
msgstr "Gebruik een publieke antispam database"
|
139 |
+
|
140 |
+
msgid "Matching the ip address with <a href=\"http://opm.tornevall.org\" target=\"_blank\">Tornevall</a>"
|
141 |
+
msgstr "Vergelijk het ip adres met <a href=\"http://opm.tornevall.org\" target=\"_blank\">Tornevall</a>"
|
142 |
+
|
143 |
+
msgid "Validate the ip address of commentators"
|
144 |
+
msgstr "Controleer het ip adres van de reageerders"
|
145 |
+
|
146 |
+
msgid "Validity check for used ip address"
|
147 |
+
msgstr "Geldigheidscontrole voor gebruikte ip adres"
|
148 |
+
|
149 |
+
msgid "Use regular expressions"
|
150 |
+
msgstr "Gebruik reguliere expressies"
|
151 |
+
|
152 |
+
msgid "Predefined and custom patterns by <a href=\"https://gist.github.com/4242142\" target=\"_blank\">plugin hook</a>"
|
153 |
+
msgstr "Vooraf gedefinieerde en eigen sjablonen door <a href=\"https://gist.github.com/4242142\" target=\"_blank\">plugin hook</a>"
|
154 |
+
|
155 |
+
msgid "Look in the local spam database"
|
156 |
+
msgstr "Kijk in de locale spam database"
|
157 |
+
|
158 |
+
msgid "Already marked as spam? Yes? No?"
|
159 |
+
msgstr "Al reeds aangemerkt als spam? Ja? Nee?"
|
160 |
+
|
161 |
+
msgid "Block comments from specific countries"
|
162 |
+
msgstr "Blokkeer reactie vanuit specifieke landen"
|
163 |
+
|
164 |
+
msgid "Filtering the requests depending on country"
|
165 |
+
msgstr "Filter de aanvraag afhankelijk van het land"
|
166 |
+
|
167 |
+
msgid "Allow comments only in certain language"
|
168 |
+
msgstr "Sta alleen reacties toe in een bepaalde taal"
|
169 |
+
|
170 |
+
msgid "Detection and approval in specified language"
|
171 |
+
msgstr "Detectie en goedkeuring in de opgegeven taal"
|
172 |
+
|
173 |
+
# Erweitert
|
174 |
+
msgid "Advanced"
|
175 |
+
msgstr "Uitgebreid"
|
176 |
+
|
177 |
+
msgid "Other antispam tools"
|
178 |
+
msgstr "Andere antispam gereedschappen"
|
179 |
+
|
180 |
+
msgid "Mark as spam, do not delete"
|
181 |
+
msgstr "Markeer als spam, niet verwijderen"
|
182 |
+
|
183 |
+
msgid "Keep the spam in my blog."
|
184 |
+
msgstr "Behoud de spam in jouw blog."
|
185 |
+
|
186 |
+
msgid "Notification by email"
|
187 |
+
msgstr "Kennisgevingsbericht per e-mail"
|
188 |
+
|
189 |
+
msgid "Sending an alert to the admin"
|
190 |
+
msgstr "Stuur een melding naar de admin"
|
191 |
+
|
192 |
+
msgid "Not store the reason in the comment body"
|
193 |
+
msgstr "Sla de reden niet op in de reactie inhoud"
|
194 |
+
|
195 |
+
msgid "Filter name as reason for current suspicion"
|
196 |
+
msgstr "Filter naam als reden voor de huidige verdenking"
|
197 |
+
|
198 |
+
msgid "Delete existing spam after %s days"
|
199 |
+
msgstr "Verwijder bestaande spam na %s dagen"
|
200 |
+
|
201 |
+
msgid "Cleaning up the database from old entries"
|
202 |
+
msgstr "Database opschonen"
|
203 |
+
|
204 |
+
msgid "Limit on %s"
|
205 |
+
msgstr "Limiet op %s"
|
206 |
+
|
207 |
+
msgid "Another type of spam will be deleted immediately"
|
208 |
+
msgstr "Een ander type spam wil direct worden verwijderd"
|
209 |
+
|
210 |
+
msgid "Delete comments by spam reasons"
|
211 |
+
msgstr "Verwijder reacties bij spam redenen"
|
212 |
+
|
213 |
+
msgid "Multiple choice by pressing Ctrl/CMD"
|
214 |
+
msgstr "Meerdere keuzes door Ctrl / CMD in te drukken"
|
215 |
+
|
216 |
+
# Sonstiges
|
217 |
+
msgid "More"
|
218 |
+
msgstr "Meer"
|
219 |
+
|
220 |
+
msgid "A few little things"
|
221 |
+
msgstr "Een paar kleine dingen"
|
222 |
+
|
223 |
+
msgid "Statistics on the dashboard"
|
224 |
+
msgstr "Statistieken op het dashboard"
|
225 |
+
|
226 |
+
msgid "Spam detection rate with daily values"
|
227 |
+
msgstr "Spam detectie mate met dagelijkse waardes"
|
228 |
+
|
229 |
+
msgid "Spam counter on the dashboard"
|
230 |
+
msgstr "Spam teller op het dashboard"
|
231 |
+
|
232 |
+
msgid "Amount of identified spam comments"
|
233 |
+
msgstr "Aantal geïdentificeerde spam reacties "
|
234 |
+
|
235 |
+
msgid "Do not check trackbacks / pingbacks"
|
236 |
+
msgstr "Trackbacks / pingbacks niet controleren"
|
237 |
+
|
238 |
+
msgid "No spam check for trackback notifications"
|
239 |
+
msgstr "Geen spam controle voor trackback meldingen"
|
240 |
+
|
241 |
+
msgid "Comment form used outside of posts"
|
242 |
+
msgstr "Reactieformulier wordt buiten berichten gebruikt"
|
243 |
+
|
244 |
+
msgid "Check for comment forms on archive pages"
|
245 |
+
msgstr "Controleer voor reactieformulieren op archief pagina's"
|
246 |
+
|
readme.txt
CHANGED
@@ -1,21 +1,23 @@
|
|
1 |
=== Antispam Bee ===
|
2 |
Contributors: sergej.mueller
|
3 |
-
Tags:
|
4 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6
|
5 |
Requires at least: 3.8
|
6 |
-
Tested up to:
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
-
License URI:
|
10 |
|
11 |
|
12 |
|
13 |
-
|
14 |
|
15 |
|
16 |
|
17 |
== Description ==
|
18 |
|
|
|
|
|
19 |
Blog-Spam bekämpfen ist die Stärke von *Antispam Bee*. Seit Jahren wird das Plugin darauf trainiert, Spam-Kommentare zuverlässig zu erkennen (auf Wunsch auch sofort zu beseitigen). Dabei greift *Antispam Bee* auf unterschiedliche Techniken zu, die sich zur Identifizierung von Spam-Nachrichten bewährt haben.
|
20 |
|
21 |
|
@@ -58,7 +60,7 @@ Die meisten Auswahlmöglichkeiten innerhalb der Optionsseite sind konfigurierbar
|
|
58 |
|
59 |
|
60 |
= Datenschutz =
|
61 |
-
In Blogs innerhalb der EU-Länder
|
62 |
|
63 |
|
64 |
= Schlusswort =
|
@@ -82,12 +84,14 @@ Freundlich formulierte Fragen rund um das Plugin werden per E-Mail beantwortet.
|
|
82 |
|
83 |
|
84 |
= Unterstützung =
|
85 |
-
*
|
86 |
-
*
|
|
|
87 |
|
88 |
|
89 |
-
=
|
90 |
* [Antispam Bee: Antispam für WordPress](http://playground.ebiene.de/antispam-bee-wordpress-plugin/)
|
|
|
91 |
|
92 |
|
93 |
= Website =
|
@@ -105,6 +109,14 @@ Freundlich formulierte Fragen rund um das Plugin werden per E-Mail beantwortet.
|
|
105 |
|
106 |
== Changelog ==
|
107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
= 2.6.0 =
|
109 |
* DE: Optimierungen für WordPress 3.8
|
110 |
* DE: Zusatzprüfung auf Nicht-UTF-8-Zeichen in Kommentardaten
|
1 |
=== Antispam Bee ===
|
2 |
Contributors: sergej.mueller
|
3 |
+
Tags: comment, spam, antispam, comments, trackback, protection, prevention
|
4 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6
|
5 |
Requires at least: 3.8
|
6 |
+
Tested up to: 4.0
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
|
12 |
|
13 |
+
„...another popular solution to fight spam is Antispam Bee“ – Matt Mullenweg, Q&A WordCamp Europe 2014
|
14 |
|
15 |
|
16 |
|
17 |
== Description ==
|
18 |
|
19 |
+
Say Goodbye zu Spam in deinem Blog. Kostenlos, werbefrei und datenschutzkonform. Für Kommentare und Trackbacks.
|
20 |
+
|
21 |
Blog-Spam bekämpfen ist die Stärke von *Antispam Bee*. Seit Jahren wird das Plugin darauf trainiert, Spam-Kommentare zuverlässig zu erkennen (auf Wunsch auch sofort zu beseitigen). Dabei greift *Antispam Bee* auf unterschiedliche Techniken zu, die sich zur Identifizierung von Spam-Nachrichten bewährt haben.
|
22 |
|
23 |
|
60 |
|
61 |
|
62 |
= Datenschutz =
|
63 |
+
In Blogs innerhalb der EU-Länder sollte die Option *"Öffentliche Spamdatenbank berücksichtigen"* nicht aktiviert werden, da das Antispam-Plugin dann ungekürzte IP-Adressen der Kommentatoren dafür verwendet, diese in einer öffentlichen Spammer-Datenbank nachzuschlagen, um als Spam zu identifizieren. Technisch ist die Verschlüsselung der IP nicht möglich, da Spammer-Datenbanken mit vollständigen, unverschlüsselten IP-Adressen arbeiten. [Weitere Details](http://playground.ebiene.de/antispam-bee-wordpress-plugin/#dnsbl_check)
|
64 |
|
65 |
|
66 |
= Schlusswort =
|
84 |
|
85 |
|
86 |
= Unterstützung =
|
87 |
+
* Via [Flattr](https://flattr.com/t/1323822)
|
88 |
+
* Via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6)
|
89 |
+
* Via [Wishlist](https://www.amazon.de/gp/registry/wishlist/2U5I7F9649LOJ/?layout=grid)
|
90 |
|
91 |
|
92 |
+
= Handbücher =
|
93 |
* [Antispam Bee: Antispam für WordPress](http://playground.ebiene.de/antispam-bee-wordpress-plugin/)
|
94 |
+
* [Guide: Spam-Bekämpfung in WordPress](http://cup.wpcoder.de/wordpress-antispam-guide/)
|
95 |
|
96 |
|
97 |
= Website =
|
109 |
|
110 |
== Changelog ==
|
111 |
|
112 |
+
= 2.6.1 =
|
113 |
+
* EN: Code refactoring of options management
|
114 |
+
* DE: Überarbeitung der Optionen-Verwaltung
|
115 |
+
* EN: Support for `HTTP_FORWARDED_FOR` header
|
116 |
+
* DE: Berücksichtigung der Header `HTTP_FORWARDED_FOR`
|
117 |
+
* *EN: Release time investment (Development & QA): 8,5 h*
|
118 |
+
* *DE: Release-Zeitaufwand (Development & QA): 8,5 Stunden*
|
119 |
+
|
120 |
= 2.6.0 =
|
121 |
* DE: Optimierungen für WordPress 3.8
|
122 |
* DE: Zusatzprüfung auf Nicht-UTF-8-Zeichen in Kommentardaten
|