laipower/wp-content/plugins/subscribe2/classes/class-s2-counter-widget.php

120 lines
6.5 KiB
PHP

<?php
class S2_Counter_Widget extends WP_Widget {
/**
* Declares the S2_Counter_widget class.
*/
public function __construct() {
$widget_options = array(
'classname' => 's2_counter',
'description' => esc_html__( 'Subscriber Counter widget for Subscribe2', 'subscribe2' ),
'customize_selective_refresh' => true,
);
$control_options = array(
'width' => 250,
'height' => 500,
);
parent::__construct( 's2_counter', esc_html__( 'Subscribe2 Counter', 'subscribe2' ), $widget_options, $control_options );
}
/**
* Displays the Widget
*/
public function widget( $args, $instance ) {
$title = empty( $instance['title'] ) ? 'Subscriber Count' : $instance['title'];
$s2w_bg = empty( $instance['s2w_bg'] ) ? '#e3dacf' : $instance['s2w_bg'];
$s2w_fg = empty( $instance['s2w_fg'] ) ? '#345797' : $instance['s2w_fg'];
$s2w_width = empty( $instance['s2w_width'] ) ? '82' : $instance['s2w_width'];
$s2w_height = empty( $instance['s2w_height'] ) ? '16' : $instance['s2w_height'];
$s2w_font = empty( $instance['s2w_font'] ) ? '11' : $instance['s2w_font'];
echo wp_kses_post( $args['before_widget'] );
if ( ! empty( $title ) ) {
echo wp_kses_post( $args['before_title'] ) . esc_html( $title ) . wp_kses_post( $args['after_title'] );
}
global $mysubscribe2;
$registered = $mysubscribe2->get_registered();
$confirmed = $mysubscribe2->get_public();
$count = ( count( $registered ) + count( $confirmed ) );
echo wp_kses_post( '<ul><div style="text-align:center; background-color:' . $s2w_bg . '; color:' . $s2w_fg . '; width:' . $s2w_width . 'px; height:' . $s2w_height . 'px; font:' . $s2w_font . 'pt Verdana, Arial, Helvetica, sans-serif; vertical-align:middle; padding:3px; border:1px solid #444;">' );
echo esc_html( $count );
echo '</div></ul>';
echo wp_kses_post( $args['after_widget'] );
}
/**
* Saves the widgets settings.
*/
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) );
$instance['s2w_bg'] = wp_strip_all_tags( stripslashes( $new_instance['s2w_bg'] ) );
$instance['s2w_fg'] = wp_strip_all_tags( stripslashes( $new_instance['s2w_fg'] ) );
$instance['s2w_width'] = wp_strip_all_tags( stripslashes( $new_instance['s2w_width'] ) );
$instance['s2w_height'] = wp_strip_all_tags( stripslashes( $new_instance['s2w_height'] ) );
$instance['s2w_font'] = wp_strip_all_tags( stripslashes( $new_instance['s2w_font'] ) );
return $instance;
}
/**
* Creates the edit form for the widget.
*/
public function form( $instance ) {
// set some defaults
$options = get_option( 'widget_s2counter' );
if ( false === $options ) {
$defaults = array(
'title' => 'Subscriber Count',
's2w_bg' => '#e3dacf',
's2w_fg' => '#345797',
's2w_width' => '82',
's2w_height' => '16',
's2w_font' => '11',
);
} else {
$defaults = array(
'title' => $options['title'],
's2w_bg' => $options['s2w_bg'],
's2w_fg' => $options['s2w_fg'],
's2w_width' => $options['s2w_width'],
's2w_height' => $options['s2w_height'],
's2w_font' => $options['s2w_font'],
);
delete_option( 'widget_s2counter' );
}
$instance = wp_parse_args( (array) $instance, $defaults );
// Be sure you format your options to be valid HTML attributes.
$s2w_title = htmlspecialchars( $instance['title'], ENT_QUOTES );
$s2w_bg = htmlspecialchars( $instance['s2w_bg'], ENT_QUOTES );
$s2w_fg = htmlspecialchars( $instance['s2w_fg'], ENT_QUOTES );
$s2w_width = htmlspecialchars( $instance['s2w_width'], ENT_QUOTES );
$s2w_height = htmlspecialchars( $instance['s2w_height'], ENT_QUOTES );
$s2w_font = htmlspecialchars( $instance['s2w_font'], ENT_QUOTES );
echo '<div>' . "\r\n";
echo '<fieldset><legend><label for="' . esc_attr( $this->get_field_id( 'title' ) ) . '">' . esc_html__( 'Widget Title', 'subscribe2' ) . '</label></legend>' . "\r\n";
echo '<input type="text" name="' . esc_attr( $this->get_field_name( 'title' ) ) . '" id="' . esc_attr( $this->get_field_id( 'title' ) ) . '" value="' . esc_attr( $s2w_title ) . '" />' . "\r\n";
echo '</fieldset>' . "\r\n";
echo '<fieldset>' . "\r\n";
echo '<legend>' . esc_html__( 'Color Scheme', 'subscribe2' ) . '</legend>' . "\r\n";
echo '<label>' . "\r\n";
echo '<input type="text" name="' . esc_attr( $this->get_field_name( 's2w_bg' ) ) . '" id="' . esc_attr( $this->get_field_id( 's2w_bg' ) ) . '" maxlength="6" value="' . esc_attr( $s2w_bg ) . '" class="colorpickerField" style="width:60px;" /> ' . esc_html__( 'Body', 'subscribe2' ) . '</label><br>' . "\r\n";
echo '<label>' . "\r\n";
echo '<input type="text" name="' . esc_attr( $this->get_field_name( 's2w_fg' ) ) . '" id="' . esc_attr( $this->get_field_id( 's2w_fg' ) ) . '" maxlength="6" value="' . esc_attr( $s2w_fg ) . '" class="colorpickerField" style="width:60px;" /> ' . esc_html__( 'Text', 'subscribe2' ) . '</label><br>' . "\r\n";
echo '<div class="s2_colorpicker" id ="' . esc_attr( $this->get_field_id( 's2_colorpicker' ) ) . '"></div>';
echo '</fieldset>';
echo '<fieldset>' . "\r\n";
echo '<legend>' . esc_html__( 'Width, Height and Font Size', 'subscribe2' ) . '</legend>' . "\r\n";
echo '<table style="border:0; padding:0; margin:0 0 12px 0; border-collapse:collapse;" align="center">' . "\r\n";
echo '<tr><td><label for="' . esc_attr( $this->get_field_id( 's2w_width' ) ) . '">' . esc_html__( 'Width', 'subscribe2' ) . '</label></td>' . "\r\n";
echo '<td><input type="text" name="' . esc_attr( $this->get_field_name( 's2w_width' ) ) . '" id="' . esc_attr( $this->get_field_id( 's2w_width' ) ) . '" value="' . esc_attr( $s2w_width ) . '" /></td></tr>' . "\r\n";
echo '<tr><td><label for="' . esc_attr( $this->get_field_id( 's2w_height' ) ) . '">' . esc_html__( 'Height', 'subscribe2' ) . '</label></td>' . "\r\n";
echo '<td><input type="text" name="' . esc_attr( $this->get_field_name( 's2w_height' ) ) . '" id="' . esc_attr( $this->get_field_id( 's2w_height' ) ) . '" value="' . esc_attr( $s2w_height ) . '" /></td></tr>' . "\r\n";
echo '<tr><td><label for="' . esc_attr( $this->get_field_id( 's2w_font' ) ) . '">' . esc_html__( 'Font', 'subscribe2' ) . '</label></td>' . "\r\n";
echo '<td><input type="text" name="' . esc_attr( $this->get_field_name( 's2w_font' ) ) . '" id="' . esc_attr( $this->get_field_id( 's2w_font' ) ) . '" value="' . esc_attr( $s2w_font ) . '" /></td></tr>' . "\r\n";
echo '</table></fieldset></div>' . "\r\n";
}
}// end S2_Counter_widget class