Exemple #1
0
/**
 * Return the moderators of a forum
 *
 * @since 2.6.0 bbPress (r5834)
 *
 * @param int   $forum_id Optional. Forum id
 * @param array $args     This function supports these arguments:
 *  - before: Before the tag list
 *  - sep: Tag separator
 *  - after: After the tag list
 * @uses bbp_get_forum_id()  To get the forum id
 * @uses get_the_term_list() To get the moderator list
 *
 * @return string Moderator list of the forum
 */
function bbp_get_forum_mod_list($forum_id = 0, $args = array())
{
    // Bail if forum-mods are off
    if (!bbp_allow_forum_mods()) {
        return '';
    }
    // Parse arguments against default values
    $r = bbp_parse_args($args, array('before' => '<div class="bbp-forum-mods"><p>' . esc_html__('Moderators:', 'bbpress') . '&nbsp;', 'sep' => ', ', 'after' => '</p></div>', 'none' => ''), 'get_forum_mod_list');
    // Bail if forum ID is invalid
    $forum_id = bbp_get_forum_id($forum_id);
    if (empty($forum_id)) {
        return '';
    }
    // Get forum moderators
    $moderators = bbp_get_forum_mods($forum_id);
    if (!empty($moderators)) {
        // In admin, use nicenames
        if (is_admin()) {
            // @todo link to filtering forums by moderator
            $users = wp_list_pluck($moderators, 'name');
            // In theme, use display names & profile links
        } else {
            $users = array();
            $term_ids = wp_list_pluck($moderators, 'term_id');
            foreach ($term_ids as $term_id) {
                $user_id = bbp_get_term_taxonomy_user_id($term_id);
                $users[] = bbp_get_user_profile_link($user_id);
            }
        }
        $retval = $r['before'] . implode($r['sep'], $users) . $r['after'];
        // No forum moderators
    } else {
        $retval = $r['none'];
    }
    return $retval;
}
Exemple #2
0
/**
 * Get moderators of a forum
 *
 * @since 2.6.0 bbPress (r5834)
 *
 * @param int $forum_id Forum id.
 * @uses bbp_get_forum_id() To get the forum id
 * @uses bbp_is_forum() To make sure it is a forum
 * @uses bbp_get_forum_mod_tax_id() To get the forum moderator taxonomy
 * @uses bbp_get_forum_mods() To get the forum's moderator terms
 * @uses bbp_get_term_taxonomy_user_id() To convert terms to user ids
 *
 * @return boolean|array Return false on error or empty, or array of user ids
 */
function bbp_get_forum_moderator_ids($forum_id = 0)
{
    // Bail if no forum ID.
    $forum_id = bbp_get_forum_id($forum_id);
    if (empty($forum_id)) {
        return false;
    }
    // Bail if forum does not exist.
    if (!bbp_is_forum($forum_id)) {
        return false;
    }
    // Get forum taxonomy terms.
    $terms = bbp_get_forum_mods($forum_id);
    // Bail if no terms found.
    if (empty($terms)) {
        return false;
    }
    // Setup default values
    $term_ids = wp_parse_id_list($terms);
    $taxonomy = bbp_get_forum_mod_tax_id();
    $moderator_ids = array();
    // Convert term ids to user ids.
    foreach ($term_ids as $term_id) {
        $moderator_ids[] = bbp_get_term_taxonomy_user_id($term_id, $taxonomy);
    }
    // Remove empties
    $retval = wp_parse_id_list(array_filter($moderator_ids));
    // Filter & return
    return apply_filters('bbp_get_forum_moderator_ids', $retval, $forum_id);
}
Exemple #3
0
/**
 * Get forum mods for a specific forum ID
 *
 * @since 2.2.0 bbPress (r4165)
 *
 * @param int    $forum_id
 * @param string $sep
 *
 * @return string
 */
function bbp_get_forum_mod_names($forum_id = 0, $sep = ', ')
{
    $forum_mods = bbp_get_forum_mods($forum_id);
    $pluck = wp_list_pluck($forum_mods, 'name');
    $terms = !empty($pluck) ? implode($sep, $pluck) : '';
    return apply_filters('bbp_get_forum_mod_names', $terms, $forum_id, $sep);
}