138 lines
3.1 KiB
PHP
138 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* @package Akismet
|
|
*/
|
|
class Akismet_Widget extends WP_Widget {
|
|
|
|
function __construct() {
|
|
load_plugin_textdomain( 'akismet' );
|
|
|
|
parent::__construct(
|
|
'akismet_widget',
|
|
__( 'Akismet Widget' , 'akismet'),
|
|
array( 'description' => __( 'Display the number of spam comments Akismet has caught' , 'akismet') )
|
|
);
|
|
|
|
if ( is_active_widget( false, false, $this->id_base ) ) {
|
|
add_action( 'wp_head', array( $this, 'css' ) );
|
|
}
|
|
}
|
|
|
|
function css() {
|
|
?>
|
|
|
|
<style type="text/css">
|
|
.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
|
|
}
|
|
|
|
function form( $instance ) {
|
|
if ( $instance && isset( $instance['title'] ) ) {
|
|
$title = $instance['title'];
|
|
}
|
|
else {
|
|
$title = __( 'Spam Blocked' , 'akismet' );
|
|
}
|
|
?>
|
|
|
|
<p>
|
|
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:' , 'akismet'); ?></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 esc_attr( $title ); ?>" />
|
|
</p>
|
|
|
|
<?php
|
|
}
|
|
|
|
function update( $new_instance, $old_instance ) {
|
|
$instance = array();
|
|
$instance['title'] = strip_tags( $new_instance['title'] );
|
|
return $instance;
|
|
}
|
|
|
|
function widget( $args, $instance ) {
|
|
$count = get_option( 'akismet_spam_count' );
|
|
|
|
if ( ! isset( $instance['title'] ) ) {
|
|
$instance['title'] = __( 'Spam Blocked' , 'akismet' );
|
|
}
|
|
|
|
echo $args['before_widget'];
|
|
if ( ! empty( $instance['title'] ) ) {
|
|
echo $args['before_title'];
|
|
echo esc_html( $instance['title'] );
|
|
echo $args['after_title'];
|
|
}
|
|
?>
|
|
|
|
<div class="a-stats">
|
|
<a href="https://akismet.com" target="_blank" rel="noopener" title="">
|
|
<?php
|
|
|
|
echo wp_kses(
|
|
sprintf(
|
|
/* translators: The placeholder is the number of pieces of spam blocked by Akismet. */
|
|
_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,
|
|
'akismet'
|
|
),
|
|
number_format_i18n( $count )
|
|
),
|
|
array(
|
|
'strong' => array(
|
|
'class' => true,
|
|
),
|
|
)
|
|
);
|
|
|
|
?>
|
|
</a>
|
|
</div>
|
|
|
|
<?php
|
|
echo $args['after_widget'];
|
|
}
|
|
}
|
|
|
|
function akismet_register_widgets() {
|
|
register_widget( 'Akismet_Widget' );
|
|
}
|
|
|
|
add_action( 'widgets_init', 'akismet_register_widgets' );
|