/** * 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(); }
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 }