Source for file group.php
Documentation is available at group.php
===============================================================================
Dokeos - elearning and course management software
Copyright (c) 2004-2008 Dokeos SPRL
Copyright (c) 2003 Ghent University (UGent)
Copyright (c) 2001 Universite catholique de Louvain (UCL)
Copyright (c) Roan Embrechts (Vrije Universiteit Brussel)
Copyright (c) Bart Mollet
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
See the GNU General Public License for more details.
Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
===============================================================================
==============================================================================
* Main page for the group module.
* This script displays the general group settings,
* and a list of groups with buttons to view, edit...
* @author Thomas Depraetere, Hugues Peeters, Christophe Gesche: initial versions
* @author Bert Vanderkimpen, improved self-unsubscribe for cvs
* @author Patrick Cool, show group comment under the group name
* @author Roan Embrechts, initial self-unsubscribe code, code cleaning, virtual course support
* @author Bart Mollet, code cleaning, use of Display-library, list of courseAdmin-tools, use of GroupManager
==============================================================================
==============================================================================
==============================================================================
// name of the language file that needs to be included
$language_file = 'group';
include ('../inc/global.inc.php');
// notice for unauthorized people.
$nameTools = get_lang('GroupManagement');
-----------------------------------------------------------
-----------------------------------------------------------
require_once (api_get_path(LIBRARY_PATH). 'course.lib.php');
require_once (api_get_path(LIBRARY_PATH). 'groupmanager.lib.php');
require_once (api_get_path(LIBRARY_PATH). 'events.lib.inc.php');
//Create default category if it doesn't exist when group categories aren't allowed
api_sql_query("INSERT INTO ". $cat_table. " ( id , title , description , forum_state , max_student , self_reg_allowed , self_unreg_allowed , groups_per_user , display_order ) VALUES ('2', '". lang2db($DefaultGroupCategory). "', '', '1', '8', '0', '0', '0', '0');");
-----------------------------------------------------------
-----------------------------------------------------------
if (!isset ($_GET['origin']) || $_GET['origin'] != 'learnpath')
{ //so we are not in learnpath tool
-----------------------------------------------------------
(editable by course admins)
-----------------------------------------------------------
* Self-registration and unregistration
if (isset ($_GET['action']))
if (isset ($_POST['action']))
switch ($_POST['action'])
if (isset ($_GET['action']))
echo '<div id="actions">';
echo '<ul id="groupItems">';
echo '<li><a href="group_category.php?'. api_get_cidreq(). '&action=add_category">'. get_lang('AddCategory'). '</a> </li>';
//echo '<a href="group_category.php?'.api_get_cidreq().'&id=2">'.Display::return_icon('edit_group.gif').' '.get_lang('PropModify').'</a> ';
//echo '<a href="group_creation.php?'.api_get_cidreq().'">'.Display::return_icon('group_add_big.gif').' '.get_lang('NewGroupCreate').'</a> ';
//echo '<a href="group_overview.php?'.api_get_cidreq().'">'.Display::return_icon('group_view.gif').' '.get_lang('GroupOverview').'</a> ';
//echo '<p><a href="?'.api_get_cidreq().'&show_all=1">'.get_lang('ShowAll').'</a></p>';
foreach ($group_cats as $index => $category)
if (isset ($_GET['show_all']) || (isset ($_GET['category']) && $_GET['category'] == $category['id']))
echo '<img src="../img/opendir.gif" alt=""/>';
echo ' <a href="group.php?'. api_get_cidreq(). '&origin='. $_GET['origin']. '">'. $category['title']. '</a>';
echo '<img src="../img/file.gif" alt=""/>';
echo ' <a href="group.php?'. api_get_cidreq(). '&origin='. $_GET['origin']. '&category='. $category['id']. '">'. $category['title']. '</a>';
echo '<a href="group_category.php?'. api_get_cidreq(). '&id='. $category['id']. '" title="'. get_lang('Edit'). '"><img src="../img/edit.gif" alt="'. get_lang('Edit'). '"/></a> ';
echo '<a href="group.php?'. api_get_cidreq(). '&action=delete_category&id='. $category['id']. '" onclick="javascript:if(!confirm('. "'". addslashes(htmlentities(get_lang('ConfirmYourChoice'))). "'". ')) return false;" title="'. get_lang('Delete'). '"><img src="../img/delete.gif" alt="'. get_lang('Delete'). '"/></a> ';
echo ' <a href="group.php?'. api_get_cidreq(). '&action=swap_cat_order&id1='. $category['id']. '&id2='. $group_cats[$index - 1]['id']. '"><img src="../img/up.gif" alt=""/></a>';
if ($index != count($group_cats) - 1)
echo ' <a href="group.php?'. api_get_cidreq(). '&action=swap_cat_order&id1='. $category['id']. '&id2='. $group_cats[$index + 1]['id']. '"><img src="../img/down.gif" alt=""/></a>';
echo '<p style="margin: 0px;margin-left: 50px;">'. $category['description']. '</p><p/>';
echo '<div style="margin: 0px;margin-left: 50px;">';
//if (count($group_list) > 0 && $in_category)
// Determine wether current user is tutor for this course
foreach ($group_list as $index => $this_group)
// all the tutors of this group
// create a new table-row
$row[] = $this_group['id'];
in_array($_user['user_id'],$tutorsids_of_group) ||
$this_group['is_member'] ||
$group_name = '<a href="group_space.php?'. api_get_cidreq(). '&origin='. $origin. '&gidReq='. $this_group['id']. '">'. stripslashes($this_group['name']). '</a>';
if ($_SESSION['_user']['user_id'] && $_SESSION['_user']['user_id'] == $this_group['id_tutor'])
$group_name .= ' ('. get_lang('OneMyGroups'). ')';
elseif ($this_group['is_member'])
$group_name .= ' ('. get_lang('MyGroup'). ')';
$row[] = $this_group['name']. '<br/>'. stripslashes(trim($this_group['description']));
// self-registration / unregistration
$row[] = '<a href="group.php?'. api_get_cidreq(). '&category='. $category['id']. '&action=self_reg&group_id='. $this_group['id']. '" onclick="javascript:if(!confirm('. "'". addslashes(htmlentities(get_lang('ConfirmYourChoice'))). "'". ')) return false;">'. get_lang('GroupSelfRegInf'). '</a>';
$row[] = '<a href="group.php?'. api_get_cidreq(). '&category='. $category['id']. '&action=self_unreg&group_id='. $this_group['id']. '" onclick="javascript:if(!confirm('. "'". addslashes(htmlentities(get_lang('ConfirmYourChoice'))). "'". ')) return false;">'. get_lang('GroupSelfUnRegInf'). '</a>';
// number of members in group
$row[] = $this_group['number_of_members'];
// max number of members in group
$row[] = ($this_group['maximum_number_of_members'] == MEMBER_PER_GROUP_NO_LIMIT ? '-' : $this_group['maximum_number_of_members']);
if(count($tutorsids_of_group)> 0)
foreach($tutorsids_of_group as $tutor_id){
$edit_actions = '<a href="group_edit.php?'. api_get_cidreq(). '&gidReq='. $this_group['id']. '" title="'. get_lang('Edit'). '"><img src="../img/edit.gif" alt="'. get_lang('Edit'). '"/></a> ';
$edit_actions .= '<a href="'. api_get_self(). '?'. api_get_cidreq(). '&category='. $category['id']. '&action=delete_one&id='. $this_group['id']. '" onclick="javascript:if(!confirm('. "'". addslashes(htmlentities(get_lang('ConfirmYourChoice'))). "'". ')) return false;" title="'. get_lang('Delete'). '"><img src="../img/delete.gif" alt="'. get_lang('Delete'). '"/></a> ';
$edit_actions .= '<a href="'. api_get_self(). '?'. api_get_cidreq(). '&category='. $category['id']. '&action=empty_one&id='. $this_group['id']. '" onclick="javascript:if(!confirm('. "'". addslashes(htmlentities(get_lang('ConfirmYourChoice'))). "'". ')) return false;" title="'. get_lang('EmptyGroup'). '"><img src="../img/group_delete.gif" alt="'. get_lang('EmptyGroup'). '"/></a> ';
$edit_actions .= '<a href="'. api_get_self(). '?'. api_get_cidreq(). '&category='. $category['id']. '&action=fill_one&id='. $this_group['id']. '" onclick="javascript:if(!confirm('. "'". addslashes(htmlentities(get_lang('ConfirmYourChoice'))). "'". ')) return false;" title="'. get_lang('FillGroup'). '"><img src="../img/add_user.gif" alt="'. get_lang('FillGroup'). '"/></a>';
$totalRegistered = $totalRegistered + $this_group['nbMember'];
if (isset ($_GET['show_all']))
$paging_options = array ('per_page' => count($group_data));
$paging_options = array ();
$table->set_additional_parameters(array('category'=> $_GET['category']));
$table->set_header($column++ ,'', false);
$table->set_header($column++ ,get_lang('ExistingGroups'));
$table->set_header($column++ ,get_lang('GroupSelfRegistration'));
$table->set_header($column++ ,get_lang('Registered'));
$table->set_header($column++ ,get_lang('Max'));
$table->set_header($column++ ,get_lang('GroupTutor'));
$table->set_header($column++ ,get_lang('Modify'), false);
$form_actions['delete_selected'] = get_lang('Delete');
$form_actions['fill_selected'] = get_lang('FillGroup');
$form_actions['empty_selected'] = get_lang('EmptyGroup');
if (count($group_list) > 1)
$table->set_form_actions($form_actions,'group');
echo get_lang('NoGroupsAvailable');
==============================================================================
==============================================================================
if (!isset ($_GET['origin']) || $_GET['origin'] != 'learnpath')
|