summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/akismet/widget.php')
-rw-r--r--plugins/akismet/widget.php156
1 files changed, 87 insertions, 69 deletions
diff --git a/plugins/akismet/widget.php b/plugins/akismet/widget.php
index e9a3f626..8c5a120f 100644
--- a/plugins/akismet/widget.php
+++ b/plugins/akismet/widget.php
@@ -2,89 +2,107 @@
/**
* @package Akismet
*/
-// Widget stuff
-function widget_akismet_register() {
- if ( function_exists('register_sidebar_widget') ) :
- function widget_akismet($args) {
- extract($args);
- $options = get_option('widget_akismet');
- $count = get_option('akismet_spam_count');
- ?>
- <?php echo $before_widget; ?>
- <?php echo $before_title . $options['title'] . $after_title; ?>
- <div id="akismetwrap"><div id="akismetstats"><a id="aka" href="http://akismet.com" title=""><?php printf( _n( '%1$s%2$s%3$s %4$sspam comment%5$s %6$sblocked by%7$s<br />%8$sAkismet%9$s', '%1$s%2$s%3$s %4$sspam comments%5$s %6$sblocked by%7$s<br />%8$sAkismet%9$s', $count ), '<span id="akismet1"><span id="akismetcount">', number_format_i18n( $count ), '</span>', '<span id="akismetsc">', '</span></span>', '<span id="akismet2"><span id="akismetbb">', '</span>', '<span id="akismeta">', '</span></span>' ); ?></a></div></div>
- <?php echo $after_widget; ?>
- <?php
+class Akismet_Widget extends WP_Widget {
+
+ function __construct() {
+ parent::__construct(
+ 'akismet_widget',
+ __( 'Akismet Widget' ),
+ array( 'description' => __( 'Display the number of spam comments Akismet has caught' ) )
+ );
+
+ if ( is_active_widget( false, false, $this->id_base ) ) {
+ add_action( 'wp_head', array( $this, 'css' ) );
+ }
}
- function widget_akismet_style() {
- $plugin_dir = '/wp-content/plugins';
- if ( defined( 'PLUGINDIR' ) )
- $plugin_dir = '/' . PLUGINDIR;
+ function css() {
+?>
- ?>
<style type="text/css">
-#aka,#aka:link,#aka:hover,#aka:visited,#aka:active{color:#fff;text-decoration:none}
-#aka:hover{border:none;text-decoration:none}
-#aka:hover #akismet1{display:none}
-#aka:hover #akismet2,#akismet1{display:block}
-#akismet2{display:none;padding-top:2px}
-#akismeta{font-size:16px;font-weight:bold;line-height:18px;text-decoration:none}
-#akismetcount{display:block;font:15px Verdana,Arial,Sans-Serif;font-weight:bold;text-decoration:none}
-#akismetwrap #akismetstats{background:url(<?php echo get_option('siteurl'), $plugin_dir; ?>/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}
+.a-stats {
+ width: auto;
+}
+.a-stats a {
+ background: #7CA821;
+ background-image:-moz-linear-gradient(0% 100% 90deg,#5F8E14,#7CA821);
+ background-image:-webkit-gradient(linear,0% 0,0% 100%,from(#7CA821),to(#5F8E14));
+ border: 1px solid #5F8E14;
+ border-radius:3px;
+ color: #CFEA93;
+ cursor: pointer;
+ display: block;
+ font-weight: normal;
+ height: 100%;
+ -moz-border-radius:3px;
+ padding: 7px 0 8px;
+ text-align: center;
+ text-decoration: none;
+ -webkit-border-radius:3px;
+ width: 100%;
+}
+.a-stats a:hover {
+ text-decoration: none;
+ background-image:-moz-linear-gradient(0% 100% 90deg,#6F9C1B,#659417);
+ background-image:-webkit-gradient(linear,0% 0,0% 100%,from(#659417),to(#6F9C1B));
+}
+.a-stats .count {
+ color: #FFF;
+ display: block;
+ font-size: 15px;
+ line-height: 16px;
+ padding: 0 13px;
+ white-space: nowrap;
+}
</style>
- <?php
+
+<?php
}
- function widget_akismet_control() {
- $options = $newoptions = get_option('widget_akismet');
- if ( isset( $_POST['akismet-submit'] ) && $_POST["akismet-submit"] ) {
- $newoptions['title'] = strip_tags(stripslashes($_POST["akismet-title"]));
- if ( empty($newoptions['title']) ) $newoptions['title'] = __('Spam Blocked');
+ function form( $instance ) {
+ if ( $instance ) {
+ $title = esc_attr( $instance['title'] );
}
- if ( $options != $newoptions ) {
- $options = $newoptions;
- update_option('widget_akismet', $options);
+ else {
+ $title = __( 'Spam Blocked' );
}
- $title = htmlspecialchars($options['title'], ENT_QUOTES);
- ?>
- <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>
- <input type="hidden" id="akismet-submit" name="akismet-submit" value="1" />
- <?php
- }
+?>
- if ( function_exists( 'wp_register_sidebar_widget' ) ) {
- wp_register_sidebar_widget( 'akismet', 'Akismet', 'widget_akismet', null, 'akismet');
- wp_register_widget_control( 'akismet', 'Akismet', 'widget_akismet_control', null, 75, 'akismet');
- } else {
- register_sidebar_widget('Akismet', 'widget_akismet', null, 'akismet');
- register_widget_control('Akismet', 'widget_akismet_control', null, 75, 'akismet');
+ <p>
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
+ <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>" />
+ </p>
+
+<?php
}
- if ( is_active_widget('widget_akismet') )
- add_action('wp_head', 'widget_akismet_style');
- endif;
-}
-add_action('init', 'widget_akismet_register');
+ function update( $new_instance, $old_instance ) {
+ $instance['title'] = strip_tags( $new_instance['title'] );
+ return $instance;
+ }
-// Counter for non-widget users
-function akismet_counter() {
- $plugin_dir = '/wp-content/plugins';
- if ( defined( 'PLUGINDIR' ) )
- $plugin_dir = '/' . PLUGINDIR;
+ function widget( $args, $instance ) {
+ $count = get_option( 'akismet_spam_count' );
+ echo $args['before_widget'];
+ if ( ! empty( $instance['title'] ) ) {
+ echo $args['before_title'];
+ echo esc_html( $instance['title'] );
+ echo $args['after_title'];
+ }
?>
-<style type="text/css">
-#akismetwrap #aka,#aka:link,#aka:hover,#aka:visited,#aka:active{color:#fff;text-decoration:none}
-#aka:hover{border:none;text-decoration:none}
-#aka:hover #akismet1{display:none}
-#aka:hover #akismet2,#akismet1{display:block}
-#akismet2{display:none;padding-top:2px}
-#akismeta{font-size:16px;font-weight:bold;line-height:18px;text-decoration:none}
-#akismetcount{display:block;font:15px Verdana,Arial,Sans-Serif;font-weight:bold;text-decoration:none}
-#akismetwrap #akismetstats{background:url(<?php echo get_option('siteurl'), $plugin_dir; ?>/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}
-</style>
+
+ <div class="a-stats">
+ <a href="http://akismet.com" target="_blank" title=""><?php printf( _n( '<strong class="count">%1$s spam</strong> blocked by <strong>Akismet</strong>', '<strong class="count">%1$s spam</strong> blocked by <strong>Akismet</strong>', $count ), number_format_i18n( $count ) ); ?></a>
+ </div>
+
<?php
-$count = get_option('akismet_spam_count');
-printf( _n( '<div id="akismetwrap"><div id="akismetstats"><a id="aka" href="http://akismet.com" title=""><div id="akismet1"><span id="akismetcount">%1$s</span> <span id="akismetsc">spam comment</span></div> <div id="akismet2"><span id="akismetbb">blocked by</span><br /><span id="akismeta">Akismet</span></div></a></div></div>', '<div id="akismetwrap"><div id="akismetstats"><a id="aka" href="http://akismet.com" title=""><div id="akismet1"><span id="akismetcount">%1$s</span> <span id="akismetsc">spam comments</span></div> <div id="akismet2"><span id="akismetbb">blocked by</span><br /><span id="akismeta">Akismet</span></div></a></div></div>', $count ), number_format_i18n( $count ) );
+ echo $args['after_widget'];
+ }
}
+
+function akismet_register_widgets() {
+ register_widget( 'Akismet_Widget' );
+}
+
+add_action( 'widgets_init', 'akismet_register_widgets' );