0) { if (!empty($_POST['url'])) { $antispamextra_spamcount = get_option('antispamextra_spamcount'); $antispamextra_spamcount++; update_option('antispamextra_spamcount', $antispamextra_spamcount); if (get_option('antispamextra_spam_response_mode')) { header('HTTP/1.1 403 Forbidden'); die(get_option('antispamextra_message')); } else die(); } } } // No comments without proper HTTP referer function check_referrer() { if (get_option('antispamextra_disallow_nonreferers')) { if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] == '' || strpos($_SERVER['HTTP_REFERER'], get_option('siteurl')) < 0) { $antispamextra_spamcount = get_option('antispamextra_spamcount'); $antispamextra_spamcount++; update_option('antispamextra_spamcount', $antispamextra_spamcount); if (get_option('antispamextra_spam_response_mode')) { header('HTTP/1.1 403 Forbidden'); die(get_option('antispamextra_message')); } else die(); } } } // Disable links in comments function deactivate_comment_urls($comment) { //make_clickable is renamed to followmylinks_make_clickable if you install Follow My Links if (get_option('antispamextra_deactivate_links')) { remove_filter('comment_text', 'make_clickable', 9); $comment = preg_replace('/(.*?)<\/a>/', "\\2", $comment); } return $comment; } // Set commenter website to null even if supplied function no_comment_author_url($comment) { if (get_option('antispamextra_hide_website_input')) { $comment[comment_author_url] = null; } return $comment; } // Disable existing author website URLs function no_comment_url($comment_url) { if (get_option('antispamextra_disable_website')) { $comment_url = null; } return $comment_url; } function init() { if (!is_admin() && get_option('antispamextra_hide_website_input')) { wp_register_script(PLUGIN_NAME, WP_PLUGIN_URL . '/antispam-extra/script.js', array('jquery')); wp_enqueue_script(PLUGIN_NAME); } } /* Plugin options page */ function admin_init() { /* Register our stylesheet. */ wp_register_style( 'antispam-extra.style.admin', WP_PLUGIN_URL . '/antispam-extra/style.admin.css' ); } function admin_menu() { $page = add_options_page('Antispam Extra', 'Antispam Extra', 'administrator', PLUGIN_NAME, array('AntispamExtra', 'options_menu')); /* Using registered $page handle to hook stylesheet loading */ add_action( 'admin_print_styles-' . $page, array('AntispamExtra', 'admin_styles' )); } function admin_styles() { wp_enqueue_style( 'antispam-extra.style.admin' ); } function options_menu() { require_once(PLUGIN_DIR . 'inc/admin.php'); } function notice_update() { echo "

" . __("Antispam options updated.", PLUGIN_NAME) ."

"; } function spamcount() { $spamcount = get_option('antispamextra_spamcount'); if ($spamcount) echo '

Antispam Extra prevented '. $spamcount .' automated spam attempts.

'; } function settings_link($links, $file) { if ($file == PLUGIN_BASENAME) { $settings_link = ''.__('Settings').''; array_unshift( $links, $settings_link ); // before other links } return $links; } // On plugin activation function on_activation() { add_option('antispamextra_hide_website_input', 1, '', 'yes'); add_option('antispamextra_disable_website', 1, '', 'yes'); add_option('antispamextra_deactivate_links', 1, '', 'yes'); add_option('antispamextra_disallow_nonreferers', 1, '', 'yes'); add_option('antispamextra_spam_response_mode', 0, '', 'yes'); add_option('antispamextra_spamcount', 0, '', 'yes'); add_option('antispamextra_message', "Don't spam me, bro!", '', 'yes'); } // On plugin deactivation function on_deactivation() { delete_option('antispamextra_hide_website_input'); delete_option('antispamextra_disable_website'); delete_option('antispamextra_deactivate_links'); delete_option('antispamextra_disallow_nonreferers'); delete_option('antispamextra_spam_response_mode'); delete_option('antispamextra_spamcount'); delete_option('antispamextra_message'); } } // Actions // plugin functionality add_action('wp_print_styles', array('AntispamExtra', 'add_stylesheet')); add_action('check_comment_flood', array('AntispamExtra', 'no_comment_website')); add_action('check_comment_flood', array('AntispamExtra', 'check_referrer')); add_action('preprocess_comment', array('AntispamExtra', 'no_comment_author_url')); add_action('init', array('AntispamExtra', 'init')); add_action('activity_box_end', array('AntispamExtra', 'spamcount')); // plugin options add_action('admin_init', array('AntispamExtra', 'admin_init')); add_action('admin_menu', array('AntispamExtra', 'admin_menu')); add_filter('plugin_action_links', array('AntispamExtra', 'settings_link'), 10, 2); // Filters add_filter('comment_text', array('AntispamExtra', 'deactivate_comment_urls'), 8); add_filter('get_comment_author_url', array('AntispamExtra', 'no_comment_url'), 1); // Activation / deactivation register_activation_hook(PLUGIN_FILE, array('AntispamExtra', 'on_activation')); register_deactivation_hook(PLUGIN_FILE, array('AntispamExtra', 'on_deactivation'));