* @package Achievements * @subpackage widgets * * $Id: achievements-widgets.php 1003 2011-10-04 20:15:19Z DJPaul $ */ /** * Sitewide Leaderboard widget. * * @package Achievements * @since 2.0 * @subpackage widgets * @uses WP_Widget */ class DPA_Sitewide_Leaderboard extends WP_Widget { /** * Constructor * * @since 2.0 */ function DPA_Sitewide_Leaderboard() { $widget_ops = array( 'classname' => 'achievements-sitewide-leaderboard', 'description' => __( 'Sitewide leaderboard', 'dpa' ) ); $this->WP_Widget( 'achievements-sitewide', __( 'Achievements Leaderboard', 'dpa' ), $widget_ops, array( 'id_base' => 'achievements-sitewide' ) ); } /** * Outputs the HTML for this widget. * * @global object $bp BuddyPress global settings * @param array $args An array of standard parameters for widgets * @param array $instance An array of settings for this widget instance * @since 2.0 * @todo Figure out a way to unify the output. Remove table? */ function widget( $args, $instance ) { global $bp; extract( $args, EXTR_SKIP ); if ( !$high_scorers = dpa_points_get_high_scorers( $instance['limit'] ) ) return; $high_scorers_count = count( $high_scorers ); $appearance = apply_filters( 'dpa_widget_title', $instance['style'] ); if ( empty( $appearance ) ) // Handle widget changes from v2.0.3 to v2.0.4. $appearance = 'leaguetable'; // Figure out the upper range for the percentage bars if ( 'modern' == $appearance ) { $high_scorers_max_count = 0; foreach ( $high_scorers as $high_scorer ) if ( $high_scorer->points > $high_scorers_max_count ) $high_scorers_max_count = $high_scorer->points; } echo $before_widget; echo $before_title; echo esc_html( apply_filters( 'dpa_widget_title', $instance['title'] ) ); echo $after_title; if ( 'leaguetable' == $appearance ) : ?>
. 20, 'item_id' => $high_scorers[$i]->id, 'type' => 'thumb', 'width' => 20 ) ) ?> id ) ?> points ) ?>
points / $high_scorers_max_count ) * 100; ?>
id ) ?>points ) ?>
__( 'Achievement Leaderboard', 'dpa' ), 'limit' => 12, 'style' => 'leaguetable' ) ); $limit = apply_filters( 'dpa_widget_limit', $instance['limit'] ); $style = apply_filters( 'dpa_widget_title', $instance['style'] ); $title = apply_filters( 'dpa_widget_title', $instance['title'] ); ?>




__( 'League table', 'dpa' ), 'modern' => __( 'Modern', 'dpa' ) ), apply_filters( 'dpa_sitewide_leaderboard_style_options', array() ) ); } } /** * Member Achievement widget (displays Achievement's pictures, that the user has unlocked). * * @package Achievements * @since 2.0 * @subpackage widgets * @uses WP_Widget */ class DPA_Member_Achievements extends WP_Widget { /** * Constructor * * @since 2.0 */ function DPA_Member_Achievements() { $widget_ops = array( 'classname' => 'achievements-member-achievements', 'description' => __( "A photo grid of a member's unlocked Achievements", 'dpa' ) ); $this->WP_Widget( 'achievements-member-achievements', __( 'Achievements, Unlocked', 'dpa' ), $widget_ops, array( 'id_base' => 'achievements-member-achievements' ) ); } /** * Outputs the HTML for this widget. * * @global DPA_Achievement_Template $achievements_template Achievements template tag object * @global object $bp BuddyPress global settings * @param array $args An array of standard parameters for widgets * @param array $instance An array of settings for this widget instance * @since 2.0 */ function widget( $args, $instance ) { global $achievements_template, $bp; if ( ( $instance['loggedin_user'] && empty( $bp->loggedin_user->id ) ) || ( !$instance['loggedin_user'] && empty( $bp->displayed_user->id ) ) ) return; if ( $instance['loggedin_user'] ) $user_id = $bp->loggedin_user->id; else $user_id = $bp->displayed_user->id; extract( $args, EXTR_SKIP ); if ( dpa_has_achievements( array( 'user_id' => $user_id, 'max' => $instance['limit'], 'populate_extras' => false, 'type' => 'unlocked' ) ) ) : echo $before_widget; if ( $instance['title'] ) { echo $before_title; echo esc_html( apply_filters( 'dpa_widget_title', $instance['title'] ) ); echo $after_title; } ?>

__( "Your Recent Achievements", 'dpa' ), 'limit' => 12 ) ); $title = apply_filters( 'dpa_widget_title', $instance['title'] ); $limit = apply_filters( 'dpa_widget_limit', $instance['limit'] ); $loggedin_user = apply_filters( 'dpa_widget_loggedin_user', !empty( $instance['loggedin_user'] ) ? $instance['loggedin_user'] : false ); $checked = ''; if ( $loggedin_user ) $checked = 'checked="checked"'; ?>




/>

