4 include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
28 $lng->loadLanguageModule(
'grp');
31 $this->obj_id = $ilObjDataCache->lookupObjId($this->ref_id);
33 $this->
setId(
"tblcrsprtgrp");
40 $this->
setTitle($this->lng->txt(
'crs_grp_assignments'));
43 $this->
addColumn($this->lng->txt(
"name"),
"name",
'35%');
44 $this->
addColumn($this->lng->txt(
"login"),
"login",
'35%');
45 $this->
addColumn($this->lng->txt(
"crs_groups_nr"),
"groups_number");
46 $this->
addColumn($this->lng->txt(
"groups"));
50 $this->
setFormAction($ilCtrl->getFormAction($a_parent_obj, $a_parent_cmd));
51 $this->
setRowTemplate(
"tpl.crs_members_grp_row.html",
"Modules/Course");
70 global $tree, $ilAccess;
72 $parent_node = $tree->getNodeData($this->ref_id);
73 $groups = $tree->getSubTree($parent_node,
true,
"grp");
76 include_once(
'./Modules/Group/classes/class.ilGroupParticipants.php');
77 $this->participants = $this->groups = $this->groups_rights = array();
78 foreach(
$groups as $idx => $group_data)
81 if($group_data[
"parent"] != $this->ref_id && $tree->checkForParentType($group_data[
"ref_id"],
"grp",
true))
87 $this->groups[$group_data[
"ref_id"]] = $group_data[
"title"];
88 $this->groups_rights[$group_data[
"ref_id"]][
"write"] = (bool)$ilAccess->checkAccess(
"write",
"", $group_data[
"ref_id"]);
89 $this->groups_rights[$group_data[
"ref_id"]][
"edit_permission"] = (bool)$ilAccess->checkAccess(
"edit_permission",
"", $group_data[
"ref_id"]);
91 $this->participants[$group_data[
"ref_id"]][
"members"] = $gobj->getMembers();
92 $this->participants[$group_data[
"ref_id"]][
"admins"] = $gobj->getAdmins();
106 $this->filter[
"name"] = $item->getValue();
111 $item->setOptions(array(
"" => $lng->txt(
"all"))+$this->groups);
112 $this->filter[
"group"] = $item->getValue();
123 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
125 $members = $part->getMembers();
128 include_once
'./Services/User/classes/class.ilUserUtil.php';
130 foreach($members as $usr_id)
134 $user_groups = array(
"members"=>array(),
"admins"=>array());
135 $user_groups_number = 0;
136 foreach(array_keys($this->participants) as $group_id)
138 if(in_array($usr_id, $this->participants[$group_id][
"members"]))
140 $user_groups[
"members"][$group_id] = $this->groups[$group_id];
141 $user_groups_number++;
143 else if(in_array($usr_id, $this->participants[$group_id][
"admins"]))
145 $user_groups[
"admins"][$group_id] = $this->groups[$group_id];
146 $user_groups_number++;
150 if((!$this->filter[
"name"] || stristr(implode(
"", $name), $this->filter[
"name"])) &&
151 (!$this->filter[
"group"] || array_key_exists($this->filter[
"group"], $user_groups[
"members"]) ||
152 array_key_exists($this->filter[
"group"], $user_groups[
"admins"])))
154 $usr_data[] = array(
"usr_id" => $usr_id,
155 "name" => $name[
"lastname"].
", " . $name[
"firstname"],
156 "groups" => $user_groups,
157 "groups_number" => $user_groups_number,
158 "login" => $name[
"login"]
164 $usr_data = array_slice($usr_data, (
int)$this->
getOffset(), (
int)$this->
getLimit());
181 $this->tpl->setVariable(
"VAL_ID", $a_set[
"usr_id"]);
183 $this->tpl->setVariable(
"TXT_USER", $a_set[
"name"]);
184 $this->tpl->setVariable(
"TXT_LOGIN", $a_set[
"login"]);
185 $this->tpl->setVariable(
"VAL_GROUP_NUMBER", $a_set[
"groups_number"]);
187 if(
sizeof($a_set[
"groups"]))
190 foreach($a_set[
"groups"] as $type =>
$groups)
194 if(($type ==
"admins" && $this->groups_rights[$grp_id][
"edit_permission"]) ||
195 ($type ==
"members" && $this->groups_rights[$grp_id][
"write"]))
197 $this->tpl->setCurrentBlock(
"groups_remove");
199 $this->tpl->setVariable(
"TXT_GROUP_REMOVE", $lng->txt(
"grp_unsubscribe"));
201 $ilCtrl->setParameter($this->parent_obj,
"usr_id", $a_set[
"usr_id"]);
202 $ilCtrl->setParameter($this->parent_obj,
"grp_id", $grp_id);
203 $this->tpl->setVariable(
"URL_REMOVE", $ilCtrl->getLinkTarget($this->parent_obj,
"confirmremove"));
204 $ilCtrl->setParameter($this->parent_obj,
"grp_id",
"");
205 $ilCtrl->setParameter($this->parent_obj,
"usr_id",
"");
207 $this->tpl->parseCurrentBlock();
210 $this->tpl->setCurrentBlock(
"groups");
211 $this->tpl->setVariable(
"TXT_GROUP_TITLE",
$title);
212 $this->tpl->parseCurrentBlock();