Example #1
0
/**
 * Return a fancy description of the achievements on the site, including the
 * number of public and hidden achievements, and the username and avatar of
 * the most recent person who unlocked the achievement.
 *
 * @param mixed $args This function supports these arguments:
 *  - before: Before the text
 *  - after: After the text
 *  - size: Size of the avatar
 * @return string Fancy description
 * @since Achievements (3.0)
 */
function dpa_get_achievements_index_description($args = '')
{
    $defaults = array('after' => '</p></div>', 'before' => '<div class="dpa-template-notice info"><p class="dpa-achievements-description">', 'size' => 14);
    $r = dpa_parse_args($args, $defaults, 'get_achievements_index_description');
    extract($r);
    // Get count of total achievements
    $achievement_count = dpa_get_total_achievement_count();
    $achievement_text = sprintf(_n('%s achievement', '%s achievements', $achievement_count, 'achievements'), number_format_i18n($achievement_count));
    // Get data on the most recent unlocked achievement
    $recent_achievement_id = dpa_stats_get_last_achievement_id();
    $recent_user_id = dpa_stats_get_last_achievement_user_id();
    if (!empty($recent_user_id) && !empty($recent_achievement_id)) {
        // Check user ID is still valid
        $user = get_userdata($recent_user_id);
        if (!empty($user) && dpa_is_user_active($user)) {
            // Check achievement ID is valid
            $achievement = get_post($recent_achievement_id);
            if (!empty($achievement) && 'publish' === $achievement->post_status) {
                // Combine all the things to build the output text
                $retstr = sprintf(__('This site has %1$s, and the last unlocked was <a href="%2$s">%3$s</a> by %4$s.', 'achievements'), $achievement_text, esc_url(get_permalink($achievement->ID)), esc_html(apply_filters('dpa_get_achievement_title', $achievement->post_title, $achievement->ID)), dpa_get_user_avatar_link(array('size' => $size, 'user_id' => $user->ID)));
            }
        }
    }
    // If we haven't set a more specific description, fall back to the default.
    if (!isset($retstr)) {
        $retstr = sprintf(__('This site has %1$s.', 'achievements'), $achievement_text);
    }
    $retstr = $before . $retstr . $after;
    return apply_filters('dpa_get_achievements_index_description', $retstr, $args);
}
/**
 * Template tag version of dpa_get_total_achievement_count()
 *
 * @uses dpa_get_total_achievement_count()
 * @since 2.0
 */
function dpa_total_achievement_count()
{
    echo dpa_get_total_achievement_count();
}
Example #3
0
do_action('dpa_before_directory_achievements_content');
?>

			<div id="achievements-dir-search" class="dir-search">
				<?php 
dpa_directory_achievements_search_form();
?>
			</div><!-- #achievements-dir-search -->

			<div class="item-list-tabs">
				<ul>
					<li class="selected" id="achievements-all"><a href="<?php 
dpa_achievements_permalink();
?>
"><?php 
printf(__('All Achievements <span>%s</span>', 'dpa'), dpa_get_total_achievement_count());
?>
</a></li>

					<?php 
if (is_user_logged_in()) {
    ?>
						<li id="achievements-personal"><a href="<?php 
    echo bp_loggedin_user_domain() . DPA_SLUG . '/' . DPA_SLUG_MY_ACHIEVEMENTS;
    ?>
"><?php 
    printf(__('My Achievements <span>%s</span>', 'dpa'), dpa_get_total_achievement_count_for_user());
    ?>
</a></li>
					<?php 
}