00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 include_once './Services/Tracking/classes/class.ilLearningProgressBaseGUI.php';
00027 include_once './Services/Tracking/classes/class.ilLMStatistics.php';
00028
00029 class ilLMStatisticsGUI extends ilLearningProgressBaseGUI {
00030
00031 var $lm_statistics;
00032
00033 function ilLMStatisticsGUI($a_mode, $a_ref_id) {
00034 parent :: ilLearningProgressBaseGUI($a_mode, $a_ref_id);
00035
00036 $this->lm_statistics = new ilLMStatistics($this->obj_id);
00037 }
00038
00043 function show() {
00044 global $tpl, $lng, $ilias;
00045
00046 $q = "SELECT obj_id, type,title FROM object_data WHERE type ='lm' and obj_id=".$this->obj_id;
00047 $result = $ilias->db->query($q);
00048 while ($row = $result->fetchRow()) {
00049 $Lehrmodulanz ++;
00050 $LehrmodulID[$Lehrmodulanz] = $row[0];
00051 $rLehrmodulID[$row[0]] = $Lehrmodulanz;
00052 $LehrmodulName[$Lehrmodulanz] = $row[2];
00053 }
00054
00055 $_SESSION["il_track_rlm_id"] = $rLehrmodulID;
00056 $_SESSION["il_track_lm_name"] = $LehrmodulName;
00057
00058 $q = "SELECT obj_id,title,type,lm_id FROM lm_data WHERE type='pg'";
00059 $result = $ilias->db->query($q);
00060 while ($row = $result->fetchRow()) {
00061 $LMSeitenanz[$rLehrmodulID[$row[3]]]++;
00062 }
00063
00064 $year = array (2004, 2005, 2006, 2007);
00065 $month = array (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
00066 $day = array (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31);
00067
00068 $tpl->addBlockFile("ADM_CONTENT", "adm_content", "Services/Tracking/templates/default/tpl.lm_statistics_settings.html");
00069
00070
00071 $tpl->setVariable("SEARCH_ACTION", $this->ctrl->getLinkTargetByClass('illmstatisticsgui',''));
00072 $tpl->setVariable("TXT_TRACKING_DATA", $lng->txt("tracking_data"));
00073 $tpl->setVariable("TXT_TIME_SEGMENT", $lng->txt("time_segment"));
00074 $tpl->setVariable("TXT_STATISTIC", $lng->txt("statistic"));
00075 $tpl->setVariable("TXT_STATISTIC_H", $lng->txt("stats_pages_statisics"));
00076 $tpl->setVariable("TXT_STATISTIC_D", $lng->txt("stats_chapter_statisics"));
00077 $tpl->setVariable("TXT_STATISTIC_O", $lng->txt("stats_sessions_statisics"));
00078 $tpl->setVariable("TXT_STATISTIC_U", $lng->txt("stats_navigation"));
00079 $tpl->setVariable("TXT_USER_LANGUAGE", $lng->txt("user_language"));
00080 $tpl->setVariable("TXT_LM", $lng->txt("lm"));
00081 $tpl->setVariable("TXT_SHOW_TR_DATA", $lng->txt("query_data"));
00082 $tpl->setVariable("TXT_SHOW_TR_DATA2", $lng->txt("stats_new_selection"));
00083 $tpl->setVariable("TXT_TRACKED_OBJECTS", $lng->txt("tracked_objects"));
00084 $tpl->setVariable("TXT_TRACKED_USER", $lng->txt("stats_tracked_user"));
00085
00086
00087 $tpl->setVariable("TXT_ALLE", $lng->txt("stats_all"));
00088 $tpl->setVariable("TXT_AUSWAHL", $lng->txt("stats_choice"));
00089
00090 if ($_SESSION["il_track_yearf"] == "") {
00091 $_SESSION["il_track_yearf"] = Date("Y");
00092 $_SESSION["il_track_yeart"] = Date("Y");
00093 $_SESSION["il_track_monthf"] = "1";
00094 $_SESSION["il_track_montht"] = Date("n");
00095 $_SESSION["il_track_dayf"] = "1";
00096 $_SESSION["il_track_dayt"] = Date("j");
00097 }
00098 if ($_SESSION["il_track_stat"] == "") {
00099 $_SESSION["il_track_stat"] = 'h';
00100 }
00101 $languages = $lng->getInstalledLanguages();
00102
00103 $tpl->setCurrentBlock("lm_selection");
00104 $_SESSION["il_track_lm"] = $this->obj_id;
00105 $tpl->setVariable("LM_ID", $LehrmodulID[1]);
00106 $tpl->setVariable("LM_DESC", substr($LehrmodulName[1], 0, 40)." (S:".$LMSeitenanz[1].")");
00107 $tpl->parseCurrentBlock();
00108
00109 if ($_SESSION["il_track_stat2"] == "choice") {
00110 $tpl->setVariable("CHC_CHK", " checked=\"1\" ");
00111
00112 } else {
00113 $tpl->setVariable("ALL_CHK", " checked=\"1\" ");
00114 }
00115
00116 $user_IDs = $_SESSION["userSelected_stat"];
00117
00118
00119 $tpl->setCurrentBlock("user_selection");
00120
00121 if (count($user_IDs) > 0) {
00122 foreach ($_SESSION["userSelected_stat"] as $result_id) {
00123 $tpl->setVariable("USER1", $result_id);
00124 $tpl->setVariable("USER2", $result_id);
00125 }
00126 } else {
00127 $tpl->setCurrentBlock("user_selection");
00128 $tpl->setVariable("USER1", "Alle");
00129 $tpl->setVariable("USER2", "Alle");
00130 }
00131
00132 include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
00133
00134 if (!ilObjUserTracking::_enabledUserRelatedData()) {
00135 $tpl->setVariable ("DISABLED", "disabled");
00136 $tpl->setVariable("ALL_CHK", " checked=\"1\" ");
00137 $tpl->setVariable("CHC_CHK", "");
00138 } else {
00139 $tpl->setVariable("INFO1", $lng->txt(stats_current).": ".count($_SESSION["userSelected_stat"])." ".$lng->txt("stats_user_selected"));
00140 }
00141
00142 $tpl->parseCurrentBlock();
00143
00144
00145 foreach ($year as $key) {
00146 $tpl->setCurrentBlock("fromyear_selection");
00147 $tpl->setVariable("YEARFR", $key);
00148 $tpl->setVariable("YEARF", $key);
00149 if ($_SESSION["il_track_yearf"] == $key) {
00150 $tpl->setVariable("YEARF_SEL", " selected=\"1\" ");
00151 }
00152 $tpl->parseCurrentBlock();
00153 }
00154 foreach ($month as $key) {
00155 $tpl->setCurrentBlock("frommonth_selection");
00156 $tpl->setVariable("MONTHFR", $key);
00157 $tpl->setVariable("MONTHF", $key);
00158 if ($_SESSION["il_track_monthf"] == $key) {
00159 $tpl->setVariable("MONTHF_SEL", " selected=\"1\" ");
00160 }
00161 $tpl->parseCurrentBlock();
00162 }
00163 foreach ($day as $key) {
00164 $tpl->setCurrentBlock("fromday_selection");
00165 $tpl->setVariable("DAYFR", $key);
00166 $tpl->setVariable("DAYF", $key);
00167 if ($_SESSION["il_track_dayf"] == $key) {
00168 $tpl->setVariable("DAYF_SEL", " selected=\"1\" ");
00169 }
00170 $tpl->parseCurrentBlock();
00171 }
00172
00173 foreach ($day as $key) {
00174 $tpl->setCurrentBlock("today_selection");
00175 $tpl->setVariable("DAYTO", $key);
00176 $tpl->setVariable("DAYT", $key);
00177 if ($_SESSION["il_track_dayt"] == $key) {
00178 $tpl->setVariable("DAYT_SEL", " selected=\"1\" ");
00179 }
00180 $tpl->parseCurrentBlock();
00181 }
00182 foreach ($month as $key) {
00183 $tpl->setCurrentBlock("tomonth_selection");
00184 $tpl->setVariable("MONTHTO", $key);
00185 $tpl->setVariable("MONTHT", $key);
00186 if ($_SESSION["il_track_montht"] == $key) {
00187 $tpl->setVariable("MONTHT_SEL", " selected=\"1\" ");
00188 }
00189 $tpl->parseCurrentBlock();
00190 }
00191 foreach ($year as $key) {
00192 $tpl->setCurrentBlock("toyear_selection");
00193 $tpl->setVariable("YEARTO", $key);
00194 $tpl->setVariable("YEART", $key);
00195 if ($_SESSION["il_track_yeart"] == $key) {
00196 $tpl->setVariable("YEART_SEL", " selected=\"1\" ");
00197 }
00198 $tpl->parseCurrentBlock();
00199 }
00200
00201 $tpl->setCurrentBlock("language_selection");
00202 $tpl->setVariable("LANG", $lng->txt("any_language"));
00203 $tpl->setVariable("LANGSHORT", "0");
00204 $tpl->parseCurrentBlock();
00205 foreach ($languages as $lang_key) {
00206 $tpl->setCurrentBlock("language_selection");
00207 $tpl->setVariable("LANG", $lng->txt("lang_".$lang_key));
00208 $tpl->setVariable("LANGSHORT", $lang_key);
00209 if ($_SESSION["il_track_language"] == $lang_key) {
00210 $tpl->setVariable("LANG_SEL", " selected=\"1\" ");
00211 }
00212 $tpl->parseCurrentBlock();
00213 }
00214
00215 if ($_SESSION["il_track_stat"] == "d") {
00216 $tpl->setVariable("D_CHK", " checked=\"1\" ");
00217 }
00218 elseif ($_SESSION["il_track_stat"] == "h") {
00219 $tpl->setVariable("H_CHK", " checked=\"1\" ");
00220 }
00221 elseif ($_SESSION["il_track_stat"] == "o") {
00222 $tpl->setVariable("O_CHK", " checked=\"1\" ");
00223 }
00224 elseif ($_SESSION["il_track_stat"] == "u") {
00225 $tpl->setVariable("U_CHK", " checked=\"1\" ");
00226 }
00227 }
00228
00233 function outputStatistics() {
00234 require_once "./Services/Tracking/classes/class.ilLMStatistics.php";
00235
00236 if ($_POST["stat"] == 'u') {
00237 $this->lm_statistics->outputApplet();
00238 } else {
00239 $this->lm_statistics->outputHTML();
00240 }
00241 }
00242
00246 function searchUserForm() {
00247 global $rbacsystem;
00248
00249 $this->lng->loadLanguageModule('search');
00250
00251
00252 if (!$rbacsystem->checkAccess("write", $this->ref_id)) {
00253 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->MESSAGE);
00254 }
00255
00256 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_members_search.html");
00257
00258 $this->tpl->setVariable("F_ACTION", $this->ctrl->getFormAction($this));
00259 $this->tpl->setVariable("SEARCH_ASSIGN_USR", $this->lng->txt("grp_search_members"));
00260 $this->tpl->setVariable("SEARCH_SEARCH_TERM", $this->lng->txt("search_search_term"));
00261 $this->tpl->setVariable("SEARCH_VALUE", $_SESSION["grp_search_str"] ? $_SESSION["grp_search_str"] : "");
00262 $this->tpl->setVariable("SEARCH_FOR", $this->lng->txt("exc_search_for"));
00263 $this->tpl->setVariable("SEARCH_ROW_TXT_USER", $this->lng->txt("exc_users"));
00264 $this->tpl->setVariable("SEARCH_ROW_TXT_ROLE", $this->lng->txt("exc_roles"));
00265 $this->tpl->setVariable("SEARCH_ROW_TXT_GROUP", $this->lng->txt("exc_groups"));
00266 $this->tpl->setVariable("BTN2_VALUE", $this->lng->txt("cancel"));
00267 $this->tpl->setVariable("BTN1_VALUE", $this->lng->txt("search"));
00268
00269 $usr = ($_POST["search_for"] == "usr" || $_POST["search_for"] == "") ? 1 : 0;
00270 $grp = ($_POST["search_for"] == "grp") ? 1 : 0;
00271 $role = ($_POST["search_for"] == "role") ? 1 : 0;
00272
00273 $this->tpl->setVariable("SEARCH_ROW_CHECK_USER", ilUtil :: formRadioButton($usr, "search_for", "usr"));
00274 $this->tpl->setVariable("SEARCH_ROW_CHECK_ROLE", ilUtil :: formRadioButton($role, "search_for", "role"));
00275 $this->tpl->setVariable("SEARCH_ROW_CHECK_GROUP", ilUtil :: formRadioButton($grp, "search_for", "grp"));
00276
00277 }
00278
00279 function cancelMember() {
00280 $return_location = "members";
00281
00282 sendInfo($this->lng->txt("action_aborted"), true);
00283 ilUtil :: redirect($this->ctrl->getLinkTarget($this, $return_location));
00284 }
00285
00286 function members() {
00287 $this->show();
00288 }
00289
00290 function search() {
00291 global $rbacsystem, $tree;
00292
00293 $_SESSION["grp_search_str"] = $_POST["search_str"] = $_POST["search_str"] ? $_POST["search_str"] : $_SESSION["grp_search_str"];
00294 $_SESSION["grp_search_for"] = $_POST["search_for"] = $_POST["search_for"] ? $_POST["search_for"] : $_SESSION["grp_search_for"];
00295
00296
00297 if (!$rbacsystem->checkAccess("write", $this->ref_id)) {
00298 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->MESSAGE);
00299 }
00300
00301 if (!isset ($_POST["search_for"]) or !isset ($_POST["search_str"])) {
00302 sendInfo($this->lng->txt("grp_search_enter_search_string"));
00303 $this->searchUserForm();
00304 return false;
00305 }
00306
00307 if (!count($result = $this->__search(ilUtil :: stripSlashes($_POST["search_str"]), $_POST["search_for"]))) {
00308 sendInfo($this->lng->txt("grp_no_results_found"));
00309 $this->searchUserForm();
00310
00311 return false;
00312 }
00313
00314 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
00315 $this->__showButton("searchUserForm", $this->lng->txt("grp_new_search"));
00316
00317 $counter = 0;
00318 $f_result = array ();
00319
00320 switch ($_POST["search_for"]) {
00321 case "usr" :
00322 foreach ($result as $user) {
00323 if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($user["id"], false)) {
00324 continue;
00325 }
00326
00327 $user_ids[$counter] = $user["id"];
00328
00329 $f_result[$counter][] = ilUtil :: formCheckbox(0, "user[]", $user["id"]);
00330 $f_result[$counter][] = $tmp_obj->getLogin();
00331 $f_result[$counter][] = $tmp_obj->getFirstname();
00332 $f_result[$counter][] = $tmp_obj->getLastname();
00333 $f_result[$counter][] = ilFormat :: formatDate($tmp_obj->getLastLogin());
00334
00335 unset ($tmp_obj);
00336 ++ $counter;
00337 }
00338 $this->__showSearchUserTable($f_result, $user_ids);
00339
00340 return true;
00341
00342 case "role" :
00343 foreach ($result as $role) {
00344
00345 if ($role["id"] == ANONYMOUS_ROLE_ID) {
00346 continue;
00347 }
00348
00349 if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($role["id"], false)) {
00350 continue;
00351 }
00352
00353
00354 if ($tmp_obj->getCountMembers() == 0) {
00355 continue;
00356 }
00357
00358 $role_ids[$counter] = $role["id"];
00359
00360 $f_result[$counter][] = ilUtil :: formCheckbox(0, "role[]", $role["id"]);
00361 $f_result[$counter][] = array ($tmp_obj->getTitle(), $tmp_obj->getDescription());
00362 $f_result[$counter][] = $tmp_obj->getCountMembers();
00363
00364 unset ($tmp_obj);
00365 ++ $counter;
00366 }
00367
00368 $this->__showSearchRoleTable($f_result, $role_ids);
00369
00370 return true;
00371
00372 case "grp" :
00373 foreach ($result as $group) {
00374 if (!$tree->isInTree($group["id"])) {
00375 continue;
00376 }
00377
00378 if (!$tmp_obj = ilObjectFactory :: getInstanceByRefId($group["id"], false)) {
00379 continue;
00380 }
00381
00382
00383 if ($tmp_obj->getId() == $this->object->getId()) {
00384 continue;
00385 }
00386
00387 $grp_ids[$counter] = $group["id"];
00388
00389 $f_result[$counter][] = ilUtil :: formCheckbox(0, "group[]", $group["id"]);
00390 $f_result[$counter][] = array ($tmp_obj->getTitle(), $tmp_obj->getDescription());
00391 $f_result[$counter][] = $tmp_obj->getCountMembers();
00392
00393 unset ($tmp_obj);
00394 ++ $counter;
00395 }
00396
00397 if (!count($f_result)) {
00398 sendInfo($this->lng->txt("grp_no_results_found"));
00399 $this->searchUserFormObject();
00400
00401 return false;
00402 }
00403
00404 $this->__showSearchGroupTable($f_result, $grp_ids);
00405
00406 return true;
00407 }
00408 }
00409 function searchCancelled() {
00410 sendInfo($this->lng->txt("action_aborted"), true);
00411 ilUtil :: redirect($this->ctrl->getLinkTarget($this, "members"));
00412 }
00413 function __search($a_search_string, $a_search_for) {
00414 include_once ("classes/class.ilSearch.php");
00415
00416 $this->lng->loadLanguageModule("content");
00417 $search = & new ilSearch($_SESSION["AccountId"]);
00418 $search->setPerformUpdate(false);
00419 $search->setSearchString(ilUtil :: stripSlashes($a_search_string));
00420 $search->setCombination("and");
00421 $search->setSearchFor(array (0 => $a_search_for));
00422 $search->setSearchType('new');
00423
00424 if ($search->validate($message)) {
00425 $search->performSearch();
00426 } else {
00427 sendInfo($message, true);
00428 $this->ctrl->redirect($this, "searchUserForm");
00429 }
00430
00431 return $search->getResultByType($a_search_for);
00432 }
00433
00434 function __showSearchUserTable($a_result_set, $a_user_ids = NULL, $a_cmd = "search") {
00435 $return_to = "searchUserForm";
00436
00437 if ($a_cmd == "listUsersRole" or $a_cmd == "listUsersGroup") {
00438 $return_to = "search";
00439 }
00440
00441 $tbl = & $this->__initTableGUI();
00442 $tpl = & $tbl->getTemplateObject();
00443
00444
00445 $tpl->setCurrentBlock("tbl_form_header");
00446 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00447 $tpl->parseCurrentBlock();
00448
00449 $tpl->setCurrentBlock("tbl_action_btn");
00450 $tpl->setVariable("BTN_NAME", $return_to);
00451 $tpl->setVariable("BTN_VALUE", $this->lng->txt("back"));
00452 $tpl->parseCurrentBlock();
00453
00454 $tpl->setCurrentBlock("tbl_action_btn");
00455 $tpl->setVariable("BTN_NAME", "addUser");
00456 $tpl->setVariable("BTN_VALUE", $this->lng->txt("add"));
00457 $tpl->parseCurrentBlock();
00458
00459 if (!empty ($a_user_ids)) {
00460
00461 $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
00462 $tpl->setVariable("JS_VARNAME", "user");
00463 $tpl->setVariable("JS_ONCLICK", ilUtil :: array_php2js($a_user_ids));
00464 $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
00465 $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
00466 $tpl->parseCurrentBlock();
00467 }
00468
00469 $tpl->setCurrentBlock("tbl_action_row");
00470 $tpl->setVariable("COLUMN_COUNTS", 5);
00471 $tpl->setVariable("IMG_ARROW", ilUtil :: getImagePath("arrow_downright.gif"));
00472 $tpl->parseCurrentBlock();
00473
00474 $tbl->setTitle($this->lng->txt("grp_header_edit_members"), "icon_usr_b.gif", $this->lng->txt("grp_header_edit_members"));
00475 $tbl->setHeaderNames(array ("", $this->lng->txt("username"), $this->lng->txt("firstname"), $this->lng->txt("lastname"), $this->lng->txt("last_visit")));
00476 $tbl->setHeaderVars(array ("", "login", "firstname", "lastname", "last_visit"), array ("ref_id" => $this->ref_id, "cmd" => $a_cmd, "cmdClass" => "ilobjgroupgui", "cmdNode" => $_GET["cmdNode"]));
00477
00478 $tbl->setColumnWidth(array ("", "33%", "33%", "33%"));
00479
00480 $this->__setTableGUIBasicData($tbl, $a_result_set);
00481 $tbl->render();
00482
00483 $this->tpl->setVariable("SEARCH_RESULT_TABLE", $tbl->tpl->get());
00484
00485 return true;
00486 }
00487
00488 function __showSearchRoleTable($a_result_set, $a_role_ids = NULL) {
00489 $tbl = & $this->__initTableGUI();
00490 $tpl = & $tbl->getTemplateObject();
00491
00492 $tpl->setCurrentBlock("tbl_form_header");
00493 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00494 $tpl->parseCurrentBlock();
00495
00496 $tpl->setCurrentBlock("tbl_action_btn");
00497 $tpl->setVariable("BTN_NAME", "searchUserForm");
00498 $tpl->setVariable("BTN_VALUE", $this->lng->txt("back"));
00499 $tpl->parseCurrentBlock();
00500
00501 $tpl->setCurrentBlock("tbl_action_btn");
00502 $tpl->setVariable("BTN_NAME", "listUsersRole");
00503 $tpl->setVariable("BTN_VALUE", $this->lng->txt("grp_list_users"));
00504 $tpl->parseCurrentBlock();
00505
00506 if (!empty ($a_role_ids)) {
00507
00508 $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
00509 $tpl->setVariable("JS_VARNAME", "role");
00510 $tpl->setVariable("JS_ONCLICK", ilUtil :: array_php2js($a_role_ids));
00511 $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
00512 $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
00513 $tpl->parseCurrentBlock();
00514 }
00515
00516 $tpl->setCurrentBlock("tbl_action_row");
00517 $tpl->setVariable("COLUMN_COUNTS", 5);
00518 $tpl->setVariable("IMG_ARROW", ilUtil :: getImagePath("arrow_downright.gif"));
00519 $tpl->parseCurrentBlock();
00520
00521 $tbl->setTitle($this->lng->txt("grp_header_edit_members"), "icon_usr_b.gif", $this->lng->txt("grp_header_edit_members"));
00522 $tbl->setHeaderNames(array ("", $this->lng->txt("obj_role"), $this->lng->txt("grp_count_members")));
00523 $tbl->setHeaderVars(array ("", "title", "nr_members"), array ("ref_id" => $this->ref_id, "cmd" => "search", "cmdClass" => "ilobjgroupgui", "cmdNode" => $_GET["cmdNode"]));
00524
00525 $tbl->setColumnWidth(array ("", "80%", "19%"));
00526
00527 $this->__setTableGUIBasicData($tbl, $a_result_set, "role");
00528 $tbl->render();
00529
00530 $this->tpl->setVariable("SEARCH_RESULT_TABLE", $tbl->tpl->get());
00531
00532 return true;
00533 }
00534
00540 function __setTableGUIBasicData(&$tbl,&$result_set,$a_from = "")
00541 {
00542 switch ($a_from)
00543 {
00544 case "clipboardObject":
00545 $offset = $_GET["offset"];
00546 $order = $_GET["sort_by"];
00547 $direction = $_GET["sort_order"];
00548 $tbl->disable("footer");
00549 break;
00550
00551 default:
00552 $offset = $_GET["offset"];
00553 $order = $_GET["sort_by"];
00554 $direction = $_GET["sort_order"];
00555 break;
00556 }
00557
00558 $tbl->setOrderColumn($order);
00559 $tbl->setOrderDirection($direction);
00560 $tbl->setOffset($offset);
00561 $tbl->setLimit($_GET["limit"]);
00562 $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
00563 $tbl->setData($result_set);
00564 }
00565
00566 function __showSearchGroupTable($a_result_set, $a_grp_ids = NULL) {
00567 $tbl = & $this->__initTableGUI();
00568 $tpl = & $tbl->getTemplateObject();
00569
00570 $tpl->setCurrentBlock("tbl_form_header");
00571 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00572 $tpl->parseCurrentBlock();
00573
00574 $tpl->setCurrentBlock("tbl_action_btn");
00575 $tpl->setVariable("BTN_NAME", "searchUserForm");
00576 $tpl->setVariable("BTN_VALUE", $this->lng->txt("back"));
00577 $tpl->parseCurrentBlock();
00578
00579 $tpl->setCurrentBlock("tbl_action_btn");
00580 $tpl->setVariable("BTN_NAME", "listUsersGroup");
00581 $tpl->setVariable("BTN_VALUE", $this->lng->txt("grp_list_users"));
00582 $tpl->parseCurrentBlock();
00583
00584 if (!empty ($a_grp_ids)) {
00585
00586 $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
00587 $tpl->setVariable("JS_VARNAME", "group");
00588 $tpl->setVariable("JS_ONCLICK", ilUtil :: array_php2js($a_grp_ids));
00589 $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
00590 $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
00591 $tpl->parseCurrentBlock();
00592 }
00593
00594 $tpl->setCurrentBlock("tbl_action_row");
00595 $tpl->setVariable("COLUMN_COUNTS", 5);
00596 $tpl->setVariable("IMG_ARROW", ilUtil :: getImagePath("arrow_downright.gif"));
00597 $tpl->parseCurrentBlock();
00598
00599 $tbl->setTitle($this->lng->txt("grp_header_edit_members"), "icon_usr_b.gif", $this->lng->txt("grp_header_edit_members"));
00600 $tbl->setHeaderNames(array ("", $this->lng->txt("obj_grp"), $this->lng->txt("grp_count_members")));
00601 $tbl->setHeaderVars(array ("", "title", "nr_members"), array ("ref_id" => $this->ref_id, "cmd" => "search", "cmdClass" => "ilobjgroupgui", "cmdNode" => $_GET["cmdNode"]));
00602
00603 $tbl->setColumnWidth(array ("", "80%", "19%"));
00604
00605 $this->__setTableGUIBasicData($tbl, $a_result_set, "group");
00606 $tbl->render();
00607
00608 $this->tpl->setVariable("SEARCH_RESULT_TABLE", $tbl->tpl->get());
00609
00610 return true;
00611 }
00612 function listUsersRole() {
00613 global $rbacsystem, $rbacreview;
00614
00615 $_SESSION["grp_role"] = $_POST["role"] = $_POST["role"] ? $_POST["role"] : $_SESSION["grp_role"];
00616
00617
00618 if (!$rbacsystem->checkAccess("write", $this->ref_id)) {
00619 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->MESSAGE);
00620 }
00621
00622 if (!is_array($_POST["role"])) {
00623 sendInfo($this->lng->txt("grp_no_roles_selected"));
00624 $this->searchObject();
00625
00626 return false;
00627 }
00628
00629 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
00630 $this->__showButton("searchUserForm", $this->lng->txt("grp_new_search"));
00631
00632
00633 $members = array ();
00634 foreach ($_POST["role"] as $role_id) {
00635 $members = array_merge($rbacreview->assignedUsers($role_id), $members);
00636 }
00637
00638 $members = array_unique($members);
00639
00640
00641 $counter = 0;
00642 $f_result = array ();
00643 foreach ($members as $user) {
00644 if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($user, false)) {
00645 continue;
00646 }
00647
00648 if (!$tmp_obj->active) {
00649 continue;
00650 }
00651
00652 $user_ids[$counter] = $user;
00653
00654 $f_result[$counter][] = ilUtil :: formCheckbox(0, "user[]", $user);
00655 $f_result[$counter][] = $tmp_obj->getLogin();
00656 $f_result[$counter][] = $tmp_obj->getLastname();
00657 $f_result[$counter][] = $tmp_obj->getFirstname();
00658 $f_result[$counter][] = ilFormat :: formatDate($tmp_obj->getLastLogin());
00659
00660 unset ($tmp_obj);
00661 ++ $counter;
00662 }
00663 $this->__showSearchUserTable($f_result, $user_ids, "listUsersRole");
00664
00665 return true;
00666 }
00667
00668 function listUsersGroup() {
00669 global $rbacsystem, $rbacreview, $tree;
00670
00671 $_SESSION["grp_group"] = $_POST["group"] = $_POST["group"] ? $_POST["group"] : $_SESSION["grp_group"];
00672
00673
00674 if (!$rbacsystem->checkAccess("write", $this->ref_id)) {
00675 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->MESSAGE);
00676 }
00677
00678 if (!is_array($_POST["group"])) {
00679 sendInfo($this->lng->txt("grp_no_groups_selected"));
00680 $this->searchObject();
00681
00682 return false;
00683 }
00684
00685 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
00686 $this->__showButton("searchUserForm", $this->lng->txt("grp_new_search"));
00687
00688
00689 $members = array ();
00690 foreach ($_POST["group"] as $group_id) {
00691 if (!$tree->isInTree($group_id)) {
00692 continue;
00693 }
00694 if (!$tmp_obj = ilObjectFactory :: getInstanceByRefId($group_id)) {
00695 continue;
00696 }
00697
00698 $members = array_merge($tmp_obj->getGroupMemberIds(), $members);
00699
00700 unset ($tmp_obj);
00701 }
00702
00703 $members = array_unique($members);
00704
00705
00706 $counter = 0;
00707 $f_result = array ();
00708 foreach ($members as $user) {
00709 if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($user, false)) {
00710 continue;
00711 }
00712
00713 $user_ids[$counter] = $user;
00714
00715 $f_result[$counter][] = ilUtil :: formCheckbox(0, "user[]", $user);
00716 $f_result[$counter][] = $tmp_obj->getLogin();
00717 $f_result[$counter][] = $tmp_obj->getLastname();
00718 $f_result[$counter][] = $tmp_obj->getFirstname();
00719 $f_result[$counter][] = ilFormat :: formatDate($tmp_obj->getLastLogin());
00720
00721 unset ($tmp_obj);
00722 ++ $counter;
00723 }
00724 $this->__showSearchUserTable($f_result, $user_ids, "listUsersGroup");
00725
00726 return true;
00727 }
00728
00729 function addUser() {
00730
00731 $user_ids = $_POST["user"];
00732
00733 if (empty ($user_ids[0])) {
00734
00735
00736 $this->ilErr->raiseError($this->lng->txt("no_checkbox"), $this->ilErr->MESSAGE);
00737 } else {
00738
00739 }
00740 $_SESSION["il_track_stat2"] = "choice";
00741 $_SESSION["userSelected_stat"] = $_POST["user"];
00742 $this->show();
00743
00744 }
00745
00749 function & executeCommand() {
00750 if (isset($_POST["cmd"]["searchUserForm"]))
00751 {
00752 $cmd = "searchUserForm";
00753 } elseif (isset($_POST["cmd"]["outputStatistics"]))
00754 {
00755 $cmd = "outputStatistics";
00756 } else switch ($this->ctrl->getNextClass()) {
00757 default :
00758 $cmd = $this->__getDefaultCommand();
00759 }
00760 $this-> $cmd ();
00761 return true;
00762 }
00763
00764 }
00765 ?>