/**
 * BuddyDrive Loop : do we have items for the query asked
 *
 * @param  array $args the arguments of the query
 * @global object $buddydrive_template
 * @uses buddydrive_get_folder_post_type() to get BuddyFolder post type
 * @uses buddydrive_get_file_post_type() to get BuddyFile post type
 * @uses bp_displayed_user_id() to default to current displayed user
 * @uses bp_current_action() to get the current action ( files / friends / admin)
 * @uses bp_is_active() to check if groups component is active
 * @uses buddydrive_is_group() are we on a group's BuddyDrive ?
 * @uses wp_parse_args() to merge defaults and args
 * @uses BuddyDrive_Item::get() to request the DB
 * @uses BuddyDrive_Item::have_posts to know if BuddyItems matched the query
 * @return the result of the query
 */
function buddydrive_has_items($args = '')
{
    global $buddydrive_template;
    // This keeps us from firing the query more than once
    if (empty($buddydrive_template)) {
        $defaulttype = array(buddydrive_get_folder_post_type(), buddydrive_get_file_post_type());
        $user = $group_id = $buddyscope = false;
        if (bp_displayed_user_id()) {
            $user = bp_displayed_user_id();
        }
        $buddyscope = bp_current_action();
        if ($buddyscope == buddydrive_get_friends_subnav_slug()) {
            $buddyscope = 'friends';
        }
        if (is_admin()) {
            $buddyscope = 'admin';
        }
        if (bp_is_active('groups') && buddydrive_is_group()) {
            $group = groups_get_current_group();
            $group_id = $group->id;
            $buddyscope = 'groups';
        }
        /***
         * Set the defaults for the parameters you are accepting via the "buddydrive_has_items()"
         * function call
         */
        $defaults = array('id' => false, 'name' => false, 'group_id' => $group_id, 'user_id' => $user, 'per_page' => 10, 'paged' => 1, 'type' => $defaulttype, 'buddydrive_scope' => $buddyscope, 'search' => false, 'buddydrive_parent' => 0, 'exclude' => 0, 'orderby' => 'title', 'order' => 'ASC');
        $r = bp_parse_args($args, $defaults, 'buddydrive_has_items');
        if ('admin' === $r['buddydrive_scope'] && !bp_current_user_can('bp_moderate')) {
            $r['buddydrive_scope'] = 'files';
        }
        $buddydrive_template = new BuddyDrive_Item();
        if (!empty($search)) {
            $buddydrive_template->get(array('per_page' => $r['per_page'], 'paged' => $r['paged'], 'type' => $r['type'], 'buddydrive_scope' => $r['buddydrive_scope'], 'search' => $r['search'], 'orderby' => $r['orderby'], 'order' => $r['order']));
        } else {
            $buddydrive_template->get(array('id' => $r['id'], 'name' => $r['name'], 'group_id' => $r['group_id'], 'user_id' => $r['user_id'], 'per_page' => $r['per_page'], 'paged' => $r['paged'], 'type' => $r['type'], 'buddydrive_scope' => $r['buddydrive_scope'], 'buddydrive_parent' => $r['buddydrive_parent'], 'exclude' => $r['exclude'], 'orderby' => $r['orderby'], 'order' => $r['order']));
        }
        do_action('buddydrive_has_items_catch_total_count', $buddydrive_template->query->found_posts);
    }
    return apply_filters('buddydrive_has_items', $buddydrive_template->have_posts());
}
/**
 * Builds the link to the Shared by friends BuddyDrive
 *
 * @param  integer $user_id the id of the user
 * @uses bp_displayed_user_id() to get displayed user id
 * @uses bp_core_get_user_domain() to get the user's home page url
 * @uses buddydrive_get_slug() to get BuddyDrive slug
 * @uses buddydrive_get_friends_subnav_slug() to get BuddyDrive's friends subnav
 * @return string  $buddydrive_friends the url to the shared by friends BuddyDrive
 */
function buddydrive_get_friends_buddydrive_url($user_id = 0)
{
    if (empty($user_id)) {
        $user_id = bp_displayed_user_id();
    }
    $user_domain = bp_core_get_user_domain($user_id);
    $buddydrive_link = trailingslashit($user_domain . buddydrive_get_slug());
    $buddydrive_friends = trailingslashit($buddydrive_link . buddydrive_get_friends_subnav_slug());
    return $buddydrive_friends;
}
/**
 * Prints the friends slug
 *
 * @since  BuddyDrive 1.1
 *
 * @uses buddydrive_get_friends_subnav_slug() to get the friends subnav slug
 * @return string the subnav slug
 */
function buddydrive_friends_subnav_slug()
{
    echo buddydrive_get_friends_subnav_slug();
}
 /**
  * Builds the user's navigation in WP Admin Bar
  *
  * @uses buddydrive_get_slug() to get BuddyDrive slug
  * @uses is_user_logged_in() to check if the user is logged in
  * @uses bp_loggedin_user_domain() to get current user's profile link
  * @uses buddydrive_get_name() to get BuddyDrive plugin name
  * @uses buddydrive_get_user_subnav_name() to get main subnav name
  * @uses buddydrive_get_friends_subnav_name() to get friends subnav name
  * @uses buddydrive_get_friends_subnav_slug() to get friends subnav slug
  * @uses bp_is_active() to check for the friends component
  */
 public function setup_admin_bar($wp_admin_nav = array())
 {
     // Prevent debug notices
     $wp_admin_nav = array();
     $buddydrive_slug = buddydrive_get_slug();
     // Menus for logged in user
     if (is_user_logged_in()) {
         // Setup the logged in user variables
         $buddydrive_link = trailingslashit(bp_loggedin_user_domain() . $buddydrive_slug);
         // Add main BuddyDrive menu
         $wp_admin_nav[] = array('parent' => 'my-account-buddypress', 'id' => 'my-account-' . $buddydrive_slug, 'title' => buddydrive_get_name(), 'href' => trailingslashit($buddydrive_link));
         // Add BuddyDrive submenu
         $wp_admin_nav[] = array('parent' => 'my-account-' . $buddydrive_slug, 'id' => 'my-account-' . $buddydrive_slug . '-files', 'title' => buddydrive_get_user_subnav_name(), 'href' => trailingslashit($buddydrive_link));
         if (bp_is_active('friends')) {
             // Add shared by friends BuddyDrive submenu
             $wp_admin_nav[] = array('parent' => 'my-account-' . $buddydrive_slug, 'id' => 'my-account-' . $buddydrive_slug . '-friends', 'title' => buddydrive_get_friends_subnav_name(), 'href' => trailingslashit($buddydrive_link . buddydrive_get_friends_subnav_slug()));
         }
     }
     parent::setup_admin_bar($wp_admin_nav);
 }