wp/wp-includes/default-widgets.php
author ymh <ymh.work@gmail.com>
Wed, 06 Nov 2013 03:21:17 +0000
changeset 0 d970ebf37754
child 5 5e2f62d02dcd
permissions -rw-r--r--
first import
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * Default Widgets
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * @package WordPress
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * @subpackage Widgets
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 * Pages widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
class WP_Widget_Pages extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
		$widget_ops = array('classname' => 'widget_pages', 'description' => __( 'Your site&#8217;s WordPress Pages') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
		parent::__construct('pages', __('Pages'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
		extract( $args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
		$title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Pages' ) : $instance['title'], $instance, $this->id_base);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
		$sortby = empty( $instance['sortby'] ) ? 'menu_order' : $instance['sortby'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
		$exclude = empty( $instance['exclude'] ) ? '' : $instance['exclude'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
		if ( $sortby == 'menu_order' )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
			$sortby = 'menu_order, post_title';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
		$out = wp_list_pages( apply_filters('widget_pages_args', array('title_li' => '', 'echo' => 0, 'sort_column' => $sortby, 'exclude' => $exclude) ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
		if ( !empty( $out ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
			echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
			if ( $title)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
				echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
		?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
		<ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
			<?php echo $out; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
		</ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
		<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
			echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
		if ( in_array( $new_instance['sortby'], array( 'post_title', 'menu_order', 'ID' ) ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
			$instance['sortby'] = $new_instance['sortby'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
			$instance['sortby'] = 'menu_order';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
		$instance['exclude'] = strip_tags( $new_instance['exclude'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
		//Defaults
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
		$instance = wp_parse_args( (array) $instance, array( 'sortby' => 'post_title', 'title' => '', 'exclude' => '') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
		$title = esc_attr( $instance['title'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
		$exclude = esc_attr( $instance['exclude'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
	?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
		<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>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
			<label for="<?php echo $this->get_field_id('sortby'); ?>"><?php _e( 'Sort by:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
			<select name="<?php echo $this->get_field_name('sortby'); ?>" id="<?php echo $this->get_field_id('sortby'); ?>" class="widefat">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
				<option value="post_title"<?php selected( $instance['sortby'], 'post_title' ); ?>><?php _e('Page title'); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
				<option value="menu_order"<?php selected( $instance['sortby'], 'menu_order' ); ?>><?php _e('Page order'); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
				<option value="ID"<?php selected( $instance['sortby'], 'ID' ); ?>><?php _e( 'Page ID' ); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
			</select>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
			<label for="<?php echo $this->get_field_id('exclude'); ?>"><?php _e( 'Exclude:' ); ?></label> <input type="text" value="<?php echo $exclude; ?>" name="<?php echo $this->get_field_name('exclude'); ?>" id="<?php echo $this->get_field_id('exclude'); ?>" class="widefat" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
			<br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
			<small><?php _e( 'Page IDs, separated by commas.' ); ?></small>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
 * Links widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
class WP_Widget_Links extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
		$widget_ops = array('description' => __( "Your blogroll" ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
		parent::__construct('links', __('Links'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
		extract($args, EXTR_SKIP);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
		$show_description = isset($instance['description']) ? $instance['description'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
		$show_name = isset($instance['name']) ? $instance['name'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
		$show_rating = isset($instance['rating']) ? $instance['rating'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
		$show_images = isset($instance['images']) ? $instance['images'] : true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
		$category = isset($instance['category']) ? $instance['category'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
		$orderby = isset( $instance['orderby'] ) ? $instance['orderby'] : 'name';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
		$order = $orderby == 'rating' ? 'DESC' : 'ASC';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
		$limit = isset( $instance['limit'] ) ? $instance['limit'] : -1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
		$before_widget = preg_replace('/id="[^"]*"/','id="%id"', $before_widget);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
		wp_list_bookmarks(apply_filters('widget_links_args', array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
			'title_before' => $before_title, 'title_after' => $after_title,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
			'category_before' => $before_widget, 'category_after' => $after_widget,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
			'show_images' => $show_images, 'show_description' => $show_description,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
			'show_name' => $show_name, 'show_rating' => $show_rating,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
			'category' => $category, 'class' => 'linkcat widget',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
			'orderby' => $orderby, 'order' => $order,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
			'limit' => $limit,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
		)));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
		$new_instance = (array) $new_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
		$instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
		foreach ( $instance as $field => $val ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
			if ( isset($new_instance[$field]) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
				$instance[$field] = 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
		$instance['orderby'] = 'name';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
		if ( in_array( $new_instance['orderby'], array( 'name', 'rating', 'id', 'rand' ) ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
			$instance['orderby'] = $new_instance['orderby'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
		$instance['category'] = intval( $new_instance['category'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
		$instance['limit'] = ! empty( $new_instance['limit'] ) ? intval( $new_instance['limit'] ) : -1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
		//Defaults
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
		$instance = wp_parse_args( (array) $instance, array( 'images' => true, 'name' => true, 'description' => false, 'rating' => false, 'category' => false, 'orderby' => 'name', 'limit' => -1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
		$link_cats = get_terms( 'link_category' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
		if ( ! $limit = intval( $instance['limit'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
			$limit = -1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
		<label for="<?php echo $this->get_field_id('category'); ?>"><?php _e( 'Select Link Category:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
		<select class="widefat" id="<?php echo $this->get_field_id('category'); ?>" name="<?php echo $this->get_field_name('category'); ?>">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
		<option value=""><?php _ex('All Links', 'links widget'); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
		<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
		foreach ( $link_cats as $link_cat ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
			echo '<option value="' . intval( $link_cat->term_id ) . '"'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
				. selected( $instance['category'], $link_cat->term_id, false )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
				. '>' . $link_cat->name . "</option>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
		?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
		</select>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
		<label for="<?php echo $this->get_field_id('orderby'); ?>"><?php _e( 'Sort by:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
		<select name="<?php echo $this->get_field_name('orderby'); ?>" id="<?php echo $this->get_field_id('orderby'); ?>" class="widefat">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
			<option value="name"<?php selected( $instance['orderby'], 'name' ); ?>><?php _e( 'Link title' ); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
			<option value="rating"<?php selected( $instance['orderby'], 'rating' ); ?>><?php _e( 'Link rating' ); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
			<option value="id"<?php selected( $instance['orderby'], 'id' ); ?>><?php _e( 'Link ID' ); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
			<option value="rand"<?php selected( $instance['orderby'], 'rand' ); ?>><?php _ex( 'Random', 'Links widget' ); ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
		</select>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
		<input class="checkbox" type="checkbox" <?php checked($instance['images'], true) ?> id="<?php echo $this->get_field_id('images'); ?>" name="<?php echo $this->get_field_name('images'); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
		<label for="<?php echo $this->get_field_id('images'); ?>"><?php _e('Show Link Image'); ?></label><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
		<input class="checkbox" type="checkbox" <?php checked($instance['name'], true) ?> id="<?php echo $this->get_field_id('name'); ?>" name="<?php echo $this->get_field_name('name'); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
		<label for="<?php echo $this->get_field_id('name'); ?>"><?php _e('Show Link Name'); ?></label><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
		<input class="checkbox" type="checkbox" <?php checked($instance['description'], true) ?> id="<?php echo $this->get_field_id('description'); ?>" name="<?php echo $this->get_field_name('description'); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
		<label for="<?php echo $this->get_field_id('description'); ?>"><?php _e('Show Link Description'); ?></label><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
		<input class="checkbox" type="checkbox" <?php checked($instance['rating'], true) ?> id="<?php echo $this->get_field_id('rating'); ?>" name="<?php echo $this->get_field_name('rating'); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
		<label for="<?php echo $this->get_field_id('rating'); ?>"><?php _e('Show Link Rating'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
		<label for="<?php echo $this->get_field_id('limit'); ?>"><?php _e( 'Number of links to show:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
		<input id="<?php echo $this->get_field_id('limit'); ?>" name="<?php echo $this->get_field_name('limit'); ?>" type="text" value="<?php echo $limit == -1 ? '' : intval( $limit ); ?>" size="3" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
 * Search widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
class WP_Widget_Search extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
		$widget_ops = array('classname' => 'widget_search', 'description' => __( "A search form for your site") );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
		parent::__construct('search', __('Search'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
		extract($args);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
		$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
			echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
		// Use current theme search form if it exists
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
		get_search_form();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
		$instance = wp_parse_args( (array) $instance, array( 'title' => '') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
		$title = $instance['title'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?> <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); ?>" /></label></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
		$new_instance = wp_parse_args((array) $new_instance, array( 'title' => ''));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
 * Archives widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
class WP_Widget_Archives extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
		$widget_ops = array('classname' => 'widget_archive', 'description' => __( 'A monthly archive of your site&#8217;s posts') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
		parent::__construct('archives', __('Archives'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
		extract($args);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
		$c = ! empty( $instance['count'] ) ? '1' : '0';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
		$d = ! empty( $instance['dropdown'] ) ? '1' : '0';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
		$title = apply_filters('widget_title', empty($instance['title']) ? __('Archives') : $instance['title'], $instance, $this->id_base);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
			echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
		if ( $d ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
		<select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'> <option value=""><?php echo esc_attr(__('Select Month')); ?></option> <?php wp_get_archives(apply_filters('widget_archives_dropdown_args', array('type' => 'monthly', 'format' => 'option', 'show_post_count' => $c))); ?> </select>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
		<ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
		<?php wp_get_archives(apply_filters('widget_archives_args', array('type' => 'monthly', 'show_post_count' => $c))); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
		</ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
		$new_instance = wp_parse_args( (array) $new_instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
		$instance['count'] = $new_instance['count'] ? 1 : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
		$instance['dropdown'] = $new_instance['dropdown'] ? 1 : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
		$instance = wp_parse_args( (array) $instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
		$title = strip_tags($instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
		$count = $instance['count'] ? 'checked="checked"' : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
		$dropdown = $instance['dropdown'] ? 'checked="checked"' : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
		<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 esc_attr($title); ?>" /></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
			<input class="checkbox" type="checkbox" <?php echo $dropdown; ?> id="<?php echo $this->get_field_id('dropdown'); ?>" name="<?php echo $this->get_field_name('dropdown'); ?>" /> <label for="<?php echo $this->get_field_id('dropdown'); ?>"><?php _e('Display as dropdown'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
			<br/>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
			<input class="checkbox" type="checkbox" <?php echo $count; ?> id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>" /> <label for="<?php echo $this->get_field_id('count'); ?>"><?php _e('Show post counts'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
 * Meta widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
 * Displays log in/out, RSS feed links, etc.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
class WP_Widget_Meta extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
		$widget_ops = array('classname' => 'widget_meta', 'description' => __( "Log in/out, admin, feed and WordPress links") );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
		parent::__construct('meta', __('Meta'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
		extract($args);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
		$title = apply_filters('widget_title', empty($instance['title']) ? __('Meta') : $instance['title'], $instance, $this->id_base);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
			echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
			<ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
			<?php wp_register(); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
			<li><?php wp_loginout(); ?></li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
			<li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php echo esc_attr(__('Syndicate this site using RSS 2.0')); ?>"><?php _e('Entries <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
			<li><a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php echo esc_attr(__('The latest comments to all posts in RSS')); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
			<?php echo apply_filters( 'widget_meta_poweredby', sprintf( '<li><a href="%s" title="%s">%s</a></li>',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
				esc_url( __( 'http://wordpress.org/' ) ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
				esc_attr__( 'Powered by WordPress, state-of-the-art semantic personal publishing platform.' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
				_x( 'WordPress.org', 'meta widget link text' )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
			) ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
			<?php wp_meta(); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
			</ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
		$instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
		$title = strip_tags($instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
			<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 esc_attr($title); ?>" /></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
 * Calendar widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
class WP_Widget_Calendar extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
		$widget_ops = array('classname' => 'widget_calendar', 'description' => __( 'A calendar of your site&#8217;s posts') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
		parent::__construct('calendar', __('Calendar'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
		extract($args);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
		$title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
			echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
		echo '<div id="calendar_wrap">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
		get_calendar();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
		echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
		$instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
		$title = strip_tags($instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
		<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>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
 * Text widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
class WP_Widget_Text extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
		$widget_ops = array('classname' => 'widget_text', 'description' => __('Arbitrary text or HTML'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
		$control_ops = array('width' => 400, 'height' => 350);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
		parent::__construct('text', __('Text'), $widget_ops, $control_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
		extract($args);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
		$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
		$text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' : $instance['text'], $instance );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
		if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
			<div class="textwidget"><?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
		<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
		if ( current_user_can('unfiltered_html') )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
			$instance['text'] =  $new_instance['text'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
			$instance['text'] = stripslashes( wp_filter_post_kses( addslashes($new_instance['text']) ) ); // wp_filter_post_kses() expects slashed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
		$instance['filter'] = isset($new_instance['filter']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
		$instance = wp_parse_args( (array) $instance, array( 'title' => '', 'text' => '' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
		$title = strip_tags($instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
		$text = esc_textarea($instance['text']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
		<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>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
		<textarea class="widefat" rows="16" cols="20" id="<?php echo $this->get_field_id('text'); ?>" name="<?php echo $this->get_field_name('text'); ?>"><?php echo $text; ?></textarea>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
		<p><input id="<?php echo $this->get_field_id('filter'); ?>" name="<?php echo $this->get_field_name('filter'); ?>" type="checkbox" <?php checked(isset($instance['filter']) ? $instance['filter'] : 0); ?> />&nbsp;<label for="<?php echo $this->get_field_id('filter'); ?>"><?php _e('Automatically add paragraphs'); ?></label></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
 * Categories widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
class WP_Widget_Categories extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
		$widget_ops = array( 'classname' => 'widget_categories', 'description' => __( "A list or dropdown of categories" ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
		parent::__construct('categories', __('Categories'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
		extract( $args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
		$title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
		$c = ! empty( $instance['count'] ) ? '1' : '0';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
		$h = ! empty( $instance['hierarchical'] ) ? '1' : '0';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
		$d = ! empty( $instance['dropdown'] ) ? '1' : '0';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
			echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
		$cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
		if ( $d ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
			$cat_args['show_option_none'] = __('Select Category');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
			wp_dropdown_categories(apply_filters('widget_categories_dropdown_args', $cat_args));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
<script type='text/javascript'>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
/* <![CDATA[ */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
	var dropdown = document.getElementById("cat");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
	function onCatChange() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
		if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
			location.href = "<?php echo home_url(); ?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
	dropdown.onchange = onCatChange;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
/* ]]> */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
</script>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
		<ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
		$cat_args['title_li'] = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
		wp_list_categories(apply_filters('widget_categories_args', $cat_args));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
		</ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
		$instance['count'] = !empty($new_instance['count']) ? 1 : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
		$instance['hierarchical'] = !empty($new_instance['hierarchical']) ? 1 : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
		$instance['dropdown'] = !empty($new_instance['dropdown']) ? 1 : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
		//Defaults
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
		$instance = wp_parse_args( (array) $instance, array( 'title' => '') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
		$title = esc_attr( $instance['title'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
		$count = isset($instance['count']) ? (bool) $instance['count'] :false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
		$hierarchical = isset( $instance['hierarchical'] ) ? (bool) $instance['hierarchical'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
		$dropdown = isset( $instance['dropdown'] ) ? (bool) $instance['dropdown'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
		<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>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
		<p><input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('dropdown'); ?>" name="<?php echo $this->get_field_name('dropdown'); ?>"<?php checked( $dropdown ); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
		<label for="<?php echo $this->get_field_id('dropdown'); ?>"><?php _e( 'Display as dropdown' ); ?></label><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
		<input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>"<?php checked( $count ); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
		<label for="<?php echo $this->get_field_id('count'); ?>"><?php _e( 'Show post counts' ); ?></label><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
		<input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('hierarchical'); ?>" name="<?php echo $this->get_field_name('hierarchical'); ?>"<?php checked( $hierarchical ); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
		<label for="<?php echo $this->get_field_id('hierarchical'); ?>"><?php _e( 'Show hierarchy' ); ?></label></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
 * Recent_Posts widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
class WP_Widget_Recent_Posts extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
		$widget_ops = array('classname' => 'widget_recent_entries', 'description' => __( "The most recent posts on your site") );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
		parent::__construct('recent-posts', __('Recent Posts'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
		$this->alt_option_name = 'widget_recent_entries';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
		add_action( 'save_post', array($this, 'flush_widget_cache') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
		add_action( 'deleted_post', array($this, 'flush_widget_cache') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
		add_action( 'switch_theme', array($this, 'flush_widget_cache') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
	function widget($args, $instance) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
		$cache = wp_cache_get('widget_recent_posts', 'widget');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
		if ( !is_array($cache) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
			$cache = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
		if ( ! isset( $args['widget_id'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
			$args['widget_id'] = $this->id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
		if ( isset( $cache[ $args['widget_id'] ] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
			echo $cache[ $args['widget_id'] ];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
		ob_start();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
		extract($args);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
		$title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Posts' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
		$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
		$number = ( ! empty( $instance['number'] ) ) ? absint( $instance['number'] ) : 10;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
		if ( ! $number )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
 			$number = 10;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
		$show_date = isset( $instance['show_date'] ) ? $instance['show_date'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
		$r = new WP_Query( apply_filters( 'widget_posts_args', array( 'posts_per_page' => $number, 'no_found_rows' => true, 'post_status' => 'publish', 'ignore_sticky_posts' => true ) ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
		if ($r->have_posts()) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
		<?php echo $before_widget; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
		<?php if ( $title ) echo $before_title . $title . $after_title; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
		<ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
		<?php while ( $r->have_posts() ) : $r->the_post(); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
			<li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
				<a href="<?php the_permalink(); ?>"><?php get_the_title() ? the_title() : the_ID(); ?></a>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
			<?php if ( $show_date ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
				<span class="post-date"><?php echo get_the_date(); ?></span>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
			<?php endif; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
			</li>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
		<?php endwhile; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
		</ul>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
		<?php echo $after_widget; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
		// Reset the global $the_post as this query will have stomped on it
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
		wp_reset_postdata();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
		endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
		$cache[$args['widget_id']] = ob_get_flush();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
		wp_cache_set('widget_recent_posts', $cache, 'widget');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
		$instance['number'] = (int) $new_instance['number'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
		$instance['show_date'] = isset( $new_instance['show_date'] ) ? (bool) $new_instance['show_date'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
		$this->flush_widget_cache();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
		$alloptions = wp_cache_get( 'alloptions', 'options' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
		if ( isset($alloptions['widget_recent_entries']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
			delete_option('widget_recent_entries');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
	function flush_widget_cache() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
		wp_cache_delete('widget_recent_posts', 'widget');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
		$title     = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
		$number    = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
		$show_date = isset( $instance['show_date'] ) ? (bool) $instance['show_date'] : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
		<p><label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
		<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>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
		<p><label for="<?php echo $this->get_field_id( 'number' ); ?>"><?php _e( 'Number of posts to show:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
		<input id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>" size="3" /></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
		<p><input class="checkbox" type="checkbox" <?php checked( $show_date ); ?> id="<?php echo $this->get_field_id( 'show_date' ); ?>" name="<?php echo $this->get_field_name( 'show_date' ); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
		<label for="<?php echo $this->get_field_id( 'show_date' ); ?>"><?php _e( 'Display post date?' ); ?></label></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
 * Recent_Comments widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
class WP_Widget_Recent_Comments extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
		$widget_ops = array('classname' => 'widget_recent_comments', 'description' => __( 'The most recent comments' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
		parent::__construct('recent-comments', __('Recent Comments'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
		$this->alt_option_name = 'widget_recent_comments';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
		if ( is_active_widget(false, false, $this->id_base) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
			add_action( 'wp_head', array($this, 'recent_comments_style') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
		add_action( 'comment_post', array($this, 'flush_widget_cache') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
		add_action( 'edit_comment', array($this, 'flush_widget_cache') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
		add_action( 'transition_comment_status', array($this, 'flush_widget_cache') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
	function recent_comments_style() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
		if ( ! current_theme_supports( 'widgets' ) // Temp hack #14876
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
			|| ! apply_filters( 'show_recent_comments_widget_style', true, $this->id_base ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
		?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
	<style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
	function flush_widget_cache() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
		wp_cache_delete('widget_recent_comments', 'widget');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
		global $comments, $comment;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
		$cache = wp_cache_get('widget_recent_comments', 'widget');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
		if ( ! is_array( $cache ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
			$cache = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
		if ( ! isset( $args['widget_id'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
			$args['widget_id'] = $this->id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
		if ( isset( $cache[ $args['widget_id'] ] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
			echo $cache[ $args['widget_id'] ];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
 		extract($args, EXTR_SKIP);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
 		$output = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
		$title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Comments' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
		$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
		$number = ( ! empty( $instance['number'] ) ) ? absint( $instance['number'] ) : 5;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
		if ( ! $number )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
 			$number = 5;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
		$comments = get_comments( apply_filters( 'widget_comments_args', array( 'number' => $number, 'status' => 'approve', 'post_status' => 'publish' ) ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
		$output .= $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
			$output .= $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
		$output .= '<ul id="recentcomments">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
		if ( $comments ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
			// Prime cache for associated posts. (Prime post term cache if we need it for permalinks.)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
			$post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
			_prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
			foreach ( (array) $comments as $comment) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
				$output .=  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
 		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
		$output .= '</ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
		$output .= $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
		echo $output;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
		$cache[$args['widget_id']] = $output;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
		wp_cache_set('widget_recent_comments', $cache, 'widget');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
		$instance = $old_instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
		$instance['title'] = strip_tags($new_instance['title']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
		$instance['number'] = absint( $new_instance['number'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
		$this->flush_widget_cache();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
		$alloptions = wp_cache_get( 'alloptions', 'options' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
		if ( isset($alloptions['widget_recent_comments']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
			delete_option('widget_recent_comments');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
		$title  = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
		$number = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
		<p><label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
		<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>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
		<p><label for="<?php echo $this->get_field_id( 'number' ); ?>"><?php _e( 'Number of comments to show:' ); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
		<input id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>" size="3" /></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
 * RSS widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
class WP_Widget_RSS extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
		$widget_ops = array( 'description' => __('Entries from any RSS or Atom feed') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
		$control_ops = array( 'width' => 400, 'height' => 200 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
		parent::__construct( 'rss', __('RSS'), $widget_ops, $control_ops );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
	function widget($args, $instance) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
		if ( isset($instance['error']) && $instance['error'] )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
		extract($args, EXTR_SKIP);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
		$url = ! empty( $instance['url'] ) ? $instance['url'] : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
		while ( stristr($url, 'http') != $url )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
			$url = substr($url, 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
		if ( empty($url) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
		// self-url destruction sequence
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
		if ( in_array( untrailingslashit( $url ), array( site_url(), home_url() ) ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
		$rss = fetch_feed($url);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
		$title = $instance['title'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
		$desc = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
		$link = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
		if ( ! is_wp_error($rss) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
			$desc = esc_attr(strip_tags(@html_entity_decode($rss->get_description(), ENT_QUOTES, get_option('blog_charset'))));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
			if ( empty($title) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
				$title = esc_html(strip_tags($rss->get_title()));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
			$link = esc_url(strip_tags($rss->get_permalink()));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
			while ( stristr($link, 'http') != $link )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
				$link = substr($link, 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
		if ( empty($title) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
			$title = empty($desc) ? __('Unknown Feed') : $desc;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
		$title = apply_filters('widget_title', $title, $instance, $this->id_base);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
		$url = esc_url(strip_tags($url));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
		$icon = includes_url('images/rss.png');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
			$title = "<a class='rsswidget' href='$url' title='" . esc_attr__( 'Syndicate this content' ) ."'><img style='border:0' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link' title='$desc'>$title</a>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
			echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
		wp_widget_rss_output( $rss, $instance );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
		if ( ! is_wp_error($rss) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
			$rss->__destruct();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
		unset($rss);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
	function update($new_instance, $old_instance) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
		$testurl = ( isset( $new_instance['url'] ) && ( !isset( $old_instance['url'] ) || ( $new_instance['url'] != $old_instance['url'] ) ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
		return wp_widget_rss_process( $new_instance, $testurl );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
	function form($instance) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
		if ( empty($instance) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
			$instance = array( 'title' => '', 'url' => '', 'items' => 10, 'error' => false, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
		$instance['number'] = $this->number;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
		wp_widget_rss_form( $instance );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
 * Display the RSS entries in a list.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   820
 * @since 2.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   821
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   822
 * @param string|array|object $rss RSS url.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   823
 * @param array $args Widget arguments.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
function wp_widget_rss_output( $rss, $args = array() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
	if ( is_string( $rss ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
		$rss = fetch_feed($rss);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
	} elseif ( is_array($rss) && isset($rss['url']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
		$args = $rss;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
		$rss = fetch_feed($rss['url']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
	} elseif ( !is_object($rss) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
	if ( is_wp_error($rss) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
		if ( is_admin() || current_user_can('manage_options') )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
			echo '<p>' . sprintf( __('<strong>RSS Error</strong>: %s'), $rss->get_error_message() ) . '</p>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
	$default_args = array( 'show_author' => 0, 'show_date' => 0, 'show_summary' => 0 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
	$args = wp_parse_args( $args, $default_args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
	extract( $args, EXTR_SKIP );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
	$items = (int) $items;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
	if ( $items < 1 || 20 < $items )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
		$items = 10;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
	$show_summary  = (int) $show_summary;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   849
	$show_author   = (int) $show_author;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   850
	$show_date     = (int) $show_date;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   851
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   852
	if ( !$rss->get_item_quantity() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
		echo '<ul><li>' . __( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</li></ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
		$rss->__destruct();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
		unset($rss);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   858
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
	echo '<ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   860
	foreach ( $rss->get_items(0, $items) as $item ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   861
		$link = $item->get_link();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   862
		while ( stristr($link, 'http') != $link )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
			$link = substr($link, 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
		$link = esc_url(strip_tags($link));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   865
		$title = esc_attr(strip_tags($item->get_title()));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
		if ( empty($title) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
			$title = __('Untitled');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   869
		$desc = str_replace( array("\n", "\r"), ' ', esc_attr( strip_tags( @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option('blog_charset') ) ) ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
		$excerpt = wp_html_excerpt( $desc, 360 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   871
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
		// Append ellipsis. Change existing [...] to [&hellip;].
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
		if ( '[...]' == substr( $excerpt, -5 ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   874
			$excerpt = substr( $excerpt, 0, -5 ) . '[&hellip;]';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   875
		elseif ( '[&hellip;]' != substr( $excerpt, -10 ) && $desc != $excerpt )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   876
			$excerpt .= ' [&hellip;]';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   877
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   878
		$excerpt = esc_html( $excerpt );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   880
		if ( $show_summary ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   881
			$summary = "<div class='rssSummary'>$excerpt</div>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   883
			$summary = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   885
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   886
		$date = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   887
		if ( $show_date ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   888
			$date = $item->get_date( 'U' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   889
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   890
			if ( $date ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   891
				$date = ' <span class="rss-date">' . date_i18n( get_option( 'date_format' ), $date ) . '</span>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   892
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   893
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   894
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   895
		$author = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   896
		if ( $show_author ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   897
			$author = $item->get_author();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   898
			if ( is_object($author) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   899
				$author = $author->get_name();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   900
				$author = ' <cite>' . esc_html( strip_tags( $author ) ) . '</cite>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   901
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   902
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   903
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   904
		if ( $link == '' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   905
			echo "<li>$title{$date}{$summary}{$author}</li>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   906
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   907
			echo "<li><a class='rsswidget' href='$link' title='$desc'>$title</a>{$date}{$summary}{$author}</li>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   909
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
	echo '</ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   911
	$rss->__destruct();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
	unset($rss);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   913
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
 * Display RSS widget options form.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   917
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
 * The options for what fields are displayed for the RSS form are all booleans
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
 * and are as follows: 'url', 'title', 'items', 'show_summary', 'show_author',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
 * 'show_date'.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
 * @since 2.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   923
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   924
 * @param array|string $args Values for input fields.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   925
 * @param array $inputs Override default display options.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   926
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
function wp_widget_rss_form( $args, $inputs = null ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
	$default_inputs = array( 'url' => true, 'title' => true, 'items' => true, 'show_summary' => true, 'show_author' => true, 'show_date' => true );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
	$inputs = wp_parse_args( $inputs, $default_inputs );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
	extract( $args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
	extract( $inputs, EXTR_SKIP );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
	$number = esc_attr( $number );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   935
	$title  = esc_attr( $title );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   936
	$url    = esc_url( $url );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   937
	$items  = (int) $items;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   938
	if ( $items < 1 || 20 < $items )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   939
		$items  = 10;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   940
	$show_summary   = (int) $show_summary;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   941
	$show_author    = (int) $show_author;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   942
	$show_date      = (int) $show_date;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   943
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   944
	if ( !empty($error) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   945
		echo '<p class="widget-error"><strong>' . sprintf( __('RSS Error: %s'), $error) . '</strong></p>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   946
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   947
	if ( $inputs['url'] ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   948
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   949
	<p><label for="rss-url-<?php echo $number; ?>"><?php _e('Enter the RSS feed URL here:'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   950
	<input class="widefat" id="rss-url-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][url]" type="text" value="<?php echo $url; ?>" /></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   951
<?php endif; if ( $inputs['title'] ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   952
	<p><label for="rss-title-<?php echo $number; ?>"><?php _e('Give the feed a title (optional):'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   953
	<input class="widefat" id="rss-title-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][title]" type="text" value="<?php echo $title; ?>" /></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   954
<?php endif; if ( $inputs['items'] ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   955
	<p><label for="rss-items-<?php echo $number; ?>"><?php _e('How many items would you like to display?'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   956
	<select id="rss-items-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][items]">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   957
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   958
		for ( $i = 1; $i <= 20; ++$i )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   959
			echo "<option value='$i' " . selected( $items, $i, false ) . ">$i</option>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   960
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   961
	</select></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   962
<?php endif; if ( $inputs['show_summary'] ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   963
	<p><input id="rss-show-summary-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][show_summary]" type="checkbox" value="1" <?php if ( $show_summary ) echo 'checked="checked"'; ?>/>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   964
	<label for="rss-show-summary-<?php echo $number; ?>"><?php _e('Display item content?'); ?></label></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   965
<?php endif; if ( $inputs['show_author'] ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   966
	<p><input id="rss-show-author-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][show_author]" type="checkbox" value="1" <?php if ( $show_author ) echo 'checked="checked"'; ?>/>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   967
	<label for="rss-show-author-<?php echo $number; ?>"><?php _e('Display item author if available?'); ?></label></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   968
<?php endif; if ( $inputs['show_date'] ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   969
	<p><input id="rss-show-date-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][show_date]" type="checkbox" value="1" <?php if ( $show_date ) echo 'checked="checked"'; ?>/>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   970
	<label for="rss-show-date-<?php echo $number; ?>"><?php _e('Display item date?'); ?></label></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   971
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   972
	endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   973
	foreach ( array_keys($default_inputs) as $input ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   974
		if ( 'hidden' === $inputs[$input] ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   975
			$id = str_replace( '_', '-', $input );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   976
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   977
	<input type="hidden" id="rss-<?php echo $id; ?>-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][<?php echo $input; ?>]" value="<?php echo $$input; ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   978
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   979
		endif;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   980
	endforeach;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   981
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   982
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   983
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   984
 * Process RSS feed widget data and optionally retrieve feed items.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   985
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   986
 * The feed widget can not have more than 20 items or it will reset back to the
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   987
 * default, which is 10.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   988
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   989
 * The resulting array has the feed title, feed url, feed link (from channel),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   990
 * feed items, error (if any), and whether to show summary, author, and date.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   991
 * All respectively in the order of the array elements.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   992
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   993
 * @since 2.5.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   994
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   995
 * @param array $widget_rss RSS widget feed data. Expects unescaped data.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   996
 * @param bool $check_feed Optional, default is true. Whether to check feed for errors.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   997
 * @return array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   998
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   999
function wp_widget_rss_process( $widget_rss, $check_feed = true ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1000
	$items = (int) $widget_rss['items'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1001
	if ( $items < 1 || 20 < $items )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1002
		$items = 10;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1003
	$url           = esc_url_raw( strip_tags( $widget_rss['url'] ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1004
	$title         = isset( $widget_rss['title'] ) ? trim( strip_tags( $widget_rss['title'] ) ) : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1005
	$show_summary  = isset( $widget_rss['show_summary'] ) ? (int) $widget_rss['show_summary'] : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1006
	$show_author   = isset( $widget_rss['show_author'] ) ? (int) $widget_rss['show_author'] :0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1007
	$show_date     = isset( $widget_rss['show_date'] ) ? (int) $widget_rss['show_date'] : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1008
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1009
	if ( $check_feed ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1010
		$rss = fetch_feed($url);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1011
		$error = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1012
		$link = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1013
		if ( is_wp_error($rss) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1014
			$error = $rss->get_error_message();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1015
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1016
			$link = esc_url(strip_tags($rss->get_permalink()));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1017
			while ( stristr($link, 'http') != $link )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1018
				$link = substr($link, 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1019
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1020
			$rss->__destruct();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1021
			unset($rss);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1022
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1023
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1024
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1025
	return compact( 'title', 'url', 'link', 'items', 'error', 'show_summary', 'show_author', 'show_date' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1026
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1027
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1028
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1029
 * Tag cloud widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1030
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1031
 * @since 2.8.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1032
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1033
class WP_Widget_Tag_Cloud extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1034
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1035
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1036
		$widget_ops = array( 'description' => __( "Your most used tags in cloud format") );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1037
		parent::__construct('tag_cloud', __('Tag Cloud'), $widget_ops);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1038
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1039
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1040
	function widget( $args, $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1041
		extract($args);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1042
		$current_taxonomy = $this->_get_current_taxonomy($instance);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1043
		if ( !empty($instance['title']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1044
			$title = $instance['title'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1045
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1046
			if ( 'post_tag' == $current_taxonomy ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1047
				$title = __('Tags');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1048
			} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1049
				$tax = get_taxonomy($current_taxonomy);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1050
				$title = $tax->labels->name;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1051
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1052
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1053
		$title = apply_filters('widget_title', $title, $instance, $this->id_base);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1054
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1055
		echo $before_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1056
		if ( $title )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1057
			echo $before_title . $title . $after_title;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1058
		echo '<div class="tagcloud">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1059
		wp_tag_cloud( apply_filters('widget_tag_cloud_args', array('taxonomy' => $current_taxonomy) ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1060
		echo "</div>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1061
		echo $after_widget;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1062
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1063
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1064
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1065
		$instance['title'] = strip_tags(stripslashes($new_instance['title']));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1066
		$instance['taxonomy'] = stripslashes($new_instance['taxonomy']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1067
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1068
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1069
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1070
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1071
		$current_taxonomy = $this->_get_current_taxonomy($instance);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1072
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1073
	<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1074
	<input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php if (isset ( $instance['title'])) {echo esc_attr( $instance['title'] );} ?>" /></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1075
	<p><label for="<?php echo $this->get_field_id('taxonomy'); ?>"><?php _e('Taxonomy:') ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1076
	<select class="widefat" id="<?php echo $this->get_field_id('taxonomy'); ?>" name="<?php echo $this->get_field_name('taxonomy'); ?>">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1077
	<?php foreach ( get_taxonomies() as $taxonomy ) :
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1078
				$tax = get_taxonomy($taxonomy);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1079
				if ( !$tax->show_tagcloud || empty($tax->labels->name) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1080
					continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1081
	?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1082
		<option value="<?php echo esc_attr($taxonomy) ?>" <?php selected($taxonomy, $current_taxonomy) ?>><?php echo $tax->labels->name; ?></option>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1083
	<?php endforeach; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1084
	</select></p><?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1085
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1086
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1087
	function _get_current_taxonomy($instance) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1088
		if ( !empty($instance['taxonomy']) && taxonomy_exists($instance['taxonomy']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1089
			return $instance['taxonomy'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1090
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1091
		return 'post_tag';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1092
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1093
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1094
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1095
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1096
 * Navigation Menu widget class
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1097
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1098
 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1099
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1100
 class WP_Nav_Menu_Widget extends WP_Widget {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1101
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1102
	function __construct() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1103
		$widget_ops = array( 'description' => __('Use this widget to add one of your custom menus as a widget.') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1104
		parent::__construct( 'nav_menu', __('Custom Menu'), $widget_ops );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1105
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1106
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1107
	function widget($args, $instance) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1108
		// Get menu
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1109
		$nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1110
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1111
		if ( !$nav_menu )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1112
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1113
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1114
		$instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1115
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1116
		echo $args['before_widget'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1117
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1118
		if ( !empty($instance['title']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1119
			echo $args['before_title'] . $instance['title'] . $args['after_title'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1120
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1121
		wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1122
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1123
		echo $args['after_widget'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1124
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1125
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1126
	function update( $new_instance, $old_instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1127
		$instance['title'] = strip_tags( stripslashes($new_instance['title']) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1128
		$instance['nav_menu'] = (int) $new_instance['nav_menu'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1129
		return $instance;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1130
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1131
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1132
	function form( $instance ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1133
		$title = isset( $instance['title'] ) ? $instance['title'] : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1134
		$nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1135
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1136
		// Get menus
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1137
		$menus = wp_get_nav_menus( array( 'orderby' => 'name' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1138
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1139
		// If no menus exists, direct the user to go and create some.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1140
		if ( !$menus ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1141
			echo '<p>'. sprintf( __('No menus have been created yet. <a href="%s">Create some</a>.'), admin_url('nav-menus.php') ) .'</p>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1142
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1143
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1144
		?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1145
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1146
			<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1147
			<input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $title; ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1148
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1149
		<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1150
			<label for="<?php echo $this->get_field_id('nav_menu'); ?>"><?php _e('Select Menu:'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1151
			<select id="<?php echo $this->get_field_id('nav_menu'); ?>" name="<?php echo $this->get_field_name('nav_menu'); ?>">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1152
		<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1153
			foreach ( $menus as $menu ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1154
				echo '<option value="' . $menu->term_id . '"'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1155
					. selected( $nav_menu, $menu->term_id, false )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1156
					. '>'. $menu->name . '</option>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1157
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1158
		?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1159
			</select>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1160
		</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1161
		<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1162
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1163
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1164
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1165
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1166
 * Register all of the default WordPress widgets on startup.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1167
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1168
 * Calls 'widgets_init' action after all of the WordPress widgets have been
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1169
 * registered.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1170
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1171
 * @since 2.2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1172
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1173
function wp_widgets_init() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1174
	if ( !is_blog_installed() )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1175
		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1176
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1177
	register_widget('WP_Widget_Pages');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1178
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1179
	register_widget('WP_Widget_Calendar');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1180
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1181
	register_widget('WP_Widget_Archives');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1182
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1183
	if ( get_option( 'link_manager_enabled' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1184
		register_widget('WP_Widget_Links');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1185
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1186
	register_widget('WP_Widget_Meta');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1187
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1188
	register_widget('WP_Widget_Search');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1189
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1190
	register_widget('WP_Widget_Text');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1191
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1192
	register_widget('WP_Widget_Categories');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1193
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1194
	register_widget('WP_Widget_Recent_Posts');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1195
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1196
	register_widget('WP_Widget_Recent_Comments');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1197
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1198
	register_widget('WP_Widget_RSS');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1199
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1200
	register_widget('WP_Widget_Tag_Cloud');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1201
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1202
	register_widget('WP_Nav_Menu_Widget');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1203
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1204
	do_action('widgets_init');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1205
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1206
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1207
add_action('init', 'wp_widgets_init', 1);