"group.php", "name" => get_lang("Groups")); /* ----------------------------------------------------------- Ensure all private groups // Juan Carlos Raņa Trabado ----------------------------------------------------------- */ $forums_of_groups = get_forums_of_group($current_group['id']); $forum_state_public=0; if (is_array($forums_of_groups)) { foreach ($forums_of_groups as $key => $value) { if($value['forum_group_public_private'] == 'public') { $forum_state_public=1; } } } if ($current_group['doc_state']!=1 and $current_group['calendar_state']!=1 and $current_group['work_state']!=1 and $current_group['announcements_state']!=1 and $current_group['wiki_state']!=1 and $forum_state_public!=1) { if (!api_is_allowed_to_edit() and !GroupManager :: is_user_in_group($_user['user_id'], $current_group['id'])) { echo api_not_allowed($print_headers); } } /* ----------------------------------------------------------- Header ----------------------------------------------------------- */ Display::display_header($nameTools,"Group"); /* ----------------------------------------------------------- Introduction section (editable by course admin) ----------------------------------------------------------- */ Display::display_introduction_section(group_space_.$_SESSION['_gid']); /* ----------------------------------------------------------- Actions and Action links ----------------------------------------------------------- */ /* * User wants to register in this group */ if (!empty($_GET['selfReg']) && GroupManager :: is_self_registration_allowed($_SESSION['_user']['user_id'], $current_group['id'])) { GroupManager :: subscribe_users($_SESSION['_user']['user_id'], $current_group['id']); Display :: display_normal_message(get_lang('GroupNowMember')); } /* * User wants to unregister from this group */ if (!empty($_GET['selfUnReg']) && GroupManager :: is_self_unregistration_allowed($_SESSION['_user']['user_id'], $current_group['id'])) { GroupManager :: unsubscribe_users($_SESSION['_user']['user_id'], $current_group['id']); Display::display_normal_message(get_lang('StudentDeletesHimself')); } /* * Edit the group */ if (api_is_allowed_to_edit(false,true) or GroupManager :: is_tutor($_user['user_id'])) { isset($origin)?$my_origin = $origin:$my_origin=''; echo Display::return_icon('settings.gif', get_lang("EditGroup"))."".get_lang("EditGroup")."

"; } /* * Register to group */ if (GroupManager :: is_self_registration_allowed($_SESSION['_user']['user_id'], $current_group['id'])) { echo '

'.get_lang("RegIntoGroup").'

'; } /* * Unregister from group */ if (GroupManager :: is_self_unregistration_allowed($_SESSION['_user']['user_id'], $current_group['id'])) { echo '

'.get_lang("StudentUnsubscribe").'

'; } if( isset($_GET['action'])) { switch( $_GET['action']) { case 'show_msg': Display::display_normal_message($_GET['msg']); break; } } /* ----------------------------------------------------------- Main Display Area ----------------------------------------------------------- */ $course_code = $_course['sysCode']; $is_course_member = CourseManager :: is_user_subscribed_in_real_or_linked_course($_SESSION['_user']['user_id'], $course_code); /* * Group title and comment */ api_display_tool_title($nameTools.' '.stripslashes($current_group['name'])); if (!empty($current_group['description'])) { echo '
'.stripslashes($current_group['description']).'
'; } /* * Group Tools */ // If the user is subscribed to the group or the user is a tutor of the group then if (api_is_allowed_to_edit(false,true) OR GroupManager :: is_user_in_group($_SESSION['_user']['user_id'], $current_group['id'])) { $tools = ''; // link to the forum of this group $forums_of_groups = get_forums_of_group($current_group['id']); if (is_array($forums_of_groups)) { if ( $current_group['forum_state'] != TOOL_NOT_AVAILABLE ) { foreach ($forums_of_groups as $key => $value) { if ($value['forum_group_public_private'] == 'public' || (/*!empty($user_subscribe_to_current_group) && */ $value['forum_group_public_private'] == 'private') || !empty($user_is_tutor) || api_is_allowed_to_edit(false,true)) { $tools.= Display::return_icon('forum.gif', get_lang("GroupForum")) . ' '.get_lang("Forum").'
'; //$tools.= Display::return_icon('forum.gif', get_lang("Forum")) . ' '.get_lang("Forum").': '.$value['forum_title'].'
'; } } } } if( $current_group['doc_state'] != TOOL_NOT_AVAILABLE ) { // link to the documents area of this group $tools .= "
".Display::return_icon('folder_document.gif', get_lang("GroupDocument"))." ".get_lang("GroupDocument")."
"; } if ( $current_group['calendar_state'] != TOOL_NOT_AVAILABLE) { //link to a group-specific part of agenda $tools .= "
".Display::return_icon('agenda.gif', get_lang("GroupCalendar"))." ".get_lang("GroupCalendar")."
"; } if ( $current_group['work_state'] != TOOL_NOT_AVAILABLE) { //link to the works area of this group $tools .= "
".Display::return_icon('works.gif', get_lang("GroupWork"))." ".get_lang("GroupWork")."
"; } if ( $current_group['announcements_state'] != TOOL_NOT_AVAILABLE) { //link to a group-specific part of announcements $tools .= "
".Display::return_icon('valves.gif', get_lang("GroupAnnouncements"))." ".get_lang("GroupAnnouncements")."
"; } if ( $current_group['wiki_state'] != TOOL_NOT_AVAILABLE) { //link to the wiki area of this group $tools .= "
".Display::return_icon('wiki.gif', get_lang("GroupWiki"))." ".get_lang("GroupWiki")."
"; } echo ''.get_lang("Tools").':'; if (!empty($tools)) { echo '
'.$tools.'
'; } } else { $tools = ''; // link to the forum of this group $forums_of_groups = get_forums_of_group($current_group['id']); if (is_array($forums_of_groups)) { if ( $current_group['forum_state'] == TOOL_PUBLIC ) { foreach ($forums_of_groups as $key => $value) { if ($value['forum_group_public_private'] == 'public' ) { $tools.= Display::return_icon('forum.gif', get_lang("GroupForum")) . ' '.$value['forum_title'].'
'; //$tools.= Display::return_icon('forum.gif', get_lang("Forum")) . ' '.get_lang("Forum").': '.$value['forum_title'].'
'; } } } } if( $current_group['doc_state'] == TOOL_PUBLIC ) { // link to the documents area of this group $tools .= "".Display::return_icon('folder_document.gif', get_lang("GroupDocument"))." ".get_lang("GroupDocument")."
"; } if ( $current_group['calendar_state'] == TOOL_PUBLIC ) { //link to a group-specific part of agenda $tools .= "".Display::return_icon('agenda.gif', get_lang("GroupCalendar"))." ".get_lang("GroupCalendar")."
"; } if ( $current_group['work_state'] == TOOL_PUBLIC ) { //link to the works area of this group $tools .= "".Display::return_icon('works.gif', get_lang("GroupWork"))." ".get_lang("GroupWork")."
"; } if ( $current_group['announcements_state'] == TOOL_PUBLIC) { //link to a group-specific part of announcements $tools .= "".Display::return_icon('valves.gif', get_lang("GroupAnnouncements"))." ".get_lang("GroupAnnouncements")."
"; } if ( $current_group['wiki_state'] == TOOL_PUBLIC ) { //link to the wiki area of this group $tools .= "".Display::return_icon('wiki.gif', get_lang('GroupWiki'))." ".get_lang('GroupWiki')."
"; } echo ''.get_lang("Tools").':'; if (!empty($tools)) { echo '
'.$tools.'
'; } } /* * list all the tutors of the current group */ $tutors = GroupManager::get_subscribed_tutors($current_group['id']); $tutor_info = ''; if (count($tutors) == 0) { $tutor_info = get_lang("GroupNoneMasc"); } else { isset($origin)?$my_origin = $origin:$my_origin=''; foreach($tutors as $index => $tutor) { $tutor_info .= "
 ".$tutor['firstname']." ".$tutor['lastname']."
"; } } echo ''.get_lang("GroupTutors").':'; if (!empty($tutor_info)) { echo '
'.$tutor_info.'
'; } /* * list all the members of the current group */ echo ''.get_lang("GroupMembers").':'; $table = new SortableTable('group_users', 'get_number_of_group_users', 'get_group_user_data',2); $my_cidreq=isset($_GET['cidReq']) ? $_GET['cidReq'] : ''; $my_origin=isset($_GET['origin']) ? $_GET['origin'] : ''; $my_gidreq=isset($_GET['gidReq']) ? $_GET['gidReq'] : ''; $parameters = array('cidReq' => $my_cidreq, 'origin'=> $my_origin, 'gidReq' => $my_gidreq); $table->set_additional_parameters($parameters); $table->set_header(0, ''); $table->set_header(1, get_lang('LastName')); $table->set_header(2, get_lang('FirstName')); if (api_get_setting("show_email_addresses") == "true") { $table->set_header(3, get_lang('Email')); $table->set_column_filter(3, 'email_filter'); } else { if (api_is_allowed_to_edit()=="true") { $table->set_header(3, get_lang('Email')); $table->set_column_filter(3, 'email_filter'); } } $table->set_column_filter(0, 'user_icon_filter'); $table->display(); /** * Get the number of subscribed users to the group * * @return integer * * @author Patrick Cool , Ghent University, Belgium * @version April 2008 */ function get_number_of_group_users() { global $current_group; // Database table definition $table_group_user = Database :: get_course_table(TABLE_GROUP_USER); // query $sql = "SELECT count(id) AS number_of_users FROM ".$table_group_user." WHERE group_id='".Database::escape_string($current_group['id'])."'"; $result = api_sql_query($sql,__FILE__,__LINE__); $return = Database::fetch_array($result,'ASSOC'); return $return['number_of_users']; } /** * Get the details of the users in a group * * @param integer $from starting row * @param integer $number_of_items number of items to be displayed * @param integer $column sorting colum * @param integer $direction sorting direction * @return array * * @author Patrick Cool , Ghent University, Belgium * @version April 2008 */ function get_group_user_data($from, $number_of_items, $column, $direction) { global $current_group; // Database table definition $table_group_user = Database :: get_course_table(TABLE_GROUP_USER); $table_user = Database :: get_main_table(TABLE_MAIN_USER); // query if (api_get_setting("show_email_addresses") == "true") { $sql = "SELECT user.user_id AS col0, user.lastname AS col1, user.firstname AS col2, user.email AS col3 FROM ".$table_user." user, ".$table_group_user." group_rel_user WHERE group_rel_user.user_id = user.user_id AND group_rel_user.group_id = '".Database::escape_string($current_group['id'])."'"; $sql .= " ORDER BY col$column $direction "; $sql .= " LIMIT $from,$number_of_items"; } else { if (api_is_allowed_to_edit()=="true") { $sql = "SELECT user.user_id AS col0, user.lastname AS col1, user.firstname AS col2, user.email AS col3 FROM ".$table_user." user, ".$table_group_user." group_rel_user WHERE group_rel_user.user_id = user.user_id AND group_rel_user.group_id = '".Database::escape_string($current_group['id'])."'"; $sql .= " ORDER BY col$column $direction "; $sql .= " LIMIT $from,$number_of_items"; } else { $sql = "SELECT user.user_id AS col0, user.lastname AS col1, user.firstname AS col2 FROM ".$table_user." user, ".$table_group_user." group_rel_user WHERE group_rel_user.user_id = user.user_id AND group_rel_user.group_id = '".Database::escape_string($current_group['id'])."'"; $sql .= " ORDER BY col$column $direction "; $sql .= " LIMIT $from,$number_of_items"; } } $return = array (); $result = api_sql_query($sql,__FILE__,__LINE__); while ($row = Database::fetch_row($result)) { $return[] = $row; } return $return; } /** * Returns a mailto-link * @param string $email An email-address * @return string HTML-code with a mailto-link */ function email_filter($email) { return Display :: encrypted_mailto_link($email, $email); } /** * Display a user icon that links to the user page * * @param integer $user_id the id of the user * @return html code * * @author Patrick Cool , Ghent University, Belgium * @version April 2008 */ function user_icon_filter($user_id) { global $origin; return ""; } // footer isset($origin)?$orig=$origin:$orig=''; if ($orig != 'learnpath') { Display::display_footer(); } ?>