• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

Services/Tracking/classes/class.ilLMStatisticsGUI.php

Go to the documentation of this file.
00001 <?php
00002 
00003 
00004 /*
00005         +-----------------------------------------------------------------------------+
00006         | ILIAS open source                                                           |
00007         +-----------------------------------------------------------------------------+
00008         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00009         |                                                                             |
00010         | This program is free software; you can redistribute it and/or               |
00011         | modify it under the terms of the GNU General Public License                 |
00012         | as published by the Free Software Foundation; either version 2              |
00013         | of the License, or (at your option) any later version.                      |
00014         |                                                                             |
00015         | This program is distributed in the hope that it will be useful,             |
00016         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00017         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00018         | GNU General Public License for more details.                                |
00019         |                                                                             |
00020         | You should have received a copy of the GNU General Public License           |
00021         | along with this program; if not, write to the Free Software                 |
00022         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
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, 2008,2009,2010);
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 //              $tpl->setVariable("SEARCH_ACTION", ".php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
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                 //Datum von:
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                 //Datum nach:
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                 // language selection
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                 // statistic type
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') { //Beobachtungsmodell starten
00237                         $this->lm_statistics->outputApplet();
00238                 } else { //Session-,Seiten-,Kapitelstats starten
00239                         $this->lm_statistics->outputHTML();
00240                 }
00241         }
00242 
00246         function searchUserForm() {
00247                 global $rbacsystem;
00248 
00249                 $this->lng->loadLanguageModule('search');
00250 
00251                 // MINIMUM ACCESS LEVEL = 'administrate'
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                 ilUtil::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                 // MINIMUM ACCESS LEVEL = 'administrate'
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                         ilUtil::sendInfo($this->lng->txt("grp_search_enter_search_string"));
00303                         $this->searchUserForm();
00304 
00305                         return false;
00306                 }
00307 
00308                 if (!count($result = $this->__search(ilUtil :: stripSlashes($_POST["search_str"]), $_POST["search_for"]))) {
00309                         ilUtil::sendInfo($this->lng->txt("grp_no_results_found"));
00310                         $this->searchUserForm();
00311 
00312                         return false;
00313                 }
00314 
00315                 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
00316                 $this->__showButton("searchUserForm", $this->lng->txt("grp_new_search"));
00317 
00318                 $counter = 0;
00319                 $f_result = array ();
00320 
00321                 switch ($_POST["search_for"]) {
00322                         case "usr" :
00323                                 foreach ($result as $user) {
00324                                         if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($user["id"], false)) {
00325                                                 continue;
00326                                         }
00327 
00328                                         $user_ids[$counter] = $user["id"];
00329 
00330                                         $f_result[$counter][] = ilUtil :: formCheckbox(0, "user[]", $user["id"]);
00331                                         $f_result[$counter][] = $tmp_obj->getLogin();
00332                                         $f_result[$counter][] = $tmp_obj->getFirstname();
00333                                         $f_result[$counter][] = $tmp_obj->getLastname();
00334                                         $f_result[$counter][] = ilFormat :: formatDate($tmp_obj->getLastLogin());
00335 
00336                                         unset ($tmp_obj);
00337                                         ++ $counter;
00338                                 }
00339                                 $this->__showSearchUserTable($f_result, $user_ids);
00340 
00341                                 return true;
00342 
00343                         case "role" :
00344                                 foreach ($result as $role) {
00345                                         // exclude anonymous role
00346                                         if ($role["id"] == ANONYMOUS_ROLE_ID) {
00347                                                 continue;
00348                                         }
00349 
00350                                         if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($role["id"], false)) {
00351                                                 continue;
00352                                         }
00353 
00354                                         // exclude roles with no users assigned to
00355                                         if ($tmp_obj->getCountMembers() == 0) {
00356                                                 continue;
00357                                         }
00358 
00359                                         $role_ids[$counter] = $role["id"];
00360 
00361                                         $f_result[$counter][] = ilUtil :: formCheckbox(0, "role[]", $role["id"]);
00362                                         $f_result[$counter][] = array ($tmp_obj->getTitle(), $tmp_obj->getDescription());
00363                                         $f_result[$counter][] = $tmp_obj->getCountMembers();
00364 
00365                                         unset ($tmp_obj);
00366                                         ++ $counter;
00367                                 }
00368 
00369                                 $this->__showSearchRoleTable($f_result, $role_ids);
00370 
00371                                 return true;
00372 
00373                         case "grp" :
00374                                 foreach ($result as $group) {
00375                                         if (!$tree->isInTree($group["id"])) {
00376                                                 continue;
00377                                         }
00378 
00379                                         if (!$tmp_obj = ilObjectFactory :: getInstanceByRefId($group["id"], false)) {
00380                                                 continue;
00381                                         }
00382 
00383                                         // exclude myself :-)
00384                                         if ($tmp_obj->getId() == $this->object->getId()) {
00385                                                 continue;
00386                                         }
00387 
00388                                         $grp_ids[$counter] = $group["id"];
00389 
00390                                         $f_result[$counter][] = ilUtil :: formCheckbox(0, "group[]", $group["id"]);
00391                                         $f_result[$counter][] = array ($tmp_obj->getTitle(), $tmp_obj->getDescription());
00392                                         $f_result[$counter][] = $tmp_obj->getCountMembers();
00393 
00394                                         unset ($tmp_obj);
00395                                         ++ $counter;
00396                                 }
00397 
00398                                 if (!count($f_result)) {
00399                                         ilUtil::sendInfo($this->lng->txt("grp_no_results_found"));
00400                                         $this->searchUserFormObject();
00401 
00402                                         return false;
00403                                 }
00404 
00405                                 $this->__showSearchGroupTable($f_result, $grp_ids);
00406 
00407                                 return true;
00408                 }
00409         }
00410         function searchCancelled() {
00411                 ilUtil::sendInfo($this->lng->txt("action_aborted"), true);
00412                 ilUtil :: redirect($this->ctrl->getLinkTarget($this, "members"));
00413         }
00414         function __search($a_search_string, $a_search_for) {
00415                 include_once ("classes/class.ilSearch.php");
00416 
00417                 $this->lng->loadLanguageModule("content");
00418                 $search = & new ilSearch($_SESSION["AccountId"]);
00419                 $search->setPerformUpdate(false);
00420                 $search->setSearchString(ilUtil :: stripSlashes($a_search_string));
00421                 $search->setCombination("and");
00422                 $search->setSearchFor(array (0 => $a_search_for));
00423                 $search->setSearchType('new');
00424 
00425                 if ($search->validate($message)) {
00426                         $search->performSearch();
00427                 } else {
00428                         ilUtil::sendInfo($message, true);
00429                         $this->ctrl->redirect($this, "searchUserForm");
00430                 }
00431 
00432                 return $search->getResultByType($a_search_for);
00433         }
00434 
00435         function __showSearchUserTable($a_result_set, $a_user_ids = NULL, $a_cmd = "search") {
00436                 $return_to = "searchUserForm";
00437 
00438                 if ($a_cmd == "listUsersRole" or $a_cmd == "listUsersGroup") {
00439                         $return_to = "search";
00440                 }
00441 
00442                 $tbl = & $this->__initTableGUI();
00443                 $tpl = & $tbl->getTemplateObject();
00444 
00445                 // SET FORMACTION
00446                 $tpl->setCurrentBlock("tbl_form_header");
00447                 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00448                 $tpl->parseCurrentBlock();
00449 
00450                 $tpl->setCurrentBlock("tbl_action_btn");
00451                 $tpl->setVariable("BTN_NAME", $return_to);
00452                 $tpl->setVariable("BTN_VALUE", $this->lng->txt("back"));
00453                 $tpl->parseCurrentBlock();
00454 
00455                 $tpl->setCurrentBlock("tbl_action_btn");
00456                 $tpl->setVariable("BTN_NAME", "addUser");
00457                 $tpl->setVariable("BTN_VALUE", $this->lng->txt("add"));
00458                 $tpl->parseCurrentBlock();
00459 
00460                 if (!empty ($a_user_ids)) {
00461                         // set checkbox toggles
00462                         $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
00463                         $tpl->setVariable("JS_VARNAME", "user");
00464                         $tpl->setVariable("JS_ONCLICK", ilUtil :: array_php2js($a_user_ids));
00465                         $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
00466                         $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
00467                         $tpl->parseCurrentBlock();
00468                 }
00469 
00470                 $tpl->setCurrentBlock("tbl_action_row");
00471                 $tpl->setVariable("COLUMN_COUNTS", 5);
00472                 $tpl->setVariable("IMG_ARROW", ilUtil :: getImagePath("arrow_downright.gif"));
00473                 $tpl->parseCurrentBlock();
00474 
00475                 $tbl->setTitle($this->lng->txt("grp_header_edit_members"), "icon_usr_b.gif", $this->lng->txt("grp_header_edit_members"));
00476                 $tbl->setHeaderNames(array ("", $this->lng->txt("username"), $this->lng->txt("firstname"), $this->lng->txt("lastname"), $this->lng->txt("last_visit")));
00477                 $tbl->setHeaderVars(array ("", "login", "firstname", "lastname", "last_visit"), array ("ref_id" => $this->ref_id, "cmd" => $a_cmd, "cmdClass" => "ilobjgroupgui", "cmdNode" => $_GET["cmdNode"]));
00478 
00479                 $tbl->setColumnWidth(array ("", "33%", "33%", "33%"));
00480 
00481                 $this->__setTableGUIBasicData($tbl, $a_result_set);
00482                 $tbl->render();
00483 
00484                 $this->tpl->setVariable("SEARCH_RESULT_TABLE", $tbl->tpl->get());
00485 
00486                 return true;
00487         }
00488 
00489         function __showSearchRoleTable($a_result_set, $a_role_ids = NULL) {
00490                 $tbl = & $this->__initTableGUI();
00491                 $tpl = & $tbl->getTemplateObject();
00492 
00493                 $tpl->setCurrentBlock("tbl_form_header");
00494                 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00495                 $tpl->parseCurrentBlock();
00496 
00497                 $tpl->setCurrentBlock("tbl_action_btn");
00498                 $tpl->setVariable("BTN_NAME", "searchUserForm");
00499                 $tpl->setVariable("BTN_VALUE", $this->lng->txt("back"));
00500                 $tpl->parseCurrentBlock();
00501 
00502                 $tpl->setCurrentBlock("tbl_action_btn");
00503                 $tpl->setVariable("BTN_NAME", "listUsersRole");
00504                 $tpl->setVariable("BTN_VALUE", $this->lng->txt("grp_list_users"));
00505                 $tpl->parseCurrentBlock();
00506 
00507                 if (!empty ($a_role_ids)) {
00508                         // set checkbox toggles
00509                         $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
00510                         $tpl->setVariable("JS_VARNAME", "role");
00511                         $tpl->setVariable("JS_ONCLICK", ilUtil :: array_php2js($a_role_ids));
00512                         $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
00513                         $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
00514                         $tpl->parseCurrentBlock();
00515                 }
00516 
00517                 $tpl->setCurrentBlock("tbl_action_row");
00518                 $tpl->setVariable("COLUMN_COUNTS", 5);
00519                 $tpl->setVariable("IMG_ARROW", ilUtil :: getImagePath("arrow_downright.gif"));
00520                 $tpl->parseCurrentBlock();
00521 
00522                 $tbl->setTitle($this->lng->txt("grp_header_edit_members"), "icon_usr_b.gif", $this->lng->txt("grp_header_edit_members"));
00523                 $tbl->setHeaderNames(array ("", $this->lng->txt("obj_role"), $this->lng->txt("grp_count_members")));
00524                 $tbl->setHeaderVars(array ("", "title", "nr_members"), array ("ref_id" => $this->ref_id, "cmd" => "search", "cmdClass" => "ilobjgroupgui", "cmdNode" => $_GET["cmdNode"]));
00525 
00526                 $tbl->setColumnWidth(array ("", "80%", "19%"));
00527 
00528                 $this->__setTableGUIBasicData($tbl, $a_result_set, "role");
00529                 $tbl->render();
00530 
00531                 $this->tpl->setVariable("SEARCH_RESULT_TABLE", $tbl->tpl->get());
00532 
00533                 return true;
00534         }
00535 
00541         function __setTableGUIBasicData(&$tbl,&$result_set,$a_from = "")
00542         {
00543                 switch ($a_from)
00544                 {
00545                         case "clipboardObject":
00546                                 $offset = $_GET["offset"];
00547                                 $order = $_GET["sort_by"];
00548                                 $direction = $_GET["sort_order"];
00549                                 $tbl->disable("footer");
00550                                 break;
00551 
00552                         default:
00553                                 $offset = $_GET["offset"];
00554                                 $order = $_GET["sort_by"];
00555                                 $direction = $_GET["sort_order"];
00556                                 break;
00557                 }
00558 
00559                 $tbl->setOrderColumn($order);
00560                 $tbl->setOrderDirection($direction);
00561                 $tbl->setOffset($offset);
00562                 $tbl->setLimit($_GET["limit"]);
00563                 $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
00564                 $tbl->setData($result_set);
00565         }
00566 
00567         function __showSearchGroupTable($a_result_set, $a_grp_ids = NULL) {
00568                 $tbl = & $this->__initTableGUI();
00569                 $tpl = & $tbl->getTemplateObject();
00570 
00571                 $tpl->setCurrentBlock("tbl_form_header");
00572                 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00573                 $tpl->parseCurrentBlock();
00574 
00575                 $tpl->setCurrentBlock("tbl_action_btn");
00576                 $tpl->setVariable("BTN_NAME", "searchUserForm");
00577                 $tpl->setVariable("BTN_VALUE", $this->lng->txt("back"));
00578                 $tpl->parseCurrentBlock();
00579 
00580                 $tpl->setCurrentBlock("tbl_action_btn");
00581                 $tpl->setVariable("BTN_NAME", "listUsersGroup");
00582                 $tpl->setVariable("BTN_VALUE", $this->lng->txt("grp_list_users"));
00583                 $tpl->parseCurrentBlock();
00584 
00585                 if (!empty ($a_grp_ids)) {
00586                         // set checkbox toggles
00587                         $tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
00588                         $tpl->setVariable("JS_VARNAME", "group");
00589                         $tpl->setVariable("JS_ONCLICK", ilUtil :: array_php2js($a_grp_ids));
00590                         $tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
00591                         $tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
00592                         $tpl->parseCurrentBlock();
00593                 }
00594 
00595                 $tpl->setCurrentBlock("tbl_action_row");
00596                 $tpl->setVariable("COLUMN_COUNTS", 5);
00597                 $tpl->setVariable("IMG_ARROW", ilUtil :: getImagePath("arrow_downright.gif"));
00598                 $tpl->parseCurrentBlock();
00599 
00600                 $tbl->setTitle($this->lng->txt("grp_header_edit_members"), "icon_usr_b.gif", $this->lng->txt("grp_header_edit_members"));
00601                 $tbl->setHeaderNames(array ("", $this->lng->txt("obj_grp"), $this->lng->txt("grp_count_members")));
00602                 $tbl->setHeaderVars(array ("", "title", "nr_members"), array ("ref_id" => $this->ref_id, "cmd" => "search", "cmdClass" => "ilobjgroupgui", "cmdNode" => $_GET["cmdNode"]));
00603 
00604                 $tbl->setColumnWidth(array ("", "80%", "19%"));
00605 
00606                 $this->__setTableGUIBasicData($tbl, $a_result_set, "group");
00607                 $tbl->render();
00608 
00609                 $this->tpl->setVariable("SEARCH_RESULT_TABLE", $tbl->tpl->get());
00610 
00611                 return true;
00612         }
00613         function listUsersRole() {
00614                 global $rbacsystem, $rbacreview;
00615 
00616                 $_SESSION["grp_role"] = $_POST["role"] = $_POST["role"] ? $_POST["role"] : $_SESSION["grp_role"];
00617 
00618                 // MINIMUM ACCESS LEVEL = 'administrate'
00619                 if (!$rbacsystem->checkAccess("write", $this->ref_id)) {
00620                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->MESSAGE);
00621                 }
00622 
00623                 if (!is_array($_POST["role"])) {
00624                         ilUtil::sendInfo($this->lng->txt("grp_no_roles_selected"));
00625                         $this->searchObject();
00626 
00627                         return false;
00628                 }
00629 
00630                 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
00631                 $this->__showButton("searchUserForm", $this->lng->txt("grp_new_search"));
00632 
00633                 // GET ALL MEMBERS
00634                 $members = array ();
00635                 foreach ($_POST["role"] as $role_id) {
00636                         $members = array_merge($rbacreview->assignedUsers($role_id), $members);
00637                 }
00638 
00639                 $members = array_unique($members);
00640 
00641                 // FORMAT USER DATA
00642                 $counter = 0;
00643                 $f_result = array ();
00644                 foreach ($members as $user) {
00645                         if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($user, false)) {
00646                                 continue;
00647                         }
00648 
00649                         if (!$tmp_obj->active) {
00650                                 continue;
00651                         }
00652 
00653                         $user_ids[$counter] = $user;
00654 
00655                         $f_result[$counter][] = ilUtil :: formCheckbox(0, "user[]", $user);
00656                         $f_result[$counter][] = $tmp_obj->getLogin();
00657                         $f_result[$counter][] = $tmp_obj->getLastname();
00658                         $f_result[$counter][] = $tmp_obj->getFirstname();
00659                         $f_result[$counter][] = ilFormat :: formatDate($tmp_obj->getLastLogin());
00660 
00661                         unset ($tmp_obj);
00662                         ++ $counter;
00663                 }
00664                 $this->__showSearchUserTable($f_result, $user_ids, "listUsersRole");
00665 
00666                 return true;
00667         }
00668 
00669         function listUsersGroup() {
00670                 global $rbacsystem, $rbacreview, $tree;
00671 
00672                 $_SESSION["grp_group"] = $_POST["group"] = $_POST["group"] ? $_POST["group"] : $_SESSION["grp_group"];
00673 
00674                 // MINIMUM ACCESS LEVEL = 'administrate'
00675                 if (!$rbacsystem->checkAccess("write", $this->ref_id)) {
00676                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->MESSAGE);
00677                 }
00678 
00679                 if (!is_array($_POST["group"])) {
00680                         ilUtil::sendInfo($this->lng->txt("grp_no_groups_selected"));
00681                         $this->searchObject();
00682 
00683                         return false;
00684                 }
00685 
00686                 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.grp_usr_selection.html");
00687                 $this->__showButton("searchUserForm", $this->lng->txt("grp_new_search"));
00688 
00689                 // GET ALL MEMBERS
00690                 $members = array ();
00691                 foreach ($_POST["group"] as $group_id) {
00692                         if (!$tree->isInTree($group_id)) {
00693                                 continue;
00694                         }
00695                         if (!$tmp_obj = ilObjectFactory :: getInstanceByRefId($group_id)) {
00696                                 continue;
00697                         }
00698 
00699                         $members = array_merge($tmp_obj->getGroupMemberIds(), $members);
00700 
00701                         unset ($tmp_obj);
00702                 }
00703 
00704                 $members = array_unique($members);
00705 
00706                 // FORMAT USER DATA
00707                 $counter = 0;
00708                 $f_result = array ();
00709                 foreach ($members as $user) {
00710                         if (!$tmp_obj = ilObjectFactory :: getInstanceByObjId($user, false)) {
00711                                 continue;
00712                         }
00713 
00714                         $user_ids[$counter] = $user;
00715 
00716                         $f_result[$counter][] = ilUtil :: formCheckbox(0, "user[]", $user);
00717                         $f_result[$counter][] = $tmp_obj->getLogin();
00718                         $f_result[$counter][] = $tmp_obj->getLastname();
00719                         $f_result[$counter][] = $tmp_obj->getFirstname();
00720                         $f_result[$counter][] = ilFormat :: formatDate($tmp_obj->getLastLogin());
00721 
00722                         unset ($tmp_obj);
00723                         ++ $counter;
00724                 }
00725                 $this->__showSearchUserTable($f_result, $user_ids, "listUsersGroup");
00726 
00727                 return true;
00728         }
00729 
00730         function addUser() {
00731                 //echo "addUserObject() ausgefuehrt;";
00732                 $user_ids = $_POST["user"];
00733 
00734                 if (empty ($user_ids[0])) {
00735                         //echo "...nix weitergeleitet...";
00736                         // TODO: jumps back to grp content. go back to last search result
00737                         $this->ilErr->raiseError($this->lng->txt("no_checkbox"), $this->ilErr->MESSAGE);
00738                 } else {
00739                         //echo "...Daten weitergeleitet...";
00740                 }
00741                 $_SESSION["il_track_stat2"] = "choice";
00742                 $_SESSION["userSelected_stat"] = $_POST["user"];
00743                 $this->show();
00744 
00745         }
00746 
00750         function & executeCommand() {
00751                 if (isset($_POST["cmd"]["searchUserForm"]))
00752                 {
00753                         $cmd = "searchUserForm";
00754                 } elseif (isset($_POST["cmd"]["outputStatistics"]))
00755                 {
00756                         $cmd = "outputStatistics";
00757                 } else switch ($this->ctrl->getNextClass()) {
00758                         default :
00759                                 $cmd = $this->__getDefaultCommand();
00760                 }
00761                 $this-> $cmd ();
00762                 return true;
00763         }
00764 
00765 }
00766 ?>

Generated on Fri Dec 13 2013 17:57:01 for ILIAS Release_3_9_x_branch .rev 46835 by  doxygen 1.7.1