109
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2 |
/* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
3 |
Plugin Name: Akismet |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
4 |
Plugin URI: http://akismet.com/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
5 |
Description: Akismet checks your comments against the Akismet web service to see if they look like spam or not. You need a <a href="http://wordpress.com/api-keys/">WordPress.com API key</a> to use it. You can review the spam it catches under "Comments." To show off your Akismet stats just put <code><?php akismet_counter(); ?></code> in your template. See also: <a href="http://wordpress.org/extend/plugins/stats/">WP Stats plugin</a>. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
6 |
Version: 2.2.6 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
7 |
Author: Matt Mullenweg |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
8 |
Author URI: http://ma.tt/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
9 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
10 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
11 |
define('AKISMET_VERSION', '2.2.6'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
12 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
13 |
// If you hardcode a WP.com API key here, all key config screens will be hidden |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
14 |
if ( defined('WPCOM_API_KEY') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
15 |
$wpcom_api_key = constant('WPCOM_API_KEY'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
16 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
17 |
$wpcom_api_key = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
18 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
19 |
function akismet_init() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
20 |
global $wpcom_api_key, $akismet_api_host, $akismet_api_port; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
21 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
22 |
if ( $wpcom_api_key ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
23 |
$akismet_api_host = $wpcom_api_key . '.rest.akismet.com'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
24 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
25 |
$akismet_api_host = get_option('wordpress_api_key') . '.rest.akismet.com'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
26 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
27 |
$akismet_api_port = 80; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
28 |
add_action('admin_menu', 'akismet_config_page'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
29 |
add_action('admin_menu', 'akismet_stats_page'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
30 |
akismet_admin_warnings(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
31 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
32 |
add_action('init', 'akismet_init'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
33 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
34 |
function akismet_admin_init() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
35 |
if ( function_exists( 'get_plugin_page_hook' ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
36 |
$hook = get_plugin_page_hook( 'akismet-stats-display', 'index.php' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
37 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
38 |
$hook = 'dashboard_page_akismet-stats-display'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
39 |
add_action('admin_head-'.$hook, 'akismet_stats_script'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
40 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
41 |
add_action('admin_init', 'akismet_admin_init'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
42 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
43 |
if ( !function_exists('wp_nonce_field') ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
44 |
function akismet_nonce_field($action = -1) { return; } |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
45 |
$akismet_nonce = -1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
46 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
47 |
function akismet_nonce_field($action = -1) { return wp_nonce_field($action); } |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
48 |
$akismet_nonce = 'akismet-update-key'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
49 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
50 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
51 |
if ( !function_exists('number_format_i18n') ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
52 |
function number_format_i18n( $number, $decimals = null ) { return number_format( $number, $decimals ); } |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
53 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
54 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
55 |
function akismet_config_page() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
56 |
if ( function_exists('add_submenu_page') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
57 |
add_submenu_page('plugins.php', __('Akismet Configuration'), __('Akismet Configuration'), 'manage_options', 'akismet-key-config', 'akismet_conf'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
58 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
59 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
60 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
61 |
function akismet_conf() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
62 |
global $akismet_nonce, $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
63 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
64 |
if ( isset($_POST['submit']) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
65 |
if ( function_exists('current_user_can') && !current_user_can('manage_options') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
66 |
die(__('Cheatin’ uh?')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
67 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
68 |
check_admin_referer( $akismet_nonce ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
69 |
$key = preg_replace( '/[^a-h0-9]/i', '', $_POST['key'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
70 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
71 |
if ( empty($key) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
72 |
$key_status = 'empty'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
73 |
$ms[] = 'new_key_empty'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
74 |
delete_option('wordpress_api_key'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
75 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
76 |
$key_status = akismet_verify_key( $key ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
77 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
78 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
79 |
if ( $key_status == 'valid' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
80 |
update_option('wordpress_api_key', $key); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
81 |
$ms[] = 'new_key_valid'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
82 |
} else if ( $key_status == 'invalid' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
83 |
$ms[] = 'new_key_invalid'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
84 |
} else if ( $key_status == 'failed' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
85 |
$ms[] = 'new_key_failed'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
86 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
87 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
88 |
if ( isset( $_POST['akismet_discard_month'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
89 |
update_option( 'akismet_discard_month', 'true' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
90 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
91 |
update_option( 'akismet_discard_month', 'false' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
92 |
} elseif ( isset($_POST['check']) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
93 |
akismet_get_server_connectivity(0); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
94 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
95 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
96 |
if ( $key_status != 'valid' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
97 |
$key = get_option('wordpress_api_key'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
98 |
if ( empty( $key ) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
99 |
if ( $key_status != 'failed' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
100 |
if ( akismet_verify_key( '1234567890ab' ) == 'failed' ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
101 |
$ms[] = 'no_connection'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
102 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
103 |
$ms[] = 'key_empty'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
104 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
105 |
$key_status = 'empty'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
106 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
107 |
$key_status = akismet_verify_key( $key ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
108 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
109 |
if ( $key_status == 'valid' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
110 |
$ms[] = 'key_valid'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
111 |
} else if ( $key_status == 'invalid' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
112 |
delete_option('wordpress_api_key'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
113 |
$ms[] = 'key_empty'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
114 |
} else if ( !empty($key) && $key_status == 'failed' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
115 |
$ms[] = 'key_failed'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
116 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
117 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
118 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
119 |
$messages = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
120 |
'new_key_empty' => array('color' => 'aa0', 'text' => __('Your key has been cleared.')), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
121 |
'new_key_valid' => array('color' => '2d2', 'text' => __('Your key has been verified. Happy blogging!')), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
122 |
'new_key_invalid' => array('color' => 'd22', 'text' => __('The key you entered is invalid. Please double-check it.')), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
123 |
'new_key_failed' => array('color' => 'd22', 'text' => __('The key you entered could not be verified because a connection to akismet.com could not be established. Please check your server configuration.')), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
124 |
'no_connection' => array('color' => 'd22', 'text' => __('There was a problem connecting to the Akismet server. Please check your server configuration.')), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
125 |
'key_empty' => array('color' => 'aa0', 'text' => sprintf(__('Please enter an API key. (<a href="%s" style="color:#fff">Get your key.</a>)'), 'http://wordpress.com/profile/')), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
126 |
'key_valid' => array('color' => '2d2', 'text' => __('This key is valid.')), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
127 |
'key_failed' => array('color' => 'aa0', 'text' => __('The key below was previously validated but a connection to akismet.com can not be established at this time. Please check your server configuration.'))); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
128 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
129 |
<?php if ( !empty($_POST['submit'] ) ) : ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
130 |
<div id="message" class="updated fade"><p><strong><?php _e('Options saved.') ?></strong></p></div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
131 |
<?php endif; ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
132 |
<div class="wrap"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
133 |
<h2><?php _e('Akismet Configuration'); ?></h2> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
134 |
<div class="narrow"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
135 |
<form action="" method="post" id="akismet-conf" style="margin: auto; width: 400px; "> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
136 |
<?php if ( !$wpcom_api_key ) { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
137 |
<p><?php printf(__('For many people, <a href="%1$s">Akismet</a> will greatly reduce or even completely eliminate the comment and trackback spam you get on your site. If one does happen to get through, simply mark it as "spam" on the moderation screen and Akismet will learn from the mistakes. If you don\'t have a WordPress.com account yet, you can get one at <a href="%2$s">WordPress.com</a>.'), 'http://akismet.com/', 'http://wordpress.com/api-keys/'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
138 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
139 |
<?php akismet_nonce_field($akismet_nonce) ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
140 |
<h3><label for="key"><?php _e('WordPress.com API Key'); ?></label></h3> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
141 |
<?php foreach ( $ms as $m ) : ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
142 |
<p style="padding: .5em; background-color: #<?php echo $messages[$m]['color']; ?>; color: #fff; font-weight: bold;"><?php echo $messages[$m]['text']; ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
143 |
<?php endforeach; ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
144 |
<p><input id="key" name="key" type="text" size="15" maxlength="12" value="<?php echo get_option('wordpress_api_key'); ?>" style="font-family: 'Courier New', Courier, mono; font-size: 1.5em;" /> (<?php _e('<a href="http://faq.wordpress.com/2005/10/19/api-key/">What is this?</a>'); ?>)</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
145 |
<?php if ( $invalid_key ) { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
146 |
<h3><?php _e('Why might my key be invalid?'); ?></h3> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
147 |
<p><?php _e('This can mean one of two things, either you copied the key wrong or that the plugin is unable to reach the Akismet servers, which is most often caused by an issue with your web host around firewalls or similar.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
148 |
<?php } ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
149 |
<?php } ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
150 |
<p><label><input name="akismet_discard_month" id="akismet_discard_month" value="true" type="checkbox" <?php if ( get_option('akismet_discard_month') == 'true' ) echo ' checked="checked" '; ?> /> <?php _e('Automatically discard spam comments on posts older than a month.'); ?></label></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
151 |
<p class="submit"><input type="submit" name="submit" value="<?php _e('Update options »'); ?>" /></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
152 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
153 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
154 |
<form action="" method="post" id="akismet-connectivity" style="margin: auto; width: 400px; "> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
155 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
156 |
<h3><?php _e('Server Connectivity'); ?></h3> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
157 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
158 |
$servers = akismet_get_server_connectivity(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
159 |
$fail_count = count($servers) - count( array_filter($servers) ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
160 |
if ( is_array($servers) && count($servers) > 0 ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
161 |
// some connections work, some fail |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
162 |
if ( $fail_count > 0 && $fail_count < count($servers) ) { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
163 |
<p style="padding: .5em; background-color: #aa0; color: #fff; font-weight:bold;"><?php _e('Unable to reach some Akismet servers.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
164 |
<p><?php echo sprintf( __('A network problem or firewall is blocking some connections from your web server to Akismet.com. Akismet is working but this may cause problems during times of network congestion. Please contact your web host or firewall administrator and give them <a href="%s" target="_blank">this information about Akismet and firewalls</a>.'), 'http://blog.akismet.com/akismet-hosting-faq/'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
165 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
166 |
// all connections fail |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
167 |
} elseif ( $fail_count > 0 ) { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
168 |
<p style="padding: .5em; background-color: #d22; color: #fff; font-weight:bold;"><?php _e('Unable to reach any Akismet servers.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
169 |
<p><?php echo sprintf( __('A network problem or firewall is blocking all connections from your web server to Akismet.com. <strong>Akismet cannot work correctly until this is fixed.</strong> Please contact your web host or firewall administrator and give them <a href="%s" target="_blank">this information about Akismet and firewalls</a>.'), 'http://blog.akismet.com/akismet-hosting-faq/'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
170 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
171 |
// all connections work |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
172 |
} else { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
173 |
<p style="padding: .5em; background-color: #2d2; color: #fff; font-weight:bold;"><?php _e('All Akismet servers are available.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
174 |
<p><?php _e('Akismet is working correctly. All servers are accessible.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
175 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
176 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
177 |
} elseif ( !is_callable('fsockopen') ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
178 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
179 |
<p style="padding: .5em; background-color: #d22; color: #fff; font-weight:bold;"><?php _e('Network functions are disabled.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
180 |
<p><?php echo sprintf( __('Your web host or server administrator has disabled PHP\'s <code>fsockopen</code> function. <strong>Akismet cannot work correctly until this is fixed.</strong> Please contact your web host or firewall administrator and give them <a href="%s" target="_blank">this information about Akismet\'s system requirements</a>.'), 'http://blog.akismet.com/akismet-hosting-faq/'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
181 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
182 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
183 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
184 |
<p style="padding: .5em; background-color: #d22; color: #fff; font-weight:bold;"><?php _e('Unable to find Akismet servers.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
185 |
<p><?php echo sprintf( __('A DNS problem or firewall is preventing all access from your web server to Akismet.com. <strong>Akismet cannot work correctly until this is fixed.</strong> Please contact your web host or firewall administrator and give them <a href="%s" target="_blank">this information about Akismet and firewalls</a>.'), 'http://blog.akismet.com/akismet-hosting-faq/'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
186 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
187 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
188 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
189 |
if ( !empty($servers) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
190 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
191 |
<table style="width: 100%;"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
192 |
<thead><th><?php _e('Akismet server'); ?></th><th><?php _e('Network Status'); ?></th></thead> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
193 |
<tbody> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
194 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
195 |
asort($servers); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
196 |
foreach ( $servers as $ip => $status ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
197 |
$color = ( $status ? '#2d2' : '#d22'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
198 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
199 |
<tr> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
200 |
<td><?php echo htmlspecialchars($ip); ?></td> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
201 |
<td style="padding: 0 .5em; font-weight:bold; color: #fff; background-color: <?php echo $color; ?>"><?php echo ($status ? __('No problems') : __('Obstructed') ); ?></td> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
202 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
203 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
204 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
205 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
206 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
207 |
</tbody> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
208 |
</table> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
209 |
<p><?php if ( get_option('akismet_connectivity_time') ) echo sprintf( __('Last checked %s ago.'), human_time_diff( get_option('akismet_connectivity_time') ) ); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
210 |
<p class="submit"><input type="submit" name="check" value="<?php _e('Check network status »'); ?>" /></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
211 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
212 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
213 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
214 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
215 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
216 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
217 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
218 |
function akismet_stats_page() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
219 |
if ( function_exists('add_submenu_page') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
220 |
add_submenu_page('index.php', __('Akismet Stats'), __('Akismet Stats'), 'manage_options', 'akismet-stats-display', 'akismet_stats_display'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
221 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
222 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
223 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
224 |
function akismet_stats_script() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
225 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
226 |
<script type="text/javascript"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
227 |
function resizeIframe() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
228 |
var height = document.documentElement.clientHeight; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
229 |
height -= document.getElementById('akismet-stats-frame').offsetTop; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
230 |
height += 100; // magic padding |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
231 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
232 |
document.getElementById('akismet-stats-frame').style.height = height +"px"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
233 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
234 |
}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
235 |
function resizeIframeInit() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
236 |
document.getElementById('akismet-stats-frame').onload = resizeIframe; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
237 |
window.onresize = resizeIframe; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
238 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
239 |
addLoadEvent(resizeIframeInit); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
240 |
</script><?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
241 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
242 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
243 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
244 |
function akismet_stats_display() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
245 |
global $akismet_api_host, $akismet_api_port, $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
246 |
$blog = urlencode( get_option('home') ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
247 |
$url = "http://".akismet_get_key().".web.akismet.com/1.0/user-stats.php?blog={$blog}"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
248 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
249 |
<div class="wrap"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
250 |
<iframe src="<?php echo $url; ?>" width="100%" height="100%" frameborder="0" id="akismet-stats-frame"></iframe> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
251 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
252 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
253 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
254 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
255 |
function akismet_get_key() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
256 |
global $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
257 |
if ( !empty($wpcom_api_key) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
258 |
return $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
259 |
return get_option('wordpress_api_key'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
260 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
261 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
262 |
function akismet_verify_key( $key, $ip = null ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
263 |
global $akismet_api_host, $akismet_api_port, $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
264 |
$blog = urlencode( get_option('home') ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
265 |
if ( $wpcom_api_key ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
266 |
$key = $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
267 |
$response = akismet_http_post("key=$key&blog=$blog", 'rest.akismet.com', '/1.1/verify-key', $akismet_api_port, $ip); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
268 |
if ( !is_array($response) || !isset($response[1]) || $response[1] != 'valid' && $response[1] != 'invalid' ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
269 |
return 'failed'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
270 |
return $response[1]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
271 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
272 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
273 |
// Check connectivity between the WordPress blog and Akismet's servers. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
274 |
// Returns an associative array of server IP addresses, where the key is the IP address, and value is true (available) or false (unable to connect). |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
275 |
function akismet_check_server_connectivity() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
276 |
global $akismet_api_host, $akismet_api_port, $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
277 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
278 |
$test_host = 'rest.akismet.com'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
279 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
280 |
// Some web hosts may disable one or both functions |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
281 |
if ( !is_callable('fsockopen') || !is_callable('gethostbynamel') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
282 |
return array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
283 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
284 |
$ips = gethostbynamel($test_host); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
285 |
if ( !$ips || !is_array($ips) || !count($ips) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
286 |
return array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
287 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
288 |
$servers = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
289 |
foreach ( $ips as $ip ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
290 |
$response = akismet_verify_key( akismet_get_key(), $ip ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
291 |
// even if the key is invalid, at least we know we have connectivity |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
292 |
if ( $response == 'valid' || $response == 'invalid' ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
293 |
$servers[$ip] = true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
294 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
295 |
$servers[$ip] = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
296 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
297 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
298 |
return $servers; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
299 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
300 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
301 |
// Check the server connectivity and store the results in an option. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
302 |
// Cached results will be used if not older than the specified timeout in seconds; use $cache_timeout = 0 to force an update. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
303 |
// Returns the same associative array as akismet_check_server_connectivity() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
304 |
function akismet_get_server_connectivity( $cache_timeout = 86400 ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
305 |
$servers = get_option('akismet_available_servers'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
306 |
if ( (time() - get_option('akismet_connectivity_time') < $cache_timeout) && $servers !== false ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
307 |
return $servers; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
308 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
309 |
// There's a race condition here but the effect is harmless. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
310 |
$servers = akismet_check_server_connectivity(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
311 |
update_option('akismet_available_servers', $servers); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
312 |
update_option('akismet_connectivity_time', time()); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
313 |
return $servers; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
314 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
315 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
316 |
// Returns true if server connectivity was OK at the last check, false if there was a problem that needs to be fixed. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
317 |
function akismet_server_connectivity_ok() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
318 |
// skip the check on WPMU because the status page is hidden |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
319 |
global $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
320 |
if ( $wpcom_api_key ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
321 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
322 |
$servers = akismet_get_server_connectivity(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
323 |
return !( empty($servers) || !count($servers) || count( array_filter($servers) ) < count($servers) ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
324 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
325 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
326 |
function akismet_admin_warnings() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
327 |
global $wpcom_api_key; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
328 |
if ( !get_option('wordpress_api_key') && !$wpcom_api_key && !isset($_POST['submit']) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
329 |
function akismet_warning() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
330 |
echo " |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
331 |
<div id='akismet-warning' class='updated fade'><p><strong>".__('Akismet is almost ready.')."</strong> ".sprintf(__('You must <a href="%1$s">enter your WordPress.com API key</a> for it to work.'), "plugins.php?page=akismet-key-config")."</p></div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
332 |
"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
333 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
334 |
add_action('admin_notices', 'akismet_warning'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
335 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
336 |
} elseif ( get_option('akismet_connectivity_time') && empty($_POST) && is_admin() && !akismet_server_connectivity_ok() ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
337 |
function akismet_warning() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
338 |
echo " |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
339 |
<div id='akismet-warning' class='updated fade'><p><strong>".__('Akismet has detected a problem.')."</strong> ".sprintf(__('A server or network problem is preventing Akismet from working correctly. <a href="%1$s">Click here for more information</a> about how to fix the problem.'), "plugins.php?page=akismet-key-config")."</p></div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
340 |
"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
341 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
342 |
add_action('admin_notices', 'akismet_warning'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
343 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
344 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
345 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
346 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
347 |
function akismet_get_host($host) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
348 |
// if all servers are accessible, just return the host name. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
349 |
// if not, return an IP that was known to be accessible at the last check. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
350 |
if ( akismet_server_connectivity_ok() ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
351 |
return $host; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
352 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
353 |
$ips = akismet_get_server_connectivity(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
354 |
// a firewall may be blocking access to some Akismet IPs |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
355 |
if ( count($ips) > 0 && count(array_filter($ips)) < count($ips) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
356 |
// use DNS to get current IPs, but exclude any known to be unreachable |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
357 |
$dns = (array)gethostbynamel( rtrim($host, '.') . '.' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
358 |
$dns = array_filter($dns); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
359 |
foreach ( $dns as $ip ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
360 |
if ( array_key_exists( $ip, $ips ) && empty( $ips[$ip] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
361 |
unset($dns[$ip]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
362 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
363 |
// return a random IP from those available |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
364 |
if ( count($dns) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
365 |
return $dns[ array_rand($dns) ]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
366 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
367 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
368 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
369 |
// if all else fails try the host name |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
370 |
return $host; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
371 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
372 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
373 |
// Returns array with headers in $response[0] and body in $response[1] |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
374 |
function akismet_http_post($request, $host, $path, $port = 80, $ip=null) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
375 |
global $wp_version; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
376 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
377 |
$akismet_version = constant('AKISMET_VERSION'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
378 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
379 |
$http_request = "POST $path HTTP/1.0\r\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
380 |
$http_request .= "Host: $host\r\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
381 |
$http_request .= "Content-Type: application/x-www-form-urlencoded; charset=" . get_option('blog_charset') . "\r\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
382 |
$http_request .= "Content-Length: " . strlen($request) . "\r\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
383 |
$http_request .= "User-Agent: WordPress/$wp_version | Akismet/$akismet_version\r\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
384 |
$http_request .= "\r\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
385 |
$http_request .= $request; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
386 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
387 |
$http_host = $host; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
388 |
// use a specific IP if provided - needed by akismet_check_server_connectivity() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
389 |
if ( $ip && long2ip(ip2long($ip)) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
390 |
$http_host = $ip; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
391 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
392 |
$http_host = akismet_get_host($host); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
393 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
394 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
395 |
$response = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
396 |
if( false != ( $fs = @fsockopen($http_host, $port, $errno, $errstr, 10) ) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
397 |
fwrite($fs, $http_request); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
398 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
399 |
while ( !feof($fs) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
400 |
$response .= fgets($fs, 1160); // One TCP-IP packet |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
401 |
fclose($fs); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
402 |
$response = explode("\r\n\r\n", $response, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
403 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
404 |
return $response; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
405 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
406 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
407 |
// filter handler used to return a spam result to pre_comment_approved |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
408 |
function akismet_result_spam( $approved ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
409 |
// bump the counter here instead of when the filter is added to reduce the possibility of overcounting |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
410 |
if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
411 |
update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
412 |
return 'spam'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
413 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
414 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
415 |
function akismet_auto_check_comment( $comment ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
416 |
global $akismet_api_host, $akismet_api_port; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
417 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
418 |
$comment['user_ip'] = preg_replace( '/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
419 |
$comment['user_agent'] = $_SERVER['HTTP_USER_AGENT']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
420 |
$comment['referrer'] = $_SERVER['HTTP_REFERER']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
421 |
$comment['blog'] = get_option('home'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
422 |
$comment['blog_lang'] = get_locale(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
423 |
$comment['blog_charset'] = get_option('blog_charset'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
424 |
$comment['permalink'] = get_permalink($comment['comment_post_ID']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
425 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
426 |
$ignore = array( 'HTTP_COOKIE' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
427 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
428 |
foreach ( $_SERVER as $key => $value ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
429 |
if ( !in_array( $key, $ignore ) && is_string($value) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
430 |
$comment["$key"] = $value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
431 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
432 |
$query_string = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
433 |
foreach ( $comment as $key => $data ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
434 |
$query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
435 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
436 |
$response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
437 |
if ( 'true' == $response[1] ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
438 |
// akismet_spam_count will be incremented later by akismet_result_spam() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
439 |
add_filter('pre_comment_approved', 'akismet_result_spam'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
440 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
441 |
do_action( 'akismet_spam_caught' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
442 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
443 |
$post = get_post( $comment['comment_post_ID'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
444 |
$last_updated = strtotime( $post->post_modified_gmt ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
445 |
$diff = time() - $last_updated; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
446 |
$diff = $diff / 86400; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
447 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
448 |
if ( $post->post_type == 'post' && $diff > 30 && get_option( 'akismet_discard_month' ) == 'true' ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
449 |
// akismet_result_spam() won't be called so bump the counter here |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
450 |
if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
451 |
update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
452 |
die; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
453 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
454 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
455 |
akismet_delete_old(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
456 |
return $comment; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
457 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
458 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
459 |
function akismet_delete_old() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
460 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
461 |
$now_gmt = current_time('mysql', 1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
462 |
$wpdb->query("DELETE FROM $wpdb->comments WHERE DATE_SUB('$now_gmt', INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam'"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
463 |
$n = mt_rand(1, 5000); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
464 |
if ( $n == 11 ) // lucky number |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
465 |
$wpdb->query("OPTIMIZE TABLE $wpdb->comments"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
466 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
467 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
468 |
function akismet_submit_nonspam_comment ( $comment_id ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
469 |
global $wpdb, $akismet_api_host, $akismet_api_port, $current_user, $current_site; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
470 |
$comment_id = (int) $comment_id; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
471 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
472 |
$comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID = '$comment_id'"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
473 |
if ( !$comment ) // it was deleted |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
474 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
475 |
$comment->blog = get_option('home'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
476 |
$comment->blog_lang = get_locale(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
477 |
$comment->blog_charset = get_option('blog_charset'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
478 |
$comment->permalink = get_permalink($comment->comment_post_ID); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
479 |
if ( is_object($current_user) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
480 |
$comment->reporter = $current_user->user_login; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
481 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
482 |
if ( is_object($current_site) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
483 |
$comment->site_domain = $current_site->domain; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
484 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
485 |
$query_string = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
486 |
foreach ( $comment as $key => $data ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
487 |
$query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
488 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
489 |
$response = akismet_http_post($query_string, $akismet_api_host, "/1.1/submit-ham", $akismet_api_port); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
490 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
491 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
492 |
function akismet_submit_spam_comment ( $comment_id ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
493 |
global $wpdb, $akismet_api_host, $akismet_api_port, $current_user, $current_site; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
494 |
$comment_id = (int) $comment_id; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
495 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
496 |
$comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID = '$comment_id'"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
497 |
if ( !$comment ) // it was deleted |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
498 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
499 |
if ( 'spam' != $comment->comment_approved ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
500 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
501 |
$comment->blog = get_option('home'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
502 |
$comment->blog_lang = get_locale(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
503 |
$comment->blog_charset = get_option('blog_charset'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
504 |
$comment->permalink = get_permalink($comment->comment_post_ID); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
505 |
if ( is_object($current_user) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
506 |
$comment->reporter = $current_user->user_login; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
507 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
508 |
if ( is_object($current_site) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
509 |
$comment->site_domain = $current_site->domain; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
510 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
511 |
$query_string = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
512 |
foreach ( $comment as $key => $data ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
513 |
$query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
514 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
515 |
$response = akismet_http_post($query_string, $akismet_api_host, "/1.1/submit-spam", $akismet_api_port); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
516 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
517 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
518 |
add_action('wp_set_comment_status', 'akismet_submit_spam_comment'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
519 |
add_action('edit_comment', 'akismet_submit_spam_comment'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
520 |
add_action('preprocess_comment', 'akismet_auto_check_comment', 1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
521 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
522 |
function akismet_spamtoham( $comment ) { akismet_submit_nonspam_comment( $comment->comment_ID ); } |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
523 |
add_filter( 'comment_spam_to_approved', 'akismet_spamtoham' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
524 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
525 |
// Total spam in queue |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
526 |
// get_option( 'akismet_spam_count' ) is the total caught ever |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
527 |
function akismet_spam_count( $type = false ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
528 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
529 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
530 |
if ( !$type ) { // total |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
531 |
$count = wp_cache_get( 'akismet_spam_count', 'widget' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
532 |
if ( false === $count ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
533 |
if ( function_exists('wp_count_comments') ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
534 |
$count = wp_count_comments(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
535 |
$count = $count->spam; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
536 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
537 |
$count = (int) $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = 'spam'"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
538 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
539 |
wp_cache_set( 'akismet_spam_count', $count, 'widget', 3600 ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
540 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
541 |
return $count; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
542 |
} elseif ( 'comments' == $type || 'comment' == $type ) { // comments |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
543 |
$type = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
544 |
} else { // pingback, trackback, ... |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
545 |
$type = $wpdb->escape( $type ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
546 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
547 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
548 |
return (int) $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_type='$type'"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
549 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
550 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
551 |
function akismet_spam_comments( $type = false, $page = 1, $per_page = 50 ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
552 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
553 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
554 |
$page = (int) $page; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
555 |
if ( $page < 2 ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
556 |
$page = 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
557 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
558 |
$per_page = (int) $per_page; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
559 |
if ( $per_page < 1 ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
560 |
$per_page = 50; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
561 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
562 |
$start = ( $page - 1 ) * $per_page; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
563 |
$end = $start + $per_page; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
564 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
565 |
if ( $type ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
566 |
if ( 'comments' == $type || 'comment' == $type ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
567 |
$type = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
568 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
569 |
$type = $wpdb->escape( $type ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
570 |
return $wpdb->get_results( "SELECT * FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_type='$type' ORDER BY comment_date DESC LIMIT $start, $end"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
571 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
572 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
573 |
// All |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
574 |
return $wpdb->get_results( "SELECT * FROM $wpdb->comments WHERE comment_approved = 'spam' ORDER BY comment_date DESC LIMIT $start, $end"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
575 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
576 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
577 |
// Totals for each comment type |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
578 |
// returns array( type => count, ... ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
579 |
function akismet_spam_totals() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
580 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
581 |
$totals = $wpdb->get_results( "SELECT comment_type, COUNT(*) AS cc FROM $wpdb->comments WHERE comment_approved = 'spam' GROUP BY comment_type" ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
582 |
$return = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
583 |
foreach ( $totals as $total ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
584 |
$return[$total->comment_type ? $total->comment_type : 'comment'] = $total->cc; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
585 |
return $return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
586 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
587 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
588 |
function akismet_manage_page() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
589 |
global $wpdb, $submenu, $wp_db_version; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
590 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
591 |
// WP 2.7 has its own spam management page |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
592 |
if ( 8645 <= $wp_db_version ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
593 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
594 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
595 |
$count = sprintf(__('Akismet Spam (%s)'), akismet_spam_count()); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
596 |
if ( isset( $submenu['edit-comments.php'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
597 |
add_submenu_page('edit-comments.php', __('Akismet Spam'), $count, 'moderate_comments', 'akismet-admin', 'akismet_caught' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
598 |
elseif ( function_exists('add_management_page') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
599 |
add_management_page(__('Akismet Spam'), $count, 'moderate_comments', 'akismet-admin', 'akismet_caught'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
600 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
601 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
602 |
function akismet_caught() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
603 |
global $wpdb, $comment, $akismet_caught, $akismet_nonce; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
604 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
605 |
akismet_recheck_queue(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
606 |
if (isset($_POST['submit']) && 'recover' == $_POST['action'] && ! empty($_POST['not_spam'])) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
607 |
check_admin_referer( $akismet_nonce ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
608 |
if ( function_exists('current_user_can') && !current_user_can('moderate_comments') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
609 |
die(__('You do not have sufficient permission to moderate comments.')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
610 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
611 |
$i = 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
612 |
foreach ($_POST['not_spam'] as $comment): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
613 |
$comment = (int) $comment; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
614 |
if ( function_exists('wp_set_comment_status') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
615 |
wp_set_comment_status($comment, 'approve'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
616 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
617 |
$wpdb->query("UPDATE $wpdb->comments SET comment_approved = '1' WHERE comment_ID = '$comment'"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
618 |
akismet_submit_nonspam_comment($comment); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
619 |
++$i; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
620 |
endforeach; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
621 |
$to = add_query_arg( 'recovered', $i, $_SERVER['HTTP_REFERER'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
622 |
wp_redirect( $to ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
623 |
exit; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
624 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
625 |
if ('delete' == $_POST['action']) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
626 |
check_admin_referer( $akismet_nonce ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
627 |
if ( function_exists('current_user_can') && !current_user_can('moderate_comments') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
628 |
die(__('You do not have sufficient permission to moderate comments.')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
629 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
630 |
$delete_time = $wpdb->escape( $_POST['display_time'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
631 |
$nuked = $wpdb->query( "DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' AND '$delete_time' > comment_date_gmt" ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
632 |
wp_cache_delete( 'akismet_spam_count', 'widget' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
633 |
$to = add_query_arg( 'deleted', 'all', $_SERVER['HTTP_REFERER'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
634 |
wp_redirect( $to ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
635 |
exit; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
636 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
637 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
638 |
if ( isset( $_GET['recovered'] ) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
639 |
$i = (int) $_GET['recovered']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
640 |
echo '<div class="updated"><p>' . sprintf(__('%1$s comments recovered.'), $i) . "</p></div>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
641 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
642 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
643 |
if (isset( $_GET['deleted'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
644 |
echo '<div class="updated"><p>' . __('All spam deleted.') . '</p></div>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
645 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
646 |
if ( isset( $GLOBALS['submenu']['edit-comments.php'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
647 |
$link = 'edit-comments.php'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
648 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
649 |
$link = 'edit.php'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
650 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
651 |
<style type="text/css"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
652 |
.akismet-tabs { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
653 |
list-style: none; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
654 |
margin: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
655 |
padding: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
656 |
clear: both; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
657 |
border-bottom: 1px solid #ccc; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
658 |
height: 31px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
659 |
margin-bottom: 20px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
660 |
background: #ddd; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
661 |
border-top: 1px solid #bdbdbd; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
662 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
663 |
.akismet-tabs li { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
664 |
float: left; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
665 |
margin: 5px 0 0 20px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
666 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
667 |
.akismet-tabs a { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
668 |
display: block; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
669 |
padding: 4px .5em 3px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
670 |
border-bottom: none; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
671 |
color: #036; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
672 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
673 |
.akismet-tabs .active a { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
674 |
background: #fff; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
675 |
border: 1px solid #ccc; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
676 |
border-bottom: none; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
677 |
color: #000; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
678 |
font-weight: bold; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
679 |
padding-bottom: 4px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
680 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
681 |
#akismetsearch { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
682 |
float: right; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
683 |
margin-top: -.5em; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
684 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
685 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
686 |
#akismetsearch p { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
687 |
margin: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
688 |
padding: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
689 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
690 |
</style> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
691 |
<div class="wrap"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
692 |
<h2><?php _e('Caught Spam') ?></h2> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
693 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
694 |
$count = get_option( 'akismet_spam_count' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
695 |
if ( $count ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
696 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
697 |
<p><?php printf(__('Akismet has caught <strong>%1$s spam</strong> for you since you first installed it.'), number_format_i18n($count) ); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
698 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
699 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
700 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
701 |
$spam_count = akismet_spam_count(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
702 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
703 |
if ( 0 == $spam_count ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
704 |
echo '<p>'.__('You have no spam currently in the queue. Must be your lucky day. :)').'</p>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
705 |
echo '</div>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
706 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
707 |
echo '<p>'.__('You can delete all of the spam from your database with a single click. This operation cannot be undone, so you may wish to check to ensure that no legitimate comments got through first. Spam is automatically deleted after 15 days, so don’t sweat it.').'</p>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
708 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
709 |
<?php if ( !isset( $_POST['s'] ) ) { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
710 |
<form method="post" action="<?php echo attribute_escape( add_query_arg( 'noheader', 'true' ) ); ?>"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
711 |
<?php akismet_nonce_field($akismet_nonce) ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
712 |
<input type="hidden" name="action" value="delete" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
713 |
<?php printf(__('There are currently %1$s comments identified as spam.'), $spam_count); ?> <input type="submit" class="button delete" name="Submit" value="<?php _e('Delete all'); ?>" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
714 |
<input type="hidden" name="display_time" value="<?php echo current_time('mysql', 1); ?>" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
715 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
716 |
<?php } ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
717 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
718 |
<div class="wrap"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
719 |
<?php if ( isset( $_POST['s'] ) ) { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
720 |
<h2><?php _e('Search'); ?></h2> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
721 |
<?php } else { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
722 |
<?php echo '<p>'.__('These are the latest comments identified as spam by Akismet. If you see any mistakes, simply mark the comment as "not spam" and Akismet will learn from the submission. If you wish to recover a comment from spam, simply select the comment, and click Not Spam. After 15 days we clean out the junk for you.').'</p>'; ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
723 |
<?php } ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
724 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
725 |
if ( isset( $_POST['s'] ) ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
726 |
$s = $wpdb->escape($_POST['s']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
727 |
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
728 |
(comment_author LIKE '%$s%' OR |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
729 |
comment_author_email LIKE '%$s%' OR |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
730 |
comment_author_url LIKE ('%$s%') OR |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
731 |
comment_author_IP LIKE ('%$s%') OR |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
732 |
comment_content LIKE ('%$s%') ) AND |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
733 |
comment_approved = 'spam' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
734 |
ORDER BY comment_date DESC"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
735 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
736 |
if ( isset( $_GET['apage'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
737 |
$page = (int) $_GET['apage']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
738 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
739 |
$page = 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
740 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
741 |
if ( $page < 2 ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
742 |
$page = 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
743 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
744 |
$current_type = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
745 |
if ( isset( $_GET['ctype'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
746 |
$current_type = preg_replace( '|[^a-z]|', '', $_GET['ctype'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
747 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
748 |
$comments = akismet_spam_comments( $current_type, $page ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
749 |
$total = akismet_spam_count( $current_type ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
750 |
$totals = akismet_spam_totals(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
751 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
752 |
<ul class="akismet-tabs"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
753 |
<li <?php if ( !isset( $_GET['ctype'] ) ) echo ' class="active"'; ?>><a href="edit-comments.php?page=akismet-admin"><?php _e('All'); ?></a></li> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
754 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
755 |
foreach ( $totals as $type => $type_count ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
756 |
if ( 'comment' == $type ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
757 |
$type = 'comments'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
758 |
$show = __('Comments'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
759 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
760 |
$show = ucwords( $type ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
761 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
762 |
$type_count = number_format_i18n( $type_count ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
763 |
$extra = $current_type === $type ? ' class="active"' : ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
764 |
echo "<li $extra><a href='edit-comments.php?page=akismet-admin&ctype=$type'>$show ($type_count)</a></li>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
765 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
766 |
do_action( 'akismet_tabs' ); // so plugins can add more tabs easily |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
767 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
768 |
</ul> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
769 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
770 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
771 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
772 |
if ($comments) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
773 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
774 |
<form method="post" action="<?php echo attribute_escape("$link?page=akismet-admin"); ?>" id="akismetsearch"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
775 |
<p> <input type="text" name="s" value="<?php if (isset($_POST['s'])) echo attribute_escape($_POST['s']); ?>" size="17" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
776 |
<input type="submit" class="button" name="submit" value="<?php echo attribute_escape(__('Search Spam »')) ?>" /> </p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
777 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
778 |
<?php if ( $total > 50 ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
779 |
$total_pages = ceil( $total / 50 ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
780 |
$r = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
781 |
if ( 1 < $page ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
782 |
$args['apage'] = ( 1 == $page - 1 ) ? '' : $page - 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
783 |
$r .= '<a class="prev" href="' . clean_url(add_query_arg( $args )) . '">'. __('« Previous Page') .'</a>' . "\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
784 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
785 |
if ( ( $total_pages = ceil( $total / 50 ) ) > 1 ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
786 |
for ( $page_num = 1; $page_num <= $total_pages; $page_num++ ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
787 |
if ( $page == $page_num ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
788 |
$r .= "<strong>$page_num</strong>\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
789 |
else : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
790 |
$p = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
791 |
if ( $page_num < 3 || ( $page_num >= $page - 3 && $page_num <= $page + 3 ) || $page_num > $total_pages - 3 ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
792 |
$args['apage'] = ( 1 == $page_num ) ? '' : $page_num; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
793 |
$r .= '<a class="page-numbers" href="' . clean_url(add_query_arg($args)) . '">' . ( $page_num ) . "</a>\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
794 |
$in = true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
795 |
elseif ( $in == true ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
796 |
$r .= "...\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
797 |
$in = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
798 |
endif; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
799 |
endif; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
800 |
endfor; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
801 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
802 |
if ( ( $page ) * 50 < $total || -1 == $total ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
803 |
$args['apage'] = $page + 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
804 |
$r .= '<a class="next" href="' . clean_url(add_query_arg($args)) . '">'. __('Next Page »') .'</a>' . "\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
805 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
806 |
echo "<p>$r</p>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
807 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
808 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
809 |
<?php } ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
810 |
<form style="clear: both;" method="post" action="<?php echo attribute_escape( add_query_arg( 'noheader', 'true' ) ); ?>"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
811 |
<?php akismet_nonce_field($akismet_nonce) ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
812 |
<input type="hidden" name="action" value="recover" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
813 |
<ul id="spam-list" class="commentlist" style="list-style: none; margin: 0; padding: 0;"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
814 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
815 |
$i = 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
816 |
foreach($comments as $comment) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
817 |
$i++; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
818 |
$comment_date = mysql2date(get_option("date_format") . " @ " . get_option("time_format"), $comment->comment_date); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
819 |
$post = get_post($comment->comment_post_ID); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
820 |
$post_title = $post->post_title; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
821 |
if ($i % 2) $class = 'class="alternate"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
822 |
else $class = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
823 |
echo "\n\t<li id='comment-$comment->comment_ID' $class>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
824 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
825 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
826 |
<p><strong><?php comment_author() ?></strong> <?php if ($comment->comment_author_email) { ?>| <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_url && 'http://' != $comment->comment_author_url) { ?> | <?php comment_author_url_link() ?> <?php } ?>| <?php _e('IP:') ?> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
827 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
828 |
<?php comment_text() ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
829 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
830 |
<p><label for="spam-<?php echo $comment->comment_ID; ?>"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
831 |
<input type="checkbox" id="spam-<?php echo $comment->comment_ID; ?>" name="not_spam[]" value="<?php echo $comment->comment_ID; ?>" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
832 |
<?php _e('Not Spam') ?></label> — <?php comment_date('M j, g:i A'); ?> — [ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
833 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
834 |
$post = get_post($comment->comment_post_ID); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
835 |
$post_title = wp_specialchars( $post->post_title, 'double' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
836 |
$post_title = ('' == $post_title) ? "# $comment->comment_post_ID" : $post_title; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
837 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
838 |
<a href="<?php echo get_permalink($comment->comment_post_ID); ?>" title="<?php echo $post_title; ?>"><?php _e('View Post') ?></a> ] </p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
839 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
840 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
841 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
842 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
843 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
844 |
</ul> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
845 |
<?php if ( $total > 50 ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
846 |
$total_pages = ceil( $total / 50 ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
847 |
$r = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
848 |
if ( 1 < $page ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
849 |
$args['apage'] = ( 1 == $page - 1 ) ? '' : $page - 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
850 |
$r .= '<a class="prev" href="' . clean_url(add_query_arg( $args )) . '">'. __('« Previous Page') .'</a>' . "\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
851 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
852 |
if ( ( $total_pages = ceil( $total / 50 ) ) > 1 ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
853 |
for ( $page_num = 1; $page_num <= $total_pages; $page_num++ ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
854 |
if ( $page == $page_num ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
855 |
$r .= "<strong>$page_num</strong>\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
856 |
else : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
857 |
$p = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
858 |
if ( $page_num < 3 || ( $page_num >= $page - 3 && $page_num <= $page + 3 ) || $page_num > $total_pages - 3 ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
859 |
$args['apage'] = ( 1 == $page_num ) ? '' : $page_num; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
860 |
$r .= '<a class="page-numbers" href="' . clean_url(add_query_arg($args)) . '">' . ( $page_num ) . "</a>\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
861 |
$in = true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
862 |
elseif ( $in == true ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
863 |
$r .= "...\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
864 |
$in = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
865 |
endif; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
866 |
endif; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
867 |
endfor; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
868 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
869 |
if ( ( $page ) * 50 < $total || -1 == $total ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
870 |
$args['apage'] = $page + 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
871 |
$r .= '<a class="next" href="' . clean_url(add_query_arg($args)) . '">'. __('Next Page »') .'</a>' . "\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
872 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
873 |
echo "<p>$r</p>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
874 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
875 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
876 |
<p class="submit"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
877 |
<input type="submit" name="submit" value="<?php echo attribute_escape(__('De-spam marked comments »')); ?>" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
878 |
</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
879 |
<p><?php _e('Comments you de-spam will be submitted to Akismet as mistakes so it can learn and get better.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
880 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
881 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
882 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
883 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
884 |
<p><?php _e('No results found.'); ?></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
885 |
<?php } ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
886 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
887 |
<?php if ( !isset( $_POST['s'] ) ) { ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
888 |
<form method="post" action="<?php echo attribute_escape( add_query_arg( 'noheader', 'true' ) ); ?>"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
889 |
<?php akismet_nonce_field($akismet_nonce) ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
890 |
<p><input type="hidden" name="action" value="delete" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
891 |
<?php printf(__('There are currently %1$s comments identified as spam.'), $spam_count); ?> <input type="submit" name="Submit" class="button" value="<?php echo attribute_escape(__('Delete all')); ?>" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
892 |
<input type="hidden" name="display_time" value="<?php echo current_time('mysql', 1); ?>" /></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
893 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
894 |
<?php } ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
895 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
896 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
897 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
898 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
899 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
900 |
add_action('admin_menu', 'akismet_manage_page'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
901 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
902 |
// WP < 2.5 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
903 |
function akismet_stats() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
904 |
if ( !function_exists('did_action') || did_action( 'rightnow_end' ) ) // We already displayed this info in the "Right Now" section |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
905 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
906 |
if ( !$count = get_option('akismet_spam_count') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
907 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
908 |
$path = plugin_basename(__FILE__); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
909 |
echo '<h3>'.__('Spam').'</h3>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
910 |
global $submenu; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
911 |
if ( isset( $submenu['edit-comments.php'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
912 |
$link = 'edit-comments.php'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
913 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
914 |
$link = 'edit.php'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
915 |
echo '<p>'.sprintf(__('<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.'), 'http://akismet.com/', clean_url("$link?page=akismet-admin"), number_format_i18n($count) ).'</p>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
916 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
917 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
918 |
add_action('activity_box_end', 'akismet_stats'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
919 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
920 |
// WP 2.5+ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
921 |
function akismet_rightnow() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
922 |
global $submenu, $wp_db_version; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
923 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
924 |
if ( 8645 < $wp_db_version ) // 2.7 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
925 |
$link = 'edit-comments.php?comment_status=spam'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
926 |
elseif ( isset( $submenu['edit-comments.php'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
927 |
$link = 'edit-comments.php?page=akismet-admin'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
928 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
929 |
$link = 'edit.php?page=akismet-admin'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
930 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
931 |
if ( $count = get_option('akismet_spam_count') ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
932 |
$intro = sprintf( __ngettext( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
933 |
'<a href="%1$s">Akismet</a> has protected your site from %2$s spam comment already,', |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
934 |
'<a href="%1$s">Akismet</a> has protected your site from %2$s spam comments already,', |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
935 |
$count |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
936 |
), 'http://akismet.com/', number_format_i18n( $count ) ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
937 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
938 |
$intro = sprintf( __('<a href="%1$s">Akismet</a> blocks spam from getting to your blog,'), 'http://akismet.com/' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
939 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
940 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
941 |
if ( $queue_count = akismet_spam_count() ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
942 |
$queue_text = sprintf( __ngettext( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
943 |
'and there\'s <a href="%2$s">%1$s comment</a> in your spam queue right now.', |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
944 |
'and there are <a href="%2$s">%1$s comments</a> in your spam queue right now.', |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
945 |
$queue_count |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
946 |
), number_format_i18n( $queue_count ), clean_url($link) ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
947 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
948 |
$queue_text = sprintf( __( "but there's nothing in your <a href='%1\$s'>spam queue</a> at the moment." ), clean_url($link) ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
949 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
950 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
951 |
$text = sprintf( _c( '%1$s %2$s|akismet_rightnow' ), $intro, $queue_text ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
952 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
953 |
echo "<p class='akismet-right-now'>$text</p>\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
954 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
955 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
956 |
add_action('rightnow_end', 'akismet_rightnow'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
957 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
958 |
// For WP <= 2.3.x |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
959 |
if ( 'moderation.php' == $pagenow ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
960 |
function akismet_recheck_button( $page ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
961 |
global $submenu; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
962 |
if ( isset( $submenu['edit-comments.php'] ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
963 |
$link = 'edit-comments.php'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
964 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
965 |
$link = 'edit.php'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
966 |
$button = "<a href='$link?page=akismet-admin&recheckqueue=true&noheader=true' style='display: block; width: 100px; position: absolute; right: 7%; padding: 5px; font-size: 14px; text-decoration: underline; background: #fff; border: 1px solid #ccc;'>" . __('Recheck Queue for Spam') . "</a>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
967 |
$page = str_replace( '<div class="wrap">', '<div class="wrap">' . $button, $page ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
968 |
return $page; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
969 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
970 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
971 |
if ( $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'" ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
972 |
ob_start( 'akismet_recheck_button' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
973 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
974 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
975 |
// For WP >= 2.5 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
976 |
function akismet_check_for_spam_button($comment_status) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
977 |
if ( 'approved' == $comment_status ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
978 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
979 |
if ( function_exists('plugins_url') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
980 |
$link = 'admin.php?action=akismet_recheck_queue'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
981 |
else |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
982 |
$link = 'edit-comments.php?page=akismet-admin&recheckqueue=true&noheader=true'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
983 |
echo "</div><div class='alignleft'><a class='button-secondary checkforspam' href='$link'>" . __('Check for Spam') . "</a>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
984 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
985 |
add_action('manage_comments_nav', 'akismet_check_for_spam_button'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
986 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
987 |
function akismet_recheck_queue() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
988 |
global $wpdb, $akismet_api_host, $akismet_api_port; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
989 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
990 |
if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
991 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
992 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
993 |
$moderation = $wpdb->get_results( "SELECT * FROM $wpdb->comments WHERE comment_approved = '0'", ARRAY_A ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
994 |
foreach ( (array) $moderation as $c ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
995 |
$c['user_ip'] = $c['comment_author_IP']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
996 |
$c['user_agent'] = $c['comment_agent']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
997 |
$c['referrer'] = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
998 |
$c['blog'] = get_option('home'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
999 |
$c['blog_lang'] = get_locale(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1000 |
$c['blog_charset'] = get_option('blog_charset'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1001 |
$c['permalink'] = get_permalink($c['comment_post_ID']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1002 |
$id = (int) $c['comment_ID']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1003 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1004 |
$query_string = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1005 |
foreach ( $c as $key => $data ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1006 |
$query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1007 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1008 |
$response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1009 |
if ( 'true' == $response[1] ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1010 |
$wpdb->query( "UPDATE $wpdb->comments SET comment_approved = 'spam' WHERE comment_ID = $id" ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1011 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1012 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1013 |
wp_redirect( $_SERVER['HTTP_REFERER'] ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1014 |
exit; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1015 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1016 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1017 |
add_action('admin_action_akismet_recheck_queue', 'akismet_recheck_queue'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1018 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1019 |
function akismet_check_db_comment( $id ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1020 |
global $wpdb, $akismet_api_host, $akismet_api_port; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1021 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1022 |
$id = (int) $id; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1023 |
$c = $wpdb->get_row( "SELECT * FROM $wpdb->comments WHERE comment_ID = '$id'", ARRAY_A ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1024 |
if ( !$c ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1025 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1026 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1027 |
$c['user_ip'] = $c['comment_author_IP']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1028 |
$c['user_agent'] = $c['comment_agent']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1029 |
$c['referrer'] = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1030 |
$c['blog'] = get_option('home'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1031 |
$c['blog_lang'] = get_locale(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1032 |
$c['blog_charset'] = get_option('blog_charset'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1033 |
$c['permalink'] = get_permalink($c['comment_post_ID']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1034 |
$id = $c['comment_ID']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1035 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1036 |
$query_string = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1037 |
foreach ( $c as $key => $data ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1038 |
$query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1039 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1040 |
$response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1041 |
return $response[1]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1042 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1043 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1044 |
// This option causes tons of FPs, was removed in 2.1 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1045 |
function akismet_kill_proxy_check( $option ) { return 0; } |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1046 |
add_filter('option_open_proxy_check', 'akismet_kill_proxy_check'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1047 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1048 |
// Widget stuff |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1049 |
function widget_akismet_register() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1050 |
if ( function_exists('register_sidebar_widget') ) : |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1051 |
function widget_akismet($args) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1052 |
extract($args); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1053 |
$options = get_option('widget_akismet'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1054 |
$count = number_format_i18n(get_option('akismet_spam_count')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1055 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1056 |
<?php echo $before_widget; ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1057 |
<?php echo $before_title . $options['title'] . $after_title; ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1058 |
<div id="akismetwrap"><div id="akismetstats"><a id="aka" href="http://akismet.com" title=""><?php printf( __( '%1$s %2$sspam comments%3$s %4$sblocked by%5$s<br />%6$sAkismet%7$s' ), '<div id="akismet1"><span id="akismetcount">' . $count . '</span>', '<span id="akismetsc">', '</span></div>', '<div id="akismet2"><span id="akismetbb">', '</span>', '<span id="akismeta">', '</span></div>' ); ?></a></div></div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1059 |
<?php echo $after_widget; ?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1060 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1061 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1062 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1063 |
function widget_akismet_style() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1064 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1065 |
<style type="text/css"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1066 |
#aka,#aka:link,#aka:hover,#aka:visited,#aka:active{color:#fff;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1067 |
#aka:hover{border:none;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1068 |
#aka:hover #akismet1{display:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1069 |
#aka:hover #akismet2,#akismet1{display:block} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1070 |
#akismet2{display:none;padding-top:2px} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1071 |
#akismeta{font-size:16px;font-weight:bold;line-height:18px;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1072 |
#akismetcount{display:block;font:15px Verdana,Arial,Sans-Serif;font-weight:bold;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1073 |
#akismetwrap #akismetstats{background:url(<?php echo get_option('siteurl'); ?>/wp-content/plugins/akismet/akismet.gif) no-repeat top left;border:none;color:#fff;font:11px 'Trebuchet MS','Myriad Pro',sans-serif;height:40px;line-height:100%;overflow:hidden;padding:8px 0 0;text-align:center;width:120px} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1074 |
</style> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1075 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1076 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1077 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1078 |
function widget_akismet_control() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1079 |
$options = $newoptions = get_option('widget_akismet'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1080 |
if ( $_POST["akismet-submit"] ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1081 |
$newoptions['title'] = strip_tags(stripslashes($_POST["akismet-title"])); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1082 |
if ( empty($newoptions['title']) ) $newoptions['title'] = 'Spam Blocked'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1083 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1084 |
if ( $options != $newoptions ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1085 |
$options = $newoptions; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1086 |
update_option('widget_akismet', $options); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1087 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1088 |
$title = htmlspecialchars($options['title'], ENT_QUOTES); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1089 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1090 |
<p><label for="akismet-title"><?php _e('Title:'); ?> <input style="width: 250px;" id="akismet-title" name="akismet-title" type="text" value="<?php echo $title; ?>" /></label></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1091 |
<input type="hidden" id="akismet-submit" name="akismet-submit" value="1" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1092 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1093 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1094 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1095 |
register_sidebar_widget('Akismet', 'widget_akismet', null, 'akismet'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1096 |
register_widget_control('Akismet', 'widget_akismet_control', null, 75, 'akismet'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1097 |
if ( is_active_widget('widget_akismet') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1098 |
add_action('wp_head', 'widget_akismet_style'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1099 |
endif; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1100 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1101 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1102 |
add_action('init', 'widget_akismet_register'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1103 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1104 |
// Counter for non-widget users |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1105 |
function akismet_counter() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1106 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1107 |
<style type="text/css"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1108 |
#akismetwrap #aka,#aka:link,#aka:hover,#aka:visited,#aka:active{color:#fff;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1109 |
#aka:hover{border:none;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1110 |
#aka:hover #akismet1{display:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1111 |
#aka:hover #akismet2,#akismet1{display:block} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1112 |
#akismet2{display:none;padding-top:2px} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1113 |
#akismeta{font-size:16px;font-weight:bold;line-height:18px;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1114 |
#akismetcount{display:block;font:15px Verdana,Arial,Sans-Serif;font-weight:bold;text-decoration:none} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1115 |
#akismetwrap #akismetstats{background:url(<?php echo get_option('siteurl'); ?>/wp-content/plugins/akismet/akismet.gif) no-repeat top left;border:none;color:#fff;font:11px 'Trebuchet MS','Myriad Pro',sans-serif;height:40px;line-height:100%;overflow:hidden;padding:8px 0 0;text-align:center;width:120px} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1116 |
</style> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1117 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1118 |
$count = number_format_i18n(get_option('akismet_spam_count')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1119 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1120 |
<div id="akismetwrap"><div id="akismetstats"><a id="aka" href="http://akismet.com" title=""><div id="akismet1"><span id="akismetcount"><?php echo $count; ?></span> <span id="akismetsc"><?php _e('spam comments') ?></span></div> <div id="akismet2"><span id="akismetbb"><?php _e('blocked by') ?></span><br /><span id="akismeta">Akismet</span></div></a></div></div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1121 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1122 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1123 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1124 |
?> |