'achievements-available-achievements', 'description' => __( "A photo grid of all the Achievements available on this site; intended for multisite", 'dpa' ) ); $this->WP_Widget( 'achievements-available-achievements', __( 'Achievements, All', 'dpa' ), $widget_ops, array( 'id_base' => 'achievements-available-achievements' ) ); } /** * Outputs the HTML for this widget. * * @global DPA_Achievement_Template $achievements_template Achievements template tag object * @global int $blog_id Site ID * @global object $bp BuddyPress global settings * @param array $args An array of standard parameters for widgets * @param array $instance An array of settings for this widget instance * @since 2.0 */ function widget( $args, $instance ) { global $achievements_template, $blog_id, $bp; extract( $args, EXTR_SKIP ); if ( dpa_has_achievements( 'type=active&per_page=' . $instance['limit'] . '&max=' . $instance['limit'] . '&populate_extras=0' ) ) : echo $before_widget; if ( $instance['title'] ) { echo $before_title; echo esc_html( apply_filters( 'dpa_widget_title', $instance['title'] ) ); echo $after_title; } $show_sitewide_achievements = false; if ( !$instance['showsitewide'] ) $show_sitewide_achievements = true; ?>

__( 'All Available Achievements', 'dpa' ), 'limit' => 12 ) ); $title = apply_filters( 'dpa_widget_title', $instance['title'] ); $limit = apply_filters( 'dpa_widget_limit', $instance['limit'] ); $showsitewide = apply_filters( 'dpa_widget_showsitewide', !empty( $instance['showsitewide'] ) ? $instance['showsitewide'] : false ); $checked = ''; if ( $showsitewide ) $checked = 'checked="checked"'; ?>




/>

'achievements-featured-achievement', 'description' => __( "Displays a single Achievement in detail", 'dpa' ) ); $this->WP_Widget( 'achievements-featured-achievement', __( 'Achievements, Featured', 'dpa' ), $widget_ops, array( 'id_base' => 'achievements-featured-achievement' ) ); } /** * Outputs the HTML for this widget. * * @global DPA_Achievement_Template $achievements_template Achievements template tag object * @global object $bp BuddyPress global settings * @param array $args An array of standard parameters for widgets * @param array $instance An array of settings for this widget instance * @since 2.0 */ function widget( $args, $instance ) { global $achievements_template, $bp; extract( $args, EXTR_SKIP ); if ( dpa_has_achievements( array( 'slug' => $instance['achievement_slug'], 'populate_extras' => false, 'type' => 'single' ) ) ) : echo $before_widget; if ( $instance['title'] ) { echo $before_title; echo esc_html( apply_filters( 'dpa_widget_title', $instance['title'] ) ); echo $after_title; } ?>

__( "Featured Achievement", 'dpa' ), 'achievement_slug' => '' ) ); $title = apply_filters( 'dpa_widget_title', $instance['title'] ); $achievement_slug = apply_filters( 'dpa_widget_achievement_slug', $instance['achievement_slug'] ); ?>



'achievements-member-achievements-available', 'description' => __( "A photo grid of Achievements which the member is yet to unlock", 'dpa' ) ); $this->WP_Widget( 'achievements-member-achievements-available', __( 'Achievements, Locked', 'dpa' ), $widget_ops, array( 'id_base' => 'achievements-member-achievements-available' ) ); } /** * Outputs the HTML for this widget. * * @global DPA_Achievement_Template $achievements_template Achievements template tag object * @global object $bp BuddyPress global settings * @param array $args An array of standard parameters for widgets * @param array $instance An array of settings for this widget instance * @since 2.0 */ function widget( $args, $instance ) { global $achievements_template, $bp; if ( ( $instance['loggedin_user'] && empty( $bp->loggedin_user->id ) ) || ( !$instance['loggedin_user'] && empty( $bp->displayed_user->id ) ) ) return; if ( $instance['loggedin_user'] ) $user_id = $bp->loggedin_user->id; else $user_id = $bp->displayed_user->id; extract( $args, EXTR_SKIP ); if ( dpa_has_achievements( array( 'user_id' => $user_id, 'max' => $instance['limit'], 'populate_extras' => false, 'type' => 'locked' ) ) ) : echo $before_widget; if ( $instance['title'] ) { echo $before_title; echo esc_html( apply_filters( 'dpa_widget_title', $instance['title'] ) ); echo $after_title; } ?>
__( "Unlock These Achievements", 'dpa' ), 'limit' => 12 ) ); $title = apply_filters( 'dpa_widget_title', $instance['title'] ); $limit = apply_filters( 'dpa_widget_limit', $instance['limit'] ); $loggedin_user = apply_filters( 'dpa_widget_loggedin_user', !empty( $instance['loggedin_user'] ) ? $instance['loggedin_user'] : false ); $checked = ''; if ( $loggedin_user ) $checked = 'checked="checked"'; ?>




/>

'achievements-member-points', 'description' => __( "Displays a member's Achievement score", 'dpa' ) ); $this->WP_Widget( 'achievements-member-points', __( "Achievements, Member's Score", 'dpa' ), $widget_ops, array( 'id_base' => 'achievements-member-points' ) ); } /** * Outputs the HTML for this widget. * * @global object $bp BuddyPress global settings * @param array $args An array of standard parameters for widgets * @param array $instance An array of settings for this widget instance * @since 2.0 */ function widget( $args, $instance ) { global $bp; extract( $args, EXTR_SKIP ); if ( ( $instance['loggedin_user'] && empty( $bp->loggedin_user->id ) ) || ( !$instance['loggedin_user'] && empty( $bp->displayed_user->id ) ) ) return; if ( $instance['loggedin_user'] ) $user_id = $bp->loggedin_user->id; else $user_id = $bp->displayed_user->id; echo $before_widget; if ( $instance['title'] ) { echo $before_title; echo esc_html( apply_filters( 'dpa_widget_title', $instance['title'] ) ); echo $after_title; } ?>

__( "Achievement Score", 'dpa' ), 'loggedin_user' => 0 ) ); $title = apply_filters( 'dpa_widget_title', $instance['title'] ); $loggedin_user = apply_filters( 'dpa_widget_loggedin_user', $instance['loggedin_user'] ); $checked = ''; if ( $loggedin_user ) $checked = 'checked="checked"'; ?>



/>