120 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			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
 |