Widgets */ add_action( 'widgets_init', 'jetpack_top_posts_widget_init' ); function jetpack_top_posts_widget_init() { // Currently, this widget depends on the Stats Module if ( ( !defined( 'IS_WPCOM' ) || !IS_WPCOM ) && !function_exists( 'stats_get_csv' ) ) { return; } register_widget( 'Jetpack_Top_Posts_Widget' ); } class Jetpack_Top_Posts_Widget extends WP_Widget { var $alt_option_name = 'widget_stats_topposts'; var $default_title = ''; function __construct() { parent::__construct( 'top-posts', apply_filters( 'jetpack_widget_name', __( 'Top Posts & Pages', 'jetpack' ) ), array( 'description' => __( 'Shows your most viewed posts and pages.', 'jetpack' ), ) ); $this->default_title = __( 'Top Posts & Pages', 'jetpack' ); if ( is_active_widget( false, false, $this->id_base ) ) { add_action( 'wp_print_styles', array( $this, 'enqueue_style' ) ); } } function enqueue_style() { wp_register_style( 'widget-grid-and-list', plugins_url( 'widget-grid-and-list.css', __FILE__ ) ); wp_enqueue_style( 'widget-grid-and-list' ); } function form( $instance ) { $title = isset( $instance['title' ] ) ? $instance['title'] : false; if ( false === $title ) { $title = $this->default_title; } $count = isset( $instance['count'] ) ? (int) $instance['count'] : 10; if ( $count < 1 || 10 < $count ) { $count = 10; } if ( isset( $instance['display'] ) && in_array( $instance['display'], array( 'grid', 'list', 'text' ) ) ) { $display = $instance['display']; } else { $display = 'text'; } ?>

default_title ) { $instance['title'] = false; // Store as false in case of language change } $instance['count'] = (int) $new_instance['count']; if ( $instance['count'] < 1 || 10 < $instance['count'] ) { $instance['count'] = 10; } if ( isset( $new_instance['display'] ) && in_array( $new_instance['display'], array( 'grid', 'list', 'text' ) ) ) { $instance['display'] = $new_instance['display']; } else { $instance['display'] = 'text'; } return $instance; } function widget( $args, $instance ) { $title = isset( $instance['title' ] ) ? $instance['title'] : false; if ( false === $title ) $title = $this->default_title; $title = apply_filters( 'widget_title', $title ); $count = isset( $instance['count'] ) ? (int) $instance['count'] : false; if ( $count < 1 || 10 < $count ) { $count = 10; } if ( isset( $instance['display'] ) && in_array( $instance['display'], array( 'grid', 'list', 'text' ) ) ) { $display = $instance['display']; } else { $display = 'text'; } if ( 'text' != $display ) { $get_image_options = array( 'fallback_to_avatars' => true, 'gravatar_default' => apply_filters( 'jetpack_static_url', is_ssl() ? 'https' : 'http' . '://en.wordpress.com/i/logo/white-gray-80.png' ), ); if ( 'grid' == $display ) { if ( $count %2 != 0 ) { $count++; } $get_image_options['avatar_size'] = 200; } else { $get_image_options['avatar_size'] = 40; } $get_image_options = apply_filters( 'jetpack_top_posts_widget_image_options', $get_image_options ); } $posts = $this->get_by_views( $count ); if ( !$posts ) { $posts = $this->get_fallback_posts(); } echo $args['before_widget']; if ( ! empty( $title ) ) echo $args['before_title'] . $title . $args['after_title']; if ( !$posts ) { if ( current_user_can( 'edit_theme_options' ) ) { echo '

' . sprintf( __( 'There are no posts to display. Want more traffic?', 'jetpack' ), 'http://en.support.wordpress.com/getting-more-site-traffic/' ) . '

'; } echo $args['after_widget']; return; } switch ( $display ) { case 'list' : case 'grid' : wp_enqueue_style( 'widget-grid-and-list' ); foreach ( $posts as &$post ) { $image = Jetpack_PostImages::get_image( $post['post_id'], array( 'fallback_to_avatars' => true ) ); $post['image'] = $image['src']; if ( 'blavatar' != $image['from'] && 'gravatar' != $image['from'] ) { $size = (int) $get_image_options['avatar_size']; $post['image'] = jetpack_photon_url( $post['image'], array( 'resize' => "$size,$size" ) ); } } unset( $post ); if ( 'grid' == $display ) { echo "
\n"; foreach ( $posts as $post ) : ?>
<?php echo esc_attr( wp_kses( $post['title'], array() ) ); ?>
\n"; } else { echo "