4 include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
24 public function __construct($a_parent_obj, $a_parent_cmd, $ref_id)
28 $lng->loadLanguageModule(
'grp');
30 $this->ref_id = $ref_id;
31 $this->obj_id = $ilObjDataCache->lookupObjId($this->ref_id);
33 $this->
setId(
'tblcrsprtgrp_' . $ref_id);
35 parent::__construct($a_parent_obj, $a_parent_cmd);
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");
57 $selectable_groups = [];
58 foreach ($this->groups as $ref_id => $something) {
59 if ($this->groups_rights[$ref_id][
'manage_members']) {
60 $selectable_groups[$ref_id] = $this->groups[$ref_id];
63 if (count($selectable_groups)) {
68 $this->lng->txt(
"crs_add_to_group")
84 global $tree, $ilAccess;
86 $parent_node = $tree->getNodeData($this->ref_id);
87 $groups = $tree->getSubTree($parent_node,
true,
"grp");
89 include_once(
'./Modules/Group/classes/class.ilGroupParticipants.php');
90 $this->participants = $this->groups = $this->groups_rights =
array();
91 foreach (
$groups as $idx => $group_data) {
93 if ($group_data[
"parent"] != $this->ref_id && $tree->checkForParentType($group_data[
"ref_id"],
"grp",
true)) {
96 $this->groups[$group_data[
"ref_id"]] = $group_data[
"title"];
97 $this->groups_rights[$group_data[
"ref_id"]][
"manage_members"] = (bool)
98 $GLOBALS[
'DIC']->access()->checkRbacOrPositionPermissionAccess(
101 $group_data[
'ref_id']
105 $this->groups_rights[$group_data[
"ref_id"]][
"edit_permission"] = (bool)
106 $GLOBALS[
'DIC']->access()->checkAccess(
109 $group_data[
"ref_id"]
114 $members =
$GLOBALS[
'DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
117 $group_data[
'ref_id'],
120 $admins =
$GLOBALS[
'DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
123 $group_data[
'ref_id'],
127 $this->participants[$group_data[
"ref_id"]][
"members"] = $members;
128 $this->participants[$group_data[
"ref_id"]][
"admins"] = $admins;
142 $this->filter[
"name"] = $item->getValue();
146 $item->setOptions(
array(
"" => $lng->txt(
"all"))+$this->groups);
147 $this->filter[
"group"] = $item->getValue();
157 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
159 $members =
$GLOBALS[
'DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
166 if (count($members)) {
167 include_once
'./Services/User/classes/class.ilUserUtil.php';
169 foreach ($members as $usr_id) {
173 $user_groups_number = 0;
174 foreach (array_keys($this->participants) as $group_id) {
175 if (in_array($usr_id, $this->participants[$group_id][
"members"])) {
176 $user_groups[
"members"][$group_id] = $this->groups[$group_id];
177 $user_groups_number++;
178 } elseif (in_array($usr_id, $this->participants[$group_id][
"admins"])) {
179 $user_groups[
"admins"][$group_id] = $this->groups[$group_id];
180 $user_groups_number++;
184 if ((!$this->filter[
"name"] || stristr(implode(
"",
$name), $this->filter[
"name"])) &&
185 (!$this->filter[
"group"] || array_key_exists($this->filter[
"group"], $user_groups[
"members"]) ||
186 array_key_exists($this->filter[
"group"], $user_groups[
"admins"]))) {
187 $usr_data[] =
array(
"usr_id" => $usr_id,
188 "name" =>
$name[
"lastname"] .
", " .
$name[
"firstname"],
189 "groups" => $user_groups,
190 "groups_number" => $user_groups_number,
191 "login" => $name[
"login"]
197 $usr_data = array_slice($usr_data, (
int) $this->
getOffset(), (
int) $this->
getLimit());
214 $this->tpl->setVariable(
"VAL_ID", $a_set[
"usr_id"]);
216 $this->tpl->setVariable(
"TXT_USER", $a_set[
"name"]);
217 $this->tpl->setVariable(
"TXT_LOGIN", $a_set[
"login"]);
218 $this->tpl->setVariable(
"VAL_GROUP_NUMBER", $a_set[
"groups_number"]);
220 if (
sizeof($a_set[
"groups"])) {
224 (
$type ==
"admins" && $this->groups_rights[$grp_id][
"edit_permission"]) ||
225 (
$type ==
"members" && $this->groups_rights[$grp_id][
"manage_members"])
227 $this->tpl->setCurrentBlock(
"groups_remove");
229 $this->tpl->setVariable(
"TXT_GROUP_REMOVE", $lng->txt(
"grp_unsubscribe"));
231 $ilCtrl->setParameter($this->parent_obj,
"usr_id", $a_set[
"usr_id"]);
232 $ilCtrl->setParameter($this->parent_obj,
"grp_id", $grp_id);
233 $this->tpl->setVariable(
"URL_REMOVE", $ilCtrl->getLinkTarget($this->parent_obj,
"confirmremove"));
234 $ilCtrl->setParameter($this->parent_obj,
"grp_id",
"");
235 $ilCtrl->setParameter($this->parent_obj,
"usr_id",
"");
237 $this->tpl->parseCurrentBlock();
240 $this->tpl->setCurrentBlock(
"groups");
241 $this->tpl->setVariable(
"TXT_GROUP_TITLE",
$title);
242 $this->tpl->parseCurrentBlock();
static _lookupName($a_user_id)
lookup user name
__construct($a_parent_obj, $a_parent_cmd, $ref_id)
Constructor.
initGroups()
find groups in course, exclude groups in groups
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
addFilterItemByMetaType($id, $type=self::FILTER_TEXT, $a_optional=false, $caption=null)
Add filter by standard type.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
Create styles array
The data for the language used.
addMultiItemSelectionButton($a_sel_var, $a_options, $a_cmd, $a_text, $a_default_selection='')
Add Selection List + Command button for selected items.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
fillRow($a_set)
Fill table row.
getItems()
Build item rows for given object and filter(s)
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setEnableHeader($a_enableheader)
Set Enable Header.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
setMaxCount($a_max_count)
set max.
setLimit($a_limit=0, $a_default_limit=0)