5 include_once
"./Services/Container/classes/class.ilContainerGUI.php";
31 $this->
ilContainerGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
33 $this->ctrl->saveParameter($this,
'ref_id');
35 $this->lng->loadLanguageModule(
'ilinc');
49 if(!$rbacsystem->checkAccess(
'create',
$_GET[
'ref_id'], $new_type))
51 $this->ilias->raiseError($this->lng->txt(
'permission_denied'), $this->ilias->error_obj->MESSAGE);
55 return $this->tpl->setVariable(
'ADM_CONTENT', $this->form_gui->getHtml());
62 if(!$ilAccess->checkAccess(
'write',
'', (
int)
$_GET[
'ref_id']))
64 $this->ilErr->raiseError($this->lng->txt(
'permission_denied'), $this->ilErr->MESSAGE);
68 if($this->form_gui->checkInput())
70 $_POST[
'Fobject'][
'title'] = $this->form_gui->getInput(
'title');
71 $_POST[
'Fobject'][
'desc'] = $this->form_gui->getInput(
'desc');
72 $_POST[
'Fobject'][
'activated'] = $this->form_gui->getInput(
'activated');
73 $_POST[
'Fobject'][
'akclassvalue1'] = $this->form_gui->getInput(
'akclassvalue1');
74 $_POST[
'Fobject'][
'akclassvalue2'] = $this->form_gui->getInput(
'akclassvalue2');
81 if($this->ilias->getSetting(
'ilinc_akclassvalues_active'))
83 if($this->object->getAKClassValue1() !=
$_POST[
'Fobject'][
'akclassvalue1'])
88 if($this->object->getAKClassValue2() !=
$_POST[
'Fobject'][
'akclassvalue2'])
98 $this->ilErr->raiseError($this->object->getErrorMsg(), $this->ilErr->MESSAGE);
102 if(array_key_exists(
'akclassvalue1',
$_POST[
'Fobject']) or
103 array_key_exists(
'akclassvalue2',
$_POST[
'Fobject']))
105 if(!$this->object->updateClassrooms())
108 $this->form_gui->setValuesByPost();
109 return $this->tpl->setVariable(
'ADM_CONTENT', $this->form_gui->getHtml());
114 $this->form_gui->setValuesByPost();
115 return $this->tpl->setVariable(
'ADM_CONTENT', $this->form_gui->getHtml());
119 $this->form_gui->setValuesByPost();
120 return $this->tpl->setVariable(
'ADM_CONTENT', $this->form_gui->getHtml());
131 if($this->form_gui->checkInput())
133 $_POST[
'Fobject'][
'title'] = $this->form_gui->getInput(
'title');
134 $_POST[
'Fobject'][
'desc'] = $this->form_gui->getInput(
'desc');
135 $_POST[
'Fobject'][
'activated'] = $this->form_gui->getInput(
'activated');
136 $_POST[
'Fobject'][
'akclassvalue1'] = $this->form_gui->getInput(
'akclassvalue1');
137 $_POST[
'Fobject'][
'akclassvalue2'] = $this->form_gui->getInput(
'akclassvalue2');
140 include_once
'Modules/ILinc/classes/class.ilnetucateXMLAPI.php';
142 $ilinc->addCourse(
$_POST[
'Fobject']);
144 $this->iLincAddCourseResponse = $ilinc->sendRequest();
145 if($this->iLincAddCourseResponse->isError())
147 $this->ilErr->raiseError($this->iLincAddCourseResponse->getErrorMsg(), $this->ilErr->MESSAGE);
155 $this->form_gui->setValuesByPost();
156 return $this->tpl->setVariable(
'ADM_CONTENT', $this->form_gui->getHtml());
166 $a_new_object->storeiLincId($this->iLincAddCourseResponse->getFirstID());
167 $a_new_object->saveActivationStatus(
ilUtil::tf2yn((
bool)$this->form_gui->getInput(
'activated')));
168 $a_new_object->saveAKClassValues(
169 $this->form_gui->getInput(
'akclassvalue1'),
170 $this->form_gui->getInput(
'akclassvalue2')
174 $success = $a_new_object->addMember($this->ilias->account, $a_new_object->getDefaultAdminRole(),
true);
179 $this->ctrl->returnToParent($this);
186 $this->ilias->account->addDesktopItem($a_new_object->
getRefId(),
'icrs');
200 global $rbacsystem,$ilAccess;
202 $this->ctrl->setParameter($this,
'ref_id',$this->ref_id);
204 if($rbacsystem->checkAccess(
'read',$this->ref_id))
206 $tabs_gui->addTarget(
'ilinc_classrooms',
207 $this->ctrl->getLinkTarget($this,
''),
208 array(
'',
'view',
'editClassroom',
'updateClassroom',
'removeClassroom')
212 if($this->ilias->getSetting(
'ilinc_active'))
214 if($ilAccess->checkAccess(
'write',
'', $this->ref_id))
216 $tabs_gui->addTarget(
'edit_properties',
217 $this->ctrl->getLinkTarget($this,
'edit'), array(
'edit',
'update',
'save'), get_class($this));
227 if($ilAccess->checkAccess(
'write',
'',$this->ref_id))
229 $tabs_gui->addTarget(
"ilinc_involved_users",
230 $this->ctrl->getLinkTarget($this,
"members"),
231 array(
"members",
"mailMembers",
"membersGallery",
"showProfile",
'changeMember',
'RemoveMember'),
234 elseif ($ilAccess->checkAccess(
'read',
'',$this->ref_id))
236 $tabs_gui->addTarget(
"ilinc_involved_users",
237 $this->ctrl->getLinkTarget($this,
"membersGallery"),
238 array(
"members",
"mailMembers",
"membersGallery",
"showProfile"),
242 if ($rbacsystem->checkAccess(
'write',$this->ref_id) and $this->
object->isDocent($this->ilias->account))
245 $tabs_gui->addTarget(
"ilinc_manage_course_documents",
246 $url = $this->object->userLogin($this->ilias->account),
"agenda",
"",
"_blank");
261 if ($rbacsystem->checkAccess(
'edit_permission',$this->ref_id))
263 $tabs_gui->addTarget(
"perm_settings",
264 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"), array(
"perm",
"info",
"owner"),
'ilpermissiongui');
268 if (
$_GET[
"baseClass"] ==
"ilRepositoryGUI" and !empty(
$_SESSION[
'il_rep_clipboard']))
270 $tabs_gui->addTarget(
"clipboard",
271 $this->ctrl->getLinkTarget($this,
"clipboard"),
"clipboard", get_class($this));
274 if ($this->ctrl->getTargetScript() ==
"adm_object.php")
276 if ($this->tree->getSavedNodeData($this->ref_id))
278 $tabs_gui->addTarget(
"trash",
279 $this->ctrl->getLinkTarget($this,
"trash"),
"trash", get_class($this));
286 unset(
$_SESSION[
"grp_delete_member_ids"]);
287 unset(
$_SESSION[
"grp_delete_subscriber_ids"]);
295 public function __search($a_search_string,$a_search_for)
297 include_once(
"./Services/Search/classes/class.ilSearch.php");
299 $this->lng->loadLanguageModule(
"content");
301 $search->setPerformUpdate(
false);
303 $search->setCombination(
"and");
304 $search->setSearchFor(array(0 => $a_search_for));
305 $search->setSearchType(
'new');
307 if($search->validate($message))
309 $search->performSearch();
314 $this->ctrl->redirect($this,
"searchUserForm");
317 return $search->getResultByType($a_search_for);
322 $return_to =
"searchUserForm";
324 if ($a_cmd ==
"listUsersRole" or $a_cmd ==
"listUsersGroup")
326 $return_to =
"search";
330 $tpl =& $tbl->getTemplateObject();
333 $tpl->setCurrentBlock(
"tbl_form_header");
334 $tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
335 $tpl->parseCurrentBlock();
337 $tpl->setCurrentBlock(
"tbl_action_btn");
338 $tpl->setVariable(
"BTN_NAME",$return_to);
339 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"back"));
340 $tpl->parseCurrentBlock();
342 $tpl->setCurrentBlock(
"tbl_action_btn");
343 $tpl->setVariable(
"BTN_NAME",
"addUser");
344 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"add"));
345 $tpl->parseCurrentBlock();
347 if (!empty($a_user_ids))
350 $tpl->setCurrentBlock(
"tbl_action_toggle_checkboxes");
351 $tpl->setVariable(
"JS_VARNAME",
"user");
353 $tpl->setVariable(
"TXT_CHECKALL", $this->lng->txt(
"check_all"));
354 $tpl->setVariable(
"TXT_UNCHECKALL", $this->lng->txt(
"uncheck_all"));
355 $tpl->parseCurrentBlock();
358 $tpl->setCurrentBlock(
"tbl_action_row");
359 $tpl->setVariable(
"COLUMN_COUNTS",5);
361 $tpl->parseCurrentBlock();
363 $tbl->setTitle($this->lng->txt(
"ilinc_header_edit_users"),
"icon_usr_b.png",$this->lng->txt(
"ilinc_header_edit_users"));
364 $tbl->setHeaderNames(array(
"",
365 $this->lng->txt(
"username"),
366 $this->lng->txt(
"firstname"),
367 $this->lng->txt(
"lastname"),
368 $this->lng->txt(
"last_visit")));
369 $tbl->setHeaderVars(array(
"",
374 array(
"ref_id" => $this->object->getRefId(),
376 "cmdClass" =>
"ilobjilinccoursegui",
377 "cmdNode" =>
$_GET[
"cmdNode"]));
379 $tbl->setColumnWidth(array(
"",
"33%",
"33%",
"33%"));
384 $this->tpl->setVariable(
"SEARCH_RESULT_TABLE",$tbl->tpl->get());
392 $tpl =& $tbl->getTemplateObject();
394 $tpl->setCurrentBlock(
"tbl_form_header");
395 $tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
396 $tpl->parseCurrentBlock();
398 $tpl->setCurrentBlock(
"tbl_action_btn");
399 $tpl->setVariable(
"BTN_NAME",
"searchUserForm");
400 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"back"));
401 $tpl->parseCurrentBlock();
403 $tpl->setCurrentBlock(
"tbl_action_btn");
404 $tpl->setVariable(
"BTN_NAME",
"listUsersRole");
405 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"grp_list_users"));
406 $tpl->parseCurrentBlock();
408 if (!empty($a_role_ids))
411 $tpl->setCurrentBlock(
"tbl_action_toggle_checkboxes");
412 $tpl->setVariable(
"JS_VARNAME",
"role");
414 $tpl->setVariable(
"TXT_CHECKALL", $this->lng->txt(
"check_all"));
415 $tpl->setVariable(
"TXT_UNCHECKALL", $this->lng->txt(
"uncheck_all"));
416 $tpl->parseCurrentBlock();
419 $tpl->setCurrentBlock(
"tbl_action_row");
420 $tpl->setVariable(
"COLUMN_COUNTS",5);
422 $tpl->parseCurrentBlock();
424 $tbl->setTitle($this->lng->txt(
"ilinc_header_edit_users"),
"icon_usr_b.png",$this->lng->txt(
"ilinc_header_edit_users"));
425 $tbl->setHeaderNames(array(
"",
426 $this->lng->txt(
"obj_role"),
427 $this->lng->txt(
"grp_count_members")));
428 $tbl->setHeaderVars(array(
"",
431 array(
"ref_id" => $this->object->getRefId(),
433 "cmdClass" =>
"ilobjilincoursegui",
434 "cmdNode" =>
$_GET[
"cmdNode"]));
436 $tbl->setColumnWidth(array(
"",
"80%",
"19%"));
442 $this->tpl->setVariable(
"SEARCH_RESULT_TABLE",$tbl->tpl->get());
450 $tpl =& $tbl->getTemplateObject();
452 $tpl->setCurrentBlock(
"tbl_form_header");
453 $tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
454 $tpl->parseCurrentBlock();
456 $tpl->setCurrentBlock(
"tbl_action_btn");
457 $tpl->setVariable(
"BTN_NAME",
"searchUserForm");
458 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"back"));
459 $tpl->parseCurrentBlock();
461 $tpl->setCurrentBlock(
"tbl_action_btn");
462 $tpl->setVariable(
"BTN_NAME",
"listUsersGroup");
463 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"grp_list_users"));
464 $tpl->parseCurrentBlock();
466 if (!empty($a_grp_ids))
469 $tpl->setCurrentBlock(
"tbl_action_toggle_checkboxes");
470 $tpl->setVariable(
"JS_VARNAME",
"group");
472 $tpl->setVariable(
"TXT_CHECKALL", $this->lng->txt(
"check_all"));
473 $tpl->setVariable(
"TXT_UNCHECKALL", $this->lng->txt(
"uncheck_all"));
474 $tpl->parseCurrentBlock();
477 $tpl->setCurrentBlock(
"tbl_action_row");
478 $tpl->setVariable(
"COLUMN_COUNTS",5);
480 $tpl->parseCurrentBlock();
482 $tbl->setTitle($this->lng->txt(
"ilinc_header_edit_users"),
"icon_usr_b.png",$this->lng->txt(
"ilinc_header_edit_users"));
483 $tbl->setHeaderNames(array(
"",
484 $this->lng->txt(
"obj_grp"),
485 $this->lng->txt(
"grp_count_members")));
486 $tbl->setHeaderVars(array(
"",
489 array(
"ref_id" => $this->object->getRefId(),
491 "cmdClass" =>
"ilobjilinccoursegui",
492 "cmdNode" =>
$_GET[
"cmdNode"]));
494 $tbl->setColumnWidth(array(
"",
"80%",
"19%"));
500 $this->tpl->setVariable(
"SEARCH_RESULT_TABLE",$tbl->tpl->get());
507 include_once
"./Services/Table/classes/class.ilTableGUI.php";
517 $offset =
$_GET[
"update_subscribers"] ?
$_GET[
"offset"] : 0;
518 $order =
$_GET[
"update_subscribers"] ?
$_GET[
"sort_by"] :
'login';
519 $direction =
$_GET[
"update_subscribers"] ?
$_GET[
"sort_order"] :
'';
523 $offset =
$_GET[
"offset"];
524 $order =
$_GET[
"sort_by"] ?
$_GET[
"sort_by"] :
"title";
525 $direction =
$_GET[
"sort_order"];
529 $offset =
$_GET[
"offset"];
530 $order =
$_GET[
"sort_by"] ?
$_GET[
"sort_by"] :
"title";
531 $direction =
$_GET[
"sort_order"];
535 $offset =
$_GET[
"offset"];
537 if (
$_GET[
"sort_by"] ==
"title" or empty(
$_GET[
"sort_by"]))
539 $_GET[
"sort_by"] =
"login";
541 $order =
$_GET[
"sort_by"];
542 $direction =
$_GET[
"sort_order"];
546 $tbl->setOrderColumn($order);
547 $tbl->setOrderDirection($direction);
548 $tbl->setOffset($offset);
549 $tbl->setLimit(
$_GET[
"limit"]);
551 $tbl->setFooter(
"tblfooter",$this->lng->txt(
"previous"),$this->lng->txt(
"next"));
552 $tbl->setData($result_set);
557 global $rbacsystem,$rbacreview;
562 if(!$rbacsystem->checkAccess(
"write", $this->object->getRefId()))
564 $this->ilias->raiseError($this->lng->txt(
"msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
567 if(!is_array(
$_POST[
"role"]))
575 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.grp_usr_selection.html",
577 $this->
__showButton(
"searchUserForm",$this->lng->txt(
"grp_new_search"));
581 foreach(
$_POST[
"role"] as $role_id)
583 $members = array_merge($rbacreview->assignedUsers($role_id),$members);
586 $members = array_unique($members);
591 foreach($members as $user)
598 $user_ids[$counter] = $user;
601 $f_result[$counter][] = $tmp_obj->getLogin();
602 $f_result[$counter][] = $tmp_obj->getLastname();
603 $f_result[$counter][] = $tmp_obj->getFirstname();
616 global $rbacsystem,$rbacreview,
$tree;
621 if(!$rbacsystem->checkAccess(
"write", $this->object->getRefId()))
623 $this->ilias->raiseError($this->lng->txt(
"msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
626 if(!is_array(
$_POST[
"group"]))
634 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.grp_usr_selection.html",
636 $this->
__showButton(
"searchUserForm",$this->lng->txt(
"grp_new_search"));
640 foreach(
$_POST[
"group"] as $group_id)
642 if (!$tree->isInTree($group_id))
651 $members = array_merge($tmp_obj->getGroupMemberIds(),$members);
656 $members = array_unique($members);
661 foreach($members as $user)
668 $user_ids[$counter] = $user;
671 $f_result[$counter][] = $tmp_obj->getLogin();
672 $f_result[$counter][] = $tmp_obj->getLastname();
673 $f_result[$counter][] = $tmp_obj->getFirstname();
719 if(!$this->ilias->getSetting(
'ilinc_active'))
721 $this->ilias->raiseError($lng->txt(
'ilinc_server_not_active'), $this->ilias->error_obj->MESSAGE);
724 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.icrs_members.html',
'Modules/ILinc');
727 $this->lng->loadLanguageModule(
'ilinc');
730 $is_admin = (bool)$ilAccess->checkAccess(
'write',
'', $this->object->getRefId());
733 $ilToolbar->addButton($this->lng->txt(
'ilinc_add_user'), $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
'start'));
737 $val_contact =
"<img src=\"".ilUtil::getImagePath(
"icon_pencil_b.png").
"\" alt=\"".$this->lng->txt(
"ilinc_mem_send_mail").
"\" title=\"".$this->lng->txt(
"ilinc_mem_send_mail").
"\" border=\"0\" vspace=\"0\"/>";
738 $val_change =
"<img src=\"".ilUtil::getImagePath(
"icon_change_b.png").
"\" alt=\"".$this->lng->txt(
"ilinc_mem_change_status").
"\" title=\"".$this->lng->txt(
"ilinc_mem_change_status").
"\" border=\"0\" vspace=\"0\"/>";
739 $val_leave =
"<img src=\"".ilUtil::getImagePath(
"icon_group_out_b.png").
"\" alt=\"".$this->lng->txt(
"ilinc_mem_leave").
"\" title=\"".$this->lng->txt(
"ilinc_mem_leave").
"\" border=\"0\" vspace=\"0\"/>";
742 $access_leave = $ilAccess->checkAccess(
'leave',
'', $this->object->getRefId());
743 $access_write = $ilAccess->checkAccess(
'write',
'', $this->object->getRefId());
745 $member_ids = $this->
object->getMemberIds();
748 $members = $this->
object->getMemberData($member_ids);
751 $docent_ids = $this->
object->getiLincMemberIds(
true);
752 $student_ids = $this->
object->getiLincMemberIds(
false);
755 $result_set = array();
756 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
757 foreach($members as $mem)
760 $link_change = $this->ctrl->getLinkTarget($this,
'changeMember').
'&mem_id='.$mem[
'id'];
761 if(($mem[
'id'] == $ilUser->getId() && $access_leave) || $access_delete)
763 $link_leave = $this->ctrl->getLinkTarget($this,
'removeMember').
'&mem_id='.$mem[
'id'];
767 $member_functions =
'';
770 $member_functions =
"<a href=\"$link_change\">$val_change</a>";
772 if(($mem[
'id'] == $ilUser->getId() && $access_leave) || $access_write)
774 $link_leave = $this->ctrl->getLinkTarget($this,
'removeMember').
'&mem_id='.$mem[
'id'];
775 $member_functions .=
"<a href=\"$link_leave\">$val_leave</a>";
779 $str_member_roles = $this->
object->getMemberRolesTitle($mem[
'id']);
783 $result_set[$counter][
'checkbox'] = ilUtil::formCheckBox(0,
'user_id[]', $mem[
'id']);
786 $status = $this->
object->checkiLincMemberStatus($mem[
'ilinc_id'], $docent_ids, $student_ids);
787 if($status == ILINC_MEMBER_NOTSET)
789 $status =
"<span class='warning'>".$this->lng->txt($status).
"</span>";
793 $status = $this->lng->txt($status);
796 $result_set[$counter][
'login'] = $mem[
'login'];
797 $result_set[$counter][
'firstname'] = $mem[
'firstname'];
798 $result_set[$counter][
'lastname'] = $mem[
'lastname'];
799 $result_set[$counter][
'attending_as'] = $status;
800 $result_set[$counter][
'role'] = $str_member_roles;
801 $result_set[$counter][
'options'] =
"<a href=\"$link_contact\">".$val_contact.
"</a>".$member_functions;
805 unset($member_functions);
808 include_once
'Modules/ILinc/classes/class.iliLinkMembersTableGUI.php';
810 $oTable->setTitle($this->lng->txt(
'ilinc_involved_users'),
'icon_usr_b.png', $this->lng->txt(
'ilinc_involved_users'));
812 return $this->tpl->setVariable(
'MEMBER_TABLE', $oTable->getHTML());
819 $next_class = $this->ctrl->getNextClass($this);
820 $cmd = $this->ctrl->getCmd();
825 case "ilconditionhandlerinterface":
826 include_once
'./Services/AccessControl/classes/class.ilConditionHandlerInterface.php';
831 $this->ctrl->saveParameter($this,
'item_id',$_GET[
'item_id']);
832 $this->ctrl->forwardCommand($new_gui);
837 $this->ctrl->forwardCommand($new_gui);
841 case 'ilrepositorysearchgui':
842 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
844 $rep_search->setCallback($this,
'addUserObject');
847 $this->tabs_gui->setTabActive(
'members');
848 $this->ctrl->setReturn($this,
'members');
849 $ret =& $this->ctrl->forwardCommand($rep_search);
851 $this->tabs_gui->setSubTabActive(
'members');
854 case "ilobjilincclassroomgui":
855 include_once (
'./Modules/ILinc/classes/class.ilObjiLincClassroomGUI.php');
857 $ret =& $this->ctrl->forwardCommand($icla_gui);
860 case 'ilpermissiongui':
861 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
863 $ret =& $this->ctrl->forwardCommand($perm_gui);
866 case 'ilpublicuserprofilegui':
867 require_once
'./Services/User/classes/class.ilPublicUserProfileGUI.php';
869 $html = $this->ctrl->forwardCommand($profile_gui);
871 $this->tabs_gui->setTabActive(
'group_members');
872 $this->tabs_gui->setSubTabActive(
'grp_members_gallery');
873 $this->tpl->setVariable(
"ADM_CONTENT", $html);
877 if (!$this->
getCreationMode() and !$ilAccess->checkAccess(
'visible',
'',$this->object->getRefId(),
'icrs'))
879 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),$ilErr->MESSAGE);
895 global
$ilCtrl, $ilNavigationHistory, $ilAccess;
897 if(!$ilAccess->checkAccess(
'read',
'', $this->object->getRefId()))
899 $this->ilias->raiseError($this->lng->txt(
'msg_no_perm_read'), $this->ilias->error_obj->MESSAGE);
904 $ilAccess->checkAccess(
'read',
'', $this->object->getRefId()))
906 $ilNavigationHistory->addItem($this->object->getRefId(),
907 'ilias.php?baseClass=ilRepositoryGUI&cmd=view&ref_id='.$this->object->getRefId(),
'icrs');
910 if(strtolower(
$_GET[
'baseClass']) ==
'iladministrationgui')
922 $url = $this->
object->userLogin($this->ilias->account);
926 $this->ilias->raiseError($this->object->getErrorMsg(),$this->ilias->error_obj->FATAL);
936 $this->lng->loadLanguageModule(
'search');
939 if(!$rbacsystem->checkAccess(
"write", $this->object->getRefId()))
941 $this->ilias->raiseError($this->lng->txt(
"msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
944 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.grp_members_search.html",
947 $this->tpl->setVariable(
"F_ACTION",$this->ctrl->getFormAction($this));
948 $this->tpl->setVariable(
"SEARCH_ASSIGN_USR",$this->lng->txt(
"grp_search_members"));
949 $this->tpl->setVariable(
"SEARCH_SEARCH_TERM",$this->lng->txt(
"search_search_term"));
950 $this->tpl->setVariable(
"SEARCH_VALUE",
$_SESSION[
"grp_search_str"] ?
$_SESSION[
"grp_search_str"] :
"");
951 $this->tpl->setVariable(
"SEARCH_FOR",$this->lng->txt(
"exc_search_for"));
952 $this->tpl->setVariable(
"SEARCH_ROW_TXT_USER",$this->lng->txt(
"exc_users"));
953 $this->tpl->setVariable(
"SEARCH_ROW_TXT_ROLE",$this->lng->txt(
"exc_roles"));
954 $this->tpl->setVariable(
"SEARCH_ROW_TXT_GROUP",$this->lng->txt(
"exc_groups"));
955 $this->tpl->setVariable(
"BTN2_VALUE",$this->lng->txt(
"cancel"));
956 $this->tpl->setVariable(
"BTN1_VALUE",$this->lng->txt(
"search"));
958 $usr = (
$_POST[
"search_for"] ==
"usr" ||
$_POST[
"search_for"] ==
"") ? 1 : 0;
959 $grp = (
$_POST[
"search_for"] ==
"grp") ? 1 : 0;
960 $role = (
$_POST[
"search_for"] ==
"role") ? 1 : 0;
971 global $rbacsystem,
$tree;
977 if(!$rbacsystem->checkAccess(
"write", $this->object->getRefId()))
979 $this->ilias->raiseError($this->lng->txt(
"msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
982 if(!isset(
$_POST[
"search_for"]) or !isset(
$_POST[
"search_str"]))
998 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.grp_usr_selection.html",
1000 $this->
__showButton(
"searchUserForm",$this->lng->txt(
"grp_new_search"));
1003 $f_result = array();
1005 switch(
$_POST[
"search_for"])
1015 $user_ids[$counter] = $user[
"id"];
1018 $f_result[$counter][] = $tmp_obj->getLogin();
1019 $f_result[$counter][] = $tmp_obj->getFirstname();
1020 $f_result[$counter][] = $tmp_obj->getLastname();
1034 if ($role[
"id"] == ANONYMOUS_ROLE_ID)
1045 if ($tmp_obj->getCountMembers() == 0)
1050 $role_ids[$counter] = $role[
"id"];
1053 $f_result[$counter][] = array($tmp_obj->getTitle(),$tmp_obj->getDescription());
1054 $f_result[$counter][] = $tmp_obj->getCountMembers();
1067 if(!$tree->isInTree($group[
"id"]))
1078 if ($tmp_obj->getId() == $this->
object->getId())
1083 $grp_ids[$counter] = $group[
"id"];
1086 $f_result[$counter][] = array($tmp_obj->getTitle(),$tmp_obj->getDescription());
1087 $f_result[$counter][] = $tmp_obj->getCountMembers();
1093 if(!count($f_result))
1113 $user_ids =
$_POST[
"user"];
1114 include_once
'Services/Mail/classes/class.ilMail.php';
1117 if (empty($user_ids[0]))
1120 $this->ilErr->raiseError($this->lng->txt(
"no_checkbox"),$this->ilErr->MESSAGE);
1123 foreach ($user_ids as $new_member)
1125 $user_obj = $this->ilias->obj_factory->getInstanceByObjId($new_member);
1127 if (!$this->object->addMember($user_obj,$this->object->getDefaultMemberRole(),
false))
1130 $this->ilErr->raiseError($this->object->getErrorMsg(),$this->ilErr->MESSAGE);
1133 $user_obj->addDesktopItem($this->object->getRefId(),
"icrs");
1134 $mail->sendMail($user_obj->getLogin(),
"",
"",$this->lng->txtlng(
"common",
"ilinc_mail_subj_new_subscription",$user_obj->getLanguage()).
": ".$this->object->getTitle(),$this->lng->txtlng(
"common",
"ilinc_mail_body_new_subscription",$user_obj->getLanguage()),array(),array(
'normal'));
1144 ilUtil::redirect($this->ctrl->getLinkTarget($this,
"members",
"",
false,
false));
1157 $user_ids = array();
1159 if(isset(
$_POST[
'user_id']))
1161 $user_ids =
$_POST[
'user_id'];
1163 else if(isset(
$_GET[
'mem_id']))
1165 $user_ids[] =
$_GET[
'mem_id'];
1167 else if(isset(
$_GET[
'mem_id_arr']))
1169 $user_ids = explode(
',',
$_GET[
'mem_id_arr']);
1172 if(empty($user_ids[0]))
1174 $this->ilErr->raiseError($this->lng->txt(
"no_checkbox"), $this->ilErr->MESSAGE);
1177 if(count($user_ids) == 1 && $ilUser->getId() != $user_ids[0])
1179 if(!$rbacreview->isAssigned($ilUser->getId(), SYSTEM_ROLE_ID) &&
1180 !in_array($ilUser->getId(), $this->
object->getAdminIds()))
1182 $this->ilErr->raiseError($this->lng->txt(
"ilinc_err_no_permission"), $this->ilErr->MESSAGE);
1187 $is_dismiss_me = array_search($this->ilias->account->getId(), $user_ids);
1189 $confirm =
"confirmedRemoveMember";
1190 $cancel =
"canceled";
1191 $info = ($is_dismiss_me !==
false) ?
"ilinc_dismiss_myself" :
"ilinc_dismiss_member";
1193 $return =
"members";
1198 if(is_array($user_ids))
1200 foreach($user_ids as $id)
1205 'title' => $obj_data->getTitle(),
1206 'desc' => $obj_data->getDescription(),
1207 'last_update' => $obj_data->getLastUpdateDate()
1214 $data[$user_ids] = array(
1216 'title' => $obj_data->getTitle(),
1217 'desc' => $obj_data->getDescription(),
1218 'last_update' => $obj_data->getLastUpdateDate(),
1223 if(is_array($user_ids))
1225 $_SESSION[
'saved_post'][
'user_id'] = $user_ids;
1229 $_SESSION[
'saved_post'][
'user_id'][0] = $user_ids;
1234 $_SESSION[
'saved_post'][
'status'] = $status;
1237 include_once
'Modules/ILinc/classes/class.iliLinkConfirmationTableGUI.php';
1238 $this->ctrl->setParameter($this,
'cmd_return_location', $a_cmd_return_location);
1239 $this->ctrl->setParameter($this,
'mem_id_arr', implode(
',', $user_ids));
1241 $oTable->addCommandButton($cancel, $this->lng->txt(
'cancel'));
1242 $oTable->addCommandButton($confirm, $this->lng->txt(
'confirm'));
1244 return $this->tpl->setContent($oTable->getHTML());
1251 function confirmationObject($user_id =
'', $confirm =
'', $cancel =
'', $info =
'', $status =
'', $a_cmd_return_location =
'', $invokeMethod =
'')
1266 $removed_self =
false;
1267 include_once
'Services/Mail/classes/class.ilMail.php';
1271 foreach(
$_SESSION[
"saved_post"][
"user_id"] as $member_id)
1275 if (!$this->object->removeMember($user_obj))
1278 ilUtil::redirect($this->ctrl->getLinkTarget($this,
"members",
"",
false,
false));
1281 $user_obj->dropDesktopItem($this->object->getRefId(),
"icrs");
1283 if (!$removed_self and $user_obj->getId() == $this->ilias->account->getId())
1285 $removed_self =
true;
1289 $mail->sendMail($user_obj->getLogin(),
"",
"",$this->lng->txtlng(
"common",
"ilinc_mail_subj_subscription_cancelled",$user_obj->getLanguage()).
": ".$this->object->getTitle(),$this->lng->txtlng(
"common",
"ilinc_mail_body_subscription_cancelled",$user_obj->getLanguage()),array(),array(
'normal'));
1299 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
1300 $this->tree->getParentId($this->ref_id));
1301 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
1304 ilUtil::redirect($this->ctrl->getLinkTarget($this,
"members",
"",
false,
false));
1317 $member_ids = array();
1319 if(isset(
$_POST[
'user_id']))
1321 $member_ids =
$_POST[
'user_id'];
1323 else if(isset(
$_GET[
'mem_id']))
1325 $member_ids[0] =
$_GET[
'mem_id'];
1327 else if(isset(
$_GET[
'mem_id_arr']))
1329 $member_ids = explode(
',',
$_GET[
'mem_id_arr']);
1332 if(empty($member_ids[0]))
1334 $this->ilErr->raiseError($this->lng->txt(
'no_checkbox'), $this->ilErr->MESSAGE);
1337 if(!$rbacreview->isAssigned($ilUser->getId(), SYSTEM_ROLE_ID) &&
1338 !in_array($ilUser->getId(), $this->
object->getAdminIds()))
1340 $this->ilErr->raiseError($this->lng->txt(
'grp_err_no_permission'), $this->ilErr->MESSAGE);
1343 $stati = array_flip($this->object->getLocalRoles(
true));
1346 $docent_ids = $this->
object->getiLincMemberIds(
true);
1347 $student_ids = $this->
object->getiLincMemberIds(
false);
1352 foreach($member_ids as $member_id)
1355 $mem_status = $this->
object->getMemberRoles($member_id);
1357 include_once
'Modules/ILinc/classes/class.ilObjiLincUser.php';
1360 $ilinc_status = $this->
object->checkiLincMemberStatus($ilinc_user->id, $docent_ids, $student_ids);
1362 $docent = 0; $student = 0;
1364 if($ilinc_status == ILINC_MEMBER_DOCENT)
1368 else if($ilinc_status == ILINC_MEMBER_STUDENT)
1373 $radio1 =
ilUtil::formRadioButton($docent,
'ilinc_member_status_select['.$member->getId().
']['.$ilinc_user->id.
']', ILINC_MEMBER_DOCENT);
1374 $radio2 =
ilUtil::formRadioButton($student,
'ilinc_member_status_select['.$member->getId().
']['.$ilinc_user->id.
']', ILINC_MEMBER_STUDENT);
1376 $data[$member->getId()] = array(
1377 'login' => $member->getLogin(),
1378 'firstname' => $member->getFirstname(),
1379 'lastname' => $member->getLastname(),
1380 'attending_as' => $radio1.
' '.$this->lng->txt(
'ilinc_docent').
'<br />'.$radio2.
' '.$this->lng->txt(
'ilinc_student'),
1381 'grp_role' =>
ilUtil::formSelect($mem_status,
'member_status_select['.$member->getId().
'][]', $stati,
true,
true, 3)
1388 include_once
'Modules/ILinc/classes/class.iliLinkMembersTableGUI.php';
1389 $this->ctrl->setParameter($this,
'mem_id_arr', implode(
',', $member_ids));
1391 $oTable->setTitle($this->lng->txt(
'grp_mem_change_status'),
'icon_usr_b.png', $this->lng->txt(
'grp_mem_change_status'));
1393 return $this->tpl->setContent($oTable->getHTML());
1404 if(!$ilAccess->checkAccess(
'write',
'', $this->object->getRefId()))
1406 $this->ilErr->raiseError(
'permission_denied',$this->ilErr->MESSAGE);
1409 if(isset(
$_POST[
'member_status_select']))
1411 foreach(
$_POST[
'member_status_select'] as $key => $value)
1413 $this->
object->leave($key);
1414 $this->
object->join($key,$value);
1418 if(isset(
$_POST[
'ilinc_member_status_select']))
1420 $users_to_add = array();
1421 $users_to_register = array();
1422 $users_to_unregister = array();
1424 foreach(
$_POST[
'ilinc_member_status_select'] as $user_id => $ilinc_arr)
1426 $ilinc_user_id = key($ilinc_arr);
1427 $ilinc_user_status = current($ilinc_arr);
1434 if($ilinc_user_id == 0)
1441 include_once
'Modules/ILinc/classes/class.ilObjiLincUser.php';
1444 if(!$ilinc_user->id)
1447 $users_to_add[] =& $user_obj;
1451 $users_to_register[$ilinc_user->id] = ILINC_MEMBER_STUDENT;
1458 $users_to_unregister[] = $ilinc_user_id;
1459 $users_to_register[$ilinc_user_id] = $ilinc_user_status;
1463 if(!$this->object->unregisterUsers($users_to_unregister))
1467 $this->ilErr->raiseError($this->object->getErrorMsg(),$this->ilErr->MESSAGE);
1470 if(count($users_to_add) > 0)
1473 foreach ($users_to_add as $user)
1475 if (!$this->object->addUser($user))
1479 $this->ilErr->raiseError($this->object->getErrorMsg(),$this->ilErr->MESSAGE);
1484 include_once
'Modules/ILinc/classes/class.ilObjiLincUser.php';
1486 $users_to_register[$ilinc_user->id] = ILINC_MEMBER_STUDENT;
1491 if(!$this->object->registerUsers($users_to_register))
1495 $this->ilErr->raiseError($this->object->getErrorMsg(),$this->ilErr->MESSAGE);
1500 ilUtil::redirect($this->ctrl->getLinkTarget($this,
'members',
'',
false,
false));
1505 if(!$this->ilias->getSetting(
'ilinc_active'))
1507 $this->ilias->raiseError($this->lng->txt(
'ilinc_server_not_active'), $this->ilias->error_obj->MESSAGE);
1512 return $this->tpl->setVariable(
'ADM_CONTENT', $this->form_gui->getHtml());
1517 $this->form_gui->setValuesByArray(array(
1518 'title' => $this->object->getTitle(),
1519 'desc' => $this->
object->getDescription(),
1520 'activated' => (int)$this->object->activated,
1521 'akclassvalue1' => $this->object->getAKClassValue1(),
1522 'akclassvalue2' => $this->
object->getAKClassValue2(),
1528 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
1531 $this->form_gui->setTableWidth(
'600');
1532 if($a_mode ==
'create')
1534 $this->form_gui->setTitle($this->lng->txt(
'icrs_new'));
1538 $this->form_gui->setTitle($this->lng->txt(
'icrs_edit'));
1543 $text_input =
new ilTextInputGUI($this->lng->txt(
'title'),
'title');
1545 $this->form_gui->addItem($text_input);
1549 $this->form_gui->addItem($text_area);
1553 $this->form_gui->addItem($text_area);
1556 if($this->ilias->getSetting(
'ilinc_akclassvalues_active'))
1559 $section_header->setTitle($this->lng->txt(
'akclassvalues'));
1560 $this->form_gui->addItem($section_header);
1562 $text_input =
new ilTextInputGUI($this->lng->txt(
'akclassvalue1'),
'akclassvalue1');
1563 if($this->ilias->getSetting(
'ilinc_akclassvalues_required'))
1567 $this->form_gui->addItem($text_input);
1569 $text_input =
new ilTextInputGUI($this->lng->txt(
'akclassvalue2'),
'akclassvalue2');
1570 $this->form_gui->addItem($text_input);
1573 if($this->call_by_reference)
1575 $this->ctrl->setParameter($this,
'obj_id', $this->obj_id);
1579 if($a_mode ==
'create')
1581 $this->ctrl->setParameter($this,
'mode',
'create');
1582 $this->ctrl->setParameter($this,
'new_type',
'icrs');
1584 $this->form_gui->addCommandButton(
'save', $this->lng->txt(
'icrs_add'));
1585 $this->form_gui->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
1586 $this->form_gui->setFormAction($this->ctrl->getFormAction($this,
'save'));
1590 $this->form_gui->addCommandButton(
'update', $this->lng->txt(
'save'));
1591 $this->form_gui->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
1592 $this->form_gui->setFormAction($this->ctrl->getFormAction($this,
'update'));
1600 if(!$ilAccess->checkAccess(
'join',
'', (
int)
$_GET[
'ref_id']))
1602 $this->ilias->raiseError($this->lng->txt(
'permission_denied'), $this->ilias->error_obj->MESSAGE);
1605 if(!$this->object->addMember($this->ilias->account, $this->object->getDefaultMemberRole(),
false))
1607 $this->ilErr->raiseError($this->object->getErrorMsg(), $this->ilErr->MESSAGE);
1610 $this->ilias->account->addDesktopItem($this->object->getRefId(),
"icrs");
1613 ilUtil::redirect($this->ctrl->getLinkTarget($this,
"view",
"",
false,
false));
1629 $this->tabs_gui->addSubTabTarget(
'members', $this->ctrl->getLinkTarget($this,
'members'), array(
'members',
'changeMember',
'removeMember'), get_class($this));
1630 $this->tabs_gui->addSubTabTarget(
'icrs_members_gallery', $this->ctrl->getLinkTarget($this,
'membersGallery'),
'membersGallery', get_class($this));
1631 $this->tabs_gui->addSubTabTarget(
'mail_members', $this->ctrl->getLinkTarget($this,
'mailMembers'),
'mailMembers', get_class($this));
1638 global $rbacreview, $ilObjDataCache;
1640 include_once
'Services/AccessControl/classes/class.ilObjRole.php';
1642 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.mail_members.html',
'Services/Contact');
1646 include_once(
"./Services/Link/classes/class.ilLink.php");
1648 include_once
'Services/Mail/classes/class.ilMail.php';
1649 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
1651 $this->tpl->setVariable(
'ADDITIONAL_MESSAGE_TEXT', $link_to_seminar);
1653 $this->tpl->setVariable(
'OK', $this->lng->txt(
'ok'));
1655 $role_folder = $rbacreview->getRoleFolderOfObject( $this->object->getRefId() );
1656 $role_ids = $rbacreview->getRolesOfRoleFolder($role_folder[
'ref_id'],
false);
1657 foreach($role_ids as $role_id)
1659 $this->tpl->setCurrentBlock(
'mailbox_row');
1660 $role_addr = $rbacreview->getRoleMailboxAddress( $role_id );
1661 $this->tpl->setVariable(
'CHECK_MAILBOX',
ilUtil::formCheckbox(1,
'roles[]', htmlspecialchars($role_addr)));
1662 if (ilMail::_usePearMail())
1665 $this->tpl->setVariable(
'MAILBOX', $role_addr);
1670 $this->tpl->setVariable(
'MAILBOX',
ilObjRole::_getTranslation( $ilObjDataCache->lookupTitle( $role_id ) ).
' (' . $role_addr .
')');
1673 $this->tpl->parseCurrentBlock();
1686 $is_admin = (bool) $rbacsystem->checkAccess(
'write', $this->object->getRefId());
1688 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.icrs_members_gallery.html',
'Modules/ILinc');
1692 $this->lng->loadLanguageModule(
'ilinc');
1694 $member_ids = $this->
object->getMemberIds();
1697 $members = $this->
object->getMemberData($member_ids);
1700 $admin_ids = $this->
object->getiLincMemberIds(
true);
1705 foreach($members as $member)
1713 $public_profile = $usr_obj->getPref(
'public_profile');
1716 $this->ctrl->setParameterByClass(
'ilpublicuserprofilegui',
'user', $member[
'id']);
1717 $profile_target = $this->ctrl->getLinkTargetByClass(
'ilpublicuserprofilegui',
'getHTML');
1720 $file = $usr_obj->getPersonalPicturePath(
'xsmall');
1722 switch(in_array($member[
'ilinc_id'],$admin_ids))
1726 if($public_profile ==
'y' || $public_profile ==
'g')
1728 $this->tpl->setCurrentBlock(
'tutor_linked');
1729 $this->tpl->setVariable(
'LINK_PROFILE', $profile_target);
1730 $this->tpl->setVariable(
'SRC_USR_IMAGE',
$file);
1731 $this->tpl->parseCurrentBlock();
1735 $this->tpl->setCurrentBlock(
'tutor_not_linked');
1736 $this->tpl->setVariable(
'SRC_USR_IMAGE',
$file);
1737 $this->tpl->parseCurrentBlock();
1739 $this->tpl->setCurrentBlock(
'tutor');
1743 if($public_profile ==
'y' || $public_profile ==
'g')
1745 $this->tpl->setCurrentBlock(
'member_linked');
1746 $this->tpl->setVariable(
'LINK_PROFILE', $profile_target);
1747 $this->tpl->setVariable(
'SRC_USR_IMAGE',
$file);
1748 $this->tpl->parseCurrentBlock();
1752 $this->tpl->setCurrentBlock(
'member_not_linked');
1753 $this->tpl->setVariable(
'SRC_USR_IMAGE',
$file);
1754 $this->tpl->parseCurrentBlock();
1756 $this->tpl->setCurrentBlock(
'member');
1761 if($public_profile ==
'y' || $public_profile ==
'g')
1763 $this->tpl->setVariable(
'FIRSTNAME', $member[
'firstname']);
1764 $this->tpl->setVariable(
'LASTNAME', $member[
'lastname']);
1767 $this->tpl->setVariable(
'LOGIN', $usr_obj->getLogin());
1768 $this->tpl->parseCurrentBlock();
1771 $this->tpl->setCurrentBlock(
'members');
1772 $this->tpl->setVariable(
'MEMBERS_TABLE_HEADER',$this->lng->txt(
'ilinc_involved_users'));
1773 $this->tpl->parseCurrentBlock();
1776 $this->tpl->setVariable(
'TITLE', $this->lng->txt(
'icrs_members_print_title'));
1779 $headline = $this->
object->getTitle().
'<br />'.$this->
object->getDescription();
1780 $this->tpl->setVariable(
'HEADLINE', $headline);
1799 if ($ilAccess->checkAccess(
'read',
'', $a_target))
1805 $ilErr->raiseError($lng->txt(
'msg_no_perm_read'), $ilErr->FATAL);