function get_group_courseware($group_id = null)
 {
     if (!$group_id) {
         global $bp;
         $group_id = $bp->groups->current_group->id;
     }
     $group_data['bibliography'] = array();
     $group_data['responses_count'] = 0;
     $group_data['assignment_topics_count'] = 0;
     $group_data['user_grades'] = array();
     $group_data['courses'] = (array) BPSP_Courses::has_courses($group_id);
     $group_data['assignments'] = (array) BPSP_Assignments::has_assignments($group_id);
     $group_data['schedules'] = BPSP_Schedules::has_schedules($group_id);
     $posts = array_merge($group_data['courses'], $group_data['assignments']);
     if ($posts) {
         foreach ($posts as &$post) {
             // Get group bibs
             $group_data['bibliography'] = array_merge($group_data['bibliography'], BPSP_Bibliography::get_bibs($post->ID));
             // Get group responses
             if ($post->post_type == 'assignment') {
                 // Forum threads
                 if (get_post_meta($post->ID, 'topic_link', true) != '') {
                     $group_data['assignment_topics_count'] += 1;
                 }
                 // Responses
                 $post->responses = get_children(array('post_parent' => $post->ID, 'post_type' => 'response'));
                 $group_data['responses_count'] += count($post->responses);
                 // Gradebook
                 $group_data['user_grades'][] = BPSP_Gradebook::load_grade_by_user_id($post->ID, $bp->loggedin_user->id);
             }
         }
     }
     $group_data['bibliography_count'] = count($group_data['bibliography']);
     return $group_data;
 }
/**
 * Register post types and taxonomies
 */
function bpsp_registration()
{
    BPSP_Courses::register_post_types();
    BPSP_Assignments::register_post_types();
    BPSP_Responses::register_post_types();
    BPSP_Gradebook::register_post_types();
    BPSP_Bibliography::register_post_types();
    BPSP_Schedules::register_post_types();
}