/**
  * display object list
  *
  * @access	public
  */
 function displayList()
 {
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     return;
     // load template for table
     $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
     $num = 0;
     $obj_str = $this->call_by_reference ? "" : "&obj_id=" . $this->obj_id;
     $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     // create table
     $tbl = new ilTableGUI();
     // title & header columns
     $tbl->setTitle($this->object->getTitle());
     foreach ($this->data["cols"] as $val) {
         $header_names[] = $this->lng->txt($val);
     }
     $tbl->setHeaderNames($header_names);
     //$header_params = array("ref_id" => $this->ref_id);
     $header_params = $this->ctrl->getParameterArray($this, "view");
     $tbl->setHeaderVars($this->data["cols"], $header_params);
     $tbl->setColumnWidth(array("15", "75%", "25%"));
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     //$tbl->disable("footer");
     // render table
     $tbl->render();
     if (is_array($this->data["data"][0])) {
         //table cell
         for ($i = 0; $i < count($this->data["data"]); $i++) {
             $data = $this->data["data"][$i];
             $ctrl = $this->data["ctrl"][$i];
             // color changing
             $css_row = ilUtil::switchColor($i + 1, "tblrow1", "tblrow2");
             $this->tpl->setCurrentBlock("table_cell");
             $this->tpl->setVariable("CELLSTYLE", "tblrow1");
             $this->tpl->parseCurrentBlock();
             foreach ($data as $key => $val) {
                 //build link
                 /*
                 
                 $n = 0;
                 
                 foreach ($ctrl as $key2 => $val2)
                 {
                 	$link .= $key2."=".$val2;
                 
                 	if ($n < count($ctrl)-1)
                 	{
                     	$link .= "&";
                 		$n++;
                 	}
                 }
                 
                 if ($key == "title")
                 {
                 	$name_field = explode("#separator#",$val);
                 }
                 
                 if ($key == "title" || $key == "type")
                 {
                 	$this->tpl->setCurrentBlock("begin_link");
                 	$this->tpl->setVariable("LINK_TARGET", $link);
                 
                 	$this->tpl->parseCurrentBlock();
                 	$this->tpl->touchBlock("end_link");
                 }
                 
                 $this->tpl->setCurrentBlock("text");
                 
                 if ($key == "type")
                 {
                 	$val = ilUtil::getImageTagByType($val,$this->tpl->tplPath);						
                 }
                 
                 if ($key == "title")
                 {
                 	$this->tpl->setVariable("TEXT_CONTENT", $name_field[0]);
                 	
                 	$this->tpl->setCurrentBlock("subtitle");
                 	$this->tpl->setVariable("DESC", $name_field[1]);
                 	$this->tpl->parseCurrentBlock();
                 }
                 else
                 {
                 	$this->tpl->setVariable("TEXT_CONTENT", $val);
                 }
                 				
                 $this->tpl->parseCurrentBlock();
                 
                 $this->tpl->setCurrentBlock("table_cell");
                 $this->tpl->parseCurrentBlock();
                 */
             }
             //foreach
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->parseCurrentBlock();
         }
         //for
     } else {
         $this->tpl->setCurrentBlock("notfound");
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", $num);
         $this->tpl->parseCurrentBlock();
     }
 }
 /**
  * get versions table
  */
 function getVersionsTable($a_header_params, $a_user_comment = false)
 {
     global $ilCtrl;
     $ref_id = $a_header_params["ref_id"];
     require_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI(0, false);
     // table header
     $tbl->setTitle($this->lng->txt("versions"));
     $tbl->setHeaderNames(array($this->lng->txt("date") . "/" . $this->lng->txt("user"), $this->lng->txt("action")));
     $tbl->setColumnWidth(array("40%", "60%"));
     $cols = array("date_user", "action");
     if ($a_header_params == "") {
         $a_header_params = array();
     }
     $header_params = $a_header_params;
     $tbl->setHeaderVars($cols, $header_params);
     // table variables
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     // ???
     $tbl->disable("header");
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     // get history entries
     $entries = ilHistory::_getEntriesForObject($this->obj_id, $this->obj_type);
     $tbl->setMaxCount(count($entries));
     $entries = array_slice($entries, $_GET["offset"], $_GET["limit"]);
     $this->tpl =& $tbl->getTemplateObject();
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.history_row.html", "Services/History");
     if (count($entries) > 0) {
         $i = 0;
         foreach ($entries as $entry) {
             $this->tpl->setCurrentBlock("tbl_content");
             $css_row = $css_row != "tblrow1" ? "tblrow1" : "tblrow2";
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->setVariable('TXT_DATE', ilDatePresentation::formatDate(new ilDateTime($entry['date'], IL_CAL_DATETIME)));
             $name = ilObjUser::_lookupName($entry["user_id"]);
             $this->tpl->setVariable("TXT_USER", $name["title"] . " " . $name["firstname"] . " " . $name["lastname"] . " [" . $entry["user_id"] . "]");
             $info_params = explode(",", $entry["info_params"]);
             $info_text = $this->lng->txt("hist_" . $this->obj_type . "_" . $entry["action"]);
             $i = 1;
             foreach ($info_params as $info_param) {
                 $info_text = str_replace("%" . $i, $info_param, $info_text);
                 $i++;
             }
             $this->tpl->setVariable("TXT_ACTION", $info_text);
             if ($a_user_comment) {
                 $this->tpl->setCurrentBlock("user_comment");
                 $this->tpl->setVariable("TXT_USER_COMMENT", $entry["user_comment"]);
                 $this->tpl->parseCurrentBlock();
                 $this->tpl->setCurrentBlock("tbl_content");
             }
             $this->tpl->setCurrentBlock("dl_link");
             $this->tpl->setVariable("TXT_DL", $this->lng->txt("download"));
             $ilCtrl->setParameterByClass("ilobjfilegui", "hist_id", $entry["hist_entry_id"]);
             $this->tpl->setVariable("DL_LINK", $ilCtrl->getLinkTargetByClass("ilobjfilegui", "sendfile"));
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->parseCurrentBlock();
         }
     } else {
         $this->tpl->setCurrentBlock("tbl_content_cell");
         $this->tpl->setVariable("TBL_CONTENT_CELL", $this->lng->txt("hist_no_entries"));
         $this->tpl->setVariable("TBL_COL_SPAN", 4);
         $this->tpl->parseCurrentBlock();
         $this->tpl->setCurrentBlock("tbl_content_row");
         $this->tpl->setVariable("ROWCOLOR", "tblrow1");
         $this->tpl->parseCurrentBlock();
     }
     $tbl->render();
     //$this->tpl->parseCurrentBlock();
     return $this->tpl->get();
 }
 /**
  * list sessions of all user
  *
  * @access public
  * @param
  * @return
  */
 public function eventsListObject()
 {
     global $ilErr, $ilAccess, $ilUser, $tree;
     if (!$ilAccess->checkAccess('write', '', $this->object->getRefId())) {
         $ilErr->raiseError($this->lng->txt('msg_no_perm_read'), $ilErr->MESSAGE);
     }
     $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.sess_list.html', 'Modules/Session');
     $this->__showButton($this->ctrl->getLinkTarget($this, 'exportCSV'), $this->lng->txt('event_csv_export'));
     include_once 'Modules/Session/classes/class.ilEventParticipants.php';
     $this->tpl->addBlockfile("EVENTS_TABLE", "events_table", "tpl.table.html");
     $this->tpl->addBlockfile('TBL_CONTENT', 'tbl_content', 'tpl.sess_list_row.html', 'Modules/Session');
     $members_obj = $this->initContainer(true);
     $members = $members_obj->getParticipants();
     $members = ilUtil::_sortIds($members, 'usr_data', 'lastname', 'usr_id');
     // Table
     $tbl = new ilTableGUI();
     $tbl->setTitle($this->lng->txt("event_overview"), 'icon_usr.png', $this->lng->txt('obj_usr'));
     $this->ctrl->setParameter($this, 'offset', (int) $_GET['offset']);
     $course_ref_id = $tree->checkForParentType($this->object->getRefId(), 'crs');
     $events = array();
     foreach ($tree->getSubtree($tree->getNodeData($course_ref_id), false, 'sess') as $event_id) {
         $tmp_event = ilObjectFactory::getInstanceByRefId($event_id, false);
         if (!is_object($tmp_event) or $tmp_event->getType() != 'sess') {
             continue;
         }
         $events[] = $tmp_event;
     }
     $headerNames = array();
     $headerVars = array();
     $colWidth = array();
     $headerNames[] = $this->lng->txt('name');
     $headerVars[] = "name";
     $colWidth[] = '20%';
     for ($i = 1; $i <= count($events); $i++) {
         $headerNames[] = $i;
         $headerVars[] = "event_" . $i;
         $colWidth[] = 80 / count($events) . "%";
     }
     $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     $tbl->setHeaderNames($headerNames);
     $tbl->setHeaderVars($headerVars, $this->ctrl->getParameterArray($this, 'eventsList'));
     $tbl->setColumnWidth($colWidth);
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setLimit($ilUser->getPref("hits_per_page"));
     $tbl->setMaxCount(count($members));
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     $sliced_users = array_slice($members, $_GET['offset'], $_SESSION['tbl_limit']);
     $tbl->disable('sort');
     $tbl->render();
     $counter = 0;
     foreach ($sliced_users as $user_id) {
         foreach ($events as $event_obj) {
             $this->tpl->setCurrentBlock("eventcols");
             $event_part = new ilEventParticipants($this->object->getId());
             $this->tpl->setVariable("IMAGE_PARTICIPATED", $event_part->hasParticipated($user_id) ? ilUtil::getImagePath('icon_ok.png') : ilUtil::getImagePath('icon_not_ok.png'));
             $this->tpl->setVariable("PARTICIPATED", $event_part->hasParticipated($user_id) ? $this->lng->txt('event_participated') : $this->lng->txt('event_not_participated'));
             $this->tpl->parseCurrentBlock();
         }
         $this->tpl->setCurrentBlock("tbl_content");
         $name = ilObjUser::_lookupName($user_id);
         $this->tpl->setVariable("CSS_ROW", ilUtil::switchColor($counter++, 'tblrow1', 'tblrow2'));
         $this->tpl->setVariable("LASTNAME", $name['lastname']);
         $this->tpl->setVariable("FIRSTNAME", $name['firstname']);
         $this->tpl->setVariable("LOGIN", ilObjUser::_lookupLogin($user_id));
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->setVariable("HEAD_TXT_LEGEND", $this->lng->txt("legend"));
     $this->tpl->setVariable("HEAD_TXT_DIGIT", $this->lng->txt("event_digit"));
     $this->tpl->setVariable("HEAD_TXT_EVENT", $this->lng->txt("event"));
     $this->tpl->setVariable("HEAD_TXT_LOCATION", $this->lng->txt("event_location"));
     $this->tpl->setVariable("HEAD_TXT_DATE_TIME", $this->lng->txt("event_date_time"));
     $i = 1;
     foreach ($events as $event_obj) {
         $this->tpl->setCurrentBlock("legend_loop");
         $this->tpl->setVariable("LEGEND_CSS_ROW", ilUtil::switchColor($counter++, 'tblrow1', 'tblrow2'));
         $this->tpl->setVariable("LEGEND_DIGIT", $i++);
         $this->tpl->setVariable("LEGEND_EVENT_TITLE", $event_obj->getTitle());
         $this->tpl->setVariable("LEGEND_EVENT_DESCRIPTION", $event_obj->getDescription());
         $this->tpl->setVariable("LEGEND_EVENT_LOCATION", $event_obj->getLocation());
         $this->tpl->setVariable("LEGEND_EVENT_APPOINTMENT", $event_obj->getFirstAppointment()->appointmentToString());
         $this->tpl->parseCurrentBlock();
     }
 }
 /**
 * show tracking data of item
 */
 function showTrackingItem()
 {
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     // load template for table
     $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.scorm2004_track_item.html", "Modules/Scorm2004");
     $num = 2;
     $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=" . $this->ref_id . "{$obj_str}&cmd=gateway");
     // create table
     $tbl = new ilTableGUI();
     include_once "./Modules/ScormAicc/classes/SCORM/class.ilSCORMItem.php";
     $sc_item =& new ilSCORMItem($_GET["obj_id"]);
     // title & header columns
     $user = new ilObjUser($_GET["user_id"]);
     $tbl->setTitle($user->getLastname() . ", " . $user->getFirstname());
     $tbl->setHeaderNames(array($this->lng->txt("title"), $this->lng->txt("cont_status"), $this->lng->txt("cont_time"), $this->lng->txt("cont_score")));
     $header_params = array("ref_id" => $this->ref_id, "cmd" => $_GET["cmd"], "cmdClass" => get_class($this), "obj_id" => $_GET["obj_id"], "baseClass" => "ilSAHSEditGUI", 'user_id' => $_GET["user_id"]);
     $cols = array("title", "status", "time", "score");
     $tbl->setHeaderVars($cols, $header_params);
     //$tbl->setColumnWidth(array("25%",));
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     //$this->tpl->setVariable("COLUMN_COUNTS",count($this->data["cols"]));
     //$this->showActions(true);
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     #$tbl->disable("footer");
     $tr_data = $this->object->getTrackingDataAgg($_GET["user_id"]);
     //$objs = ilUtil::sortArray($objs, $_GET["sort_by"], $_GET["sort_order"]);
     $tbl->setMaxCount(count($tr_data));
     $tr_data = array_slice($tr_data, $_GET["offset"], $_GET["limit"]);
     $tbl->render();
     if (count($tr_data) > 0) {
         foreach ($tr_data as $data) {
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->setVariable("VAL_TITLE", $data["title"]);
             $this->ctrl->setParameter($this, "user_id", $_GET["user_id"]);
             $this->ctrl->setParameter($this, "obj_id", $data["sco_id"]);
             $this->tpl->setVariable("LINK_SCO", $this->ctrl->getLinkTarget($this, "showTrackingItemPerUser"));
             $this->tpl->setVariable("VAL_TIME", $data["time"]);
             $this->tpl->setVariable("VAL_STATUS", $data["status"]);
             $this->tpl->setVariable("VAL_SCORE", $data["score"]);
             $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->parseCurrentBlock();
         }
     } else {
         $this->tpl->setCurrentBlock("notfound");
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", $num);
         $this->tpl->parseCurrentBlock();
     }
 }
 function view()
 {
     global $ilAccess, $ilErr;
     // MINIMUM ACCESS LEVEL = 'write'
     if (!$ilAccess->checkAccess("read", '', $this->course_obj->getRefId())) {
         $ilErr->raiseError($this->lng->txt('msg_no_perm_write'), $ilErr->MESSAGE);
     }
     $this->is_tutor = $ilAccess->checkAccess('write', '', $this->course_obj->getRefId());
     $this->download_allowed = ($this->is_tutor or $this->course_obj->getArchiveType() == $this->course_obj->ARCHIVE_DOWNLOAD);
     $this->course_obj->initCourseArchiveObject();
     $this->course_obj->archives_obj->initCourseFilesObject();
     $archives = $this->is_tutor ? $this->course_obj->archives_obj->getArchives() : $this->course_obj->archives_obj->getPublicArchives();
     require_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     $this->__showArchivesMenu();
     $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.crs_archives_row.html", 'Modules/Course');
     $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     $tbl->setTitle($this->lng->txt("crs_header_archives"));
     if ($this->download_allowed or $this->is_tutor) {
         $header_names = array('', $this->lng->txt("type"), $this->lng->txt("crs_file_name"), $this->lng->txt("crs_size"), $this->lng->txt("crs_create_date"), $this->lng->txt("crs_archive_lang"));
         $header_vars = array("", "type", "name", "size", "date", "lang");
         $column_width = array("1%", "9%", "30%", "20%", "20%", "20%");
         $this->tpl->setVariable("COLUMN_COUNTS", 6);
     } else {
         $header_names = array($this->lng->txt("type"), $this->lng->txt("crs_file_name"), $this->lng->txt("crs_create_date"), $this->lng->txt("crs_size"), $this->lng->txt("crs_archive_lang"));
         $header_vars = array("type", "name", "date", "size", "lang");
         $column_width = array("10%", "30%", "20%", "20%", "20%");
         $this->tpl->setVariable("COLUMN_COUNTS", 5);
     }
     $tbl->setHeaderNames($header_names);
     $tbl->setHeaderVars($header_vars, array("ref_id" => $this->course_obj->getRefId(), "cmd" => "view", "cmdClass" => strtolower(get_class($this))));
     $tbl->setColumnWidth($column_width);
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->disable("sort");
     if ($this->download_allowed) {
         $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.png"));
         if ($this->is_tutor) {
             // delete
             $this->tpl->setCurrentBlock("tbl_action_btn");
             $this->tpl->setVariable("BTN_NAME", "confirmDeleteArchives");
             $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
             $this->tpl->parseCurrentBlock();
         }
         // download
         $this->tpl->setCurrentBlock("tbl_action_btn");
         $this->tpl->setVariable("BTN_NAME", "downloadArchives");
         $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("download"));
         $this->tpl->parseCurrentBlock();
     }
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     $tbl->setMaxCount(count($archives));
     $archives = array_slice($archives, $_GET['offset'], $_GET['limit']);
     $tbl->render();
     if (!count($archives)) {
         $this->tpl->setCurrentBlock("notfound");
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", 6);
         $this->tpl->parseCurrentBlock();
     }
     $counter = 0;
     foreach ($archives as $archive_data) {
         $this->tpl->setCurrentBlock("tbl_content");
         $this->tpl->setVariable("CSS_ROW", ilUtil::switchColor($counter++, 'tblrow1', 'tblrow2'));
         if ($this->download_allowed) {
             $this->tpl->setVariable("VAL_CHECK", ilUtil::formCheckbox(0, "archives[]", $archive_data['archive_id']));
         }
         // Type
         switch ($archive_data["archive_type"]) {
             case $this->course_obj->archives_obj->ARCHIVE_XML:
                 $type = $this->lng->txt("crs_xml");
                 break;
             case $this->course_obj->archives_obj->ARCHIVE_HTML:
                 $type = $this->lng->txt("crs_html");
                 break;
             case $this->course_obj->archives_obj->ARCHIVE_PDF:
                 $type = $this->lng->txt("crs_pdf");
                 break;
         }
         $this->tpl->setVariable("VAL_TYPE", $type);
         // Name
         if ($archive_data['archive_type'] == $this->course_obj->archives_obj->ARCHIVE_HTML) {
             $link = '<a href="' . $this->course_obj->archives_obj->course_files_obj->getOnlineLink($archive_data['archive_name']) . '"' . ' target="_blank">' . $archive_data["archive_name"] . '</a>';
         } else {
             $link = $archive_data['archive_name'];
         }
         $this->tpl->setVariable("VAL_NAME", $link);
         $this->tpl->setVariable("VAL_SIZE", $archive_data['archive_size']);
         $this->tpl->setVariable('VAL_DATE', ilDatePresentation::formatDate(new ilDateTime($archive_data['archive_name'], IL_CAL_UNIX)));
         if ($archive_data["archive_lang"]) {
             $this->tpl->setVariable("VAL_LANG", $this->lng->txt('lang_' . $archive_data["archive_lang"]));
         } else {
             $this->tpl->setVariable("VAL_LANG", $this->lng->txt('crs_not_available'));
         }
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->parseCurrentBlock();
 }
 /**
  * administrate files of media object
  */
 function editFilesObject()
 {
     // standard item
     $std_item =& $this->object->getMediaItem("Standard");
     if ($this->object->hasFullscreenItem()) {
         $full_item =& $this->object->getMediaItem("Fullscreen");
     }
     // create table
     require_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     // determine directory
     $cur_subdir = $_GET["cdir"];
     if ($_GET["newdir"] == "..") {
         $cur_subdir = substr($cur_subdir, 0, strrpos($cur_subdir, "/"));
     } else {
         if (!empty($_GET["newdir"])) {
             if (!empty($cur_subdir)) {
                 $cur_subdir = $cur_subdir . "/" . $_GET["newdir"];
             } else {
                 $cur_subdir = $_GET["newdir"];
             }
         }
     }
     $cur_subdir = str_replace(".", "", $cur_subdir);
     $mob_dir = ilUtil::getWebspaceDir() . "/mobs/mm_" . $this->object->getId();
     $cur_dir = !empty($cur_subdir) ? $mob_dir . "/" . $cur_subdir : $mob_dir;
     // load files templates
     $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.mob_files.html", "Services/MediaObjects");
     $this->ctrl->setParameter($this, "cdir", urlencode($cur_subdir));
     $this->tpl->setVariable("FORMACTION1", $this->ctrl->getFormAction($this));
     //echo "--".$this->getTargetScript().
     //"&hier_id=".$_GET["hier_id"]."&cdir=".$cur_subdir."&cmd=post"."--<br>";
     $this->tpl->setVariable("TXT_NEW_DIRECTORY", $this->lng->txt("cont_new_dir"));
     $this->tpl->setVariable("TXT_NEW_FILE", $this->lng->txt("cont_new_file"));
     $this->tpl->setVariable("CMD_NEW_DIR", "createDirectory");
     $this->tpl->setVariable("CMD_NEW_FILE", "uploadFile");
     $this->tpl->setVariable("BTN_NEW_DIR", $this->lng->txt("create"));
     $this->tpl->setVariable("BTN_NEW_FILE", $this->lng->txt("upload"));
     //
     $this->tpl->addBlockfile("FILE_TABLE", "files", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.mob_file_row.html", "Services/MediaObjects");
     $num = 0;
     $obj_str = $this->call_by_reference ? "" : "&obj_id=" . $this->obj_id;
     $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     $tbl->setTitle($this->lng->txt("cont_files") . " " . $cur_subdir);
     //$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
     $tbl->setHeaderNames(array("", "", $this->lng->txt("cont_dir_file"), $this->lng->txt("cont_size"), $this->lng->txt("cont_purpose")));
     $cols = array("", "", "dir_file", "size", "purpose");
     $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"], "cmd" => "editFiles", "hier_id" => $_GET["hier_id"], "item_id" => $_GET["item_id"]);
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("1%", "1%", "33%", "33%", "32%"));
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     // ???
     //$tbl->setMaxCount(30);		// ???
     $this->tpl->setVariable("COLUMN_COUNTS", 5);
     // delete button
     $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg"));
     $this->tpl->setCurrentBlock("tbl_action_btn");
     $this->tpl->setVariable("BTN_NAME", "deleteFile");
     $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
     $this->tpl->parseCurrentBlock();
     $this->tpl->setCurrentBlock("tbl_action_btn");
     $this->tpl->setVariable("BTN_NAME", "assignStandard");
     $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("cont_assign_std"));
     $this->tpl->parseCurrentBlock();
     $this->tpl->setCurrentBlock("tbl_action_btn");
     $this->tpl->setVariable("BTN_NAME", "assignFullscreen");
     $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("cont_assign_full"));
     $this->tpl->parseCurrentBlock();
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     //$tbl->disable("footer");
     $entries = ilUtil::getDir($cur_dir);
     //$objs = ilUtil::sortArray($objs, $_GET["sort_by"], $_GET["sort_order"]);
     $tbl->setMaxCount(count($entries));
     $entries = array_slice($entries, $_GET["offset"], $_GET["limit"]);
     $tbl->render();
     if (count($entries) > 0) {
         $i = 0;
         foreach ($entries as $entry) {
             if ($entry["entry"] == "." || $entry["entry"] == ".." && empty($cur_subdir)) {
                 continue;
             }
             //$this->tpl->setVariable("ICON", $obj["title"]);
             if ($entry["type"] == "dir") {
                 $this->tpl->setCurrentBlock("FileLink");
                 $this->ctrl->setParameter($this, "cdir", $cur_subdir);
                 $this->ctrl->setParameter($this, "newdir", rawurlencode($entry["entry"]));
                 $this->tpl->setVariable("LINK_FILENAME", $this->ctrl->getLinkTarget($this, "editFiles"));
                 $this->tpl->setVariable("TXT_FILENAME", $entry["entry"]);
                 $this->tpl->parseCurrentBlock();
                 $this->tpl->setVariable("ICON", "<img src=\"" . ilUtil::getImagePath("icon_cat.svg") . "\">");
             } else {
                 $this->tpl->setCurrentBlock("File");
                 $this->tpl->setVariable("TXT_FILENAME2", $entry["entry"]);
                 $this->tpl->parseCurrentBlock();
             }
             $this->tpl->setCurrentBlock("tbl_content");
             $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->setVariable("TXT_SIZE", $entry["size"]);
             $this->tpl->setVariable("CHECKBOX_ID", $entry["entry"]);
             $compare = !empty($cur_subdir) ? $cur_subdir . "/" . $entry["entry"] : $entry["entry"];
             $purpose = array();
             if ($std_item->getLocation() == $compare) {
                 $purpose[] = $this->lng->txt("cont_std_view");
             }
             if ($this->object->hasFullscreenItem()) {
                 if ($full_item->getLocation() == $compare) {
                     $purpose[] = $this->lng->txt("cont_fullscreen");
                 }
             }
             $this->tpl->setVariable("TXT_PURPOSE", implode($purpose, ", "));
             $this->tpl->parseCurrentBlock();
         }
     } else {
         $this->tpl->setCurrentBlock("notfound");
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", 4);
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->parseCurrentBlock();
 }
 /**
  * Show file list of available export files
  *
  * @access public
  * 
  */
 public function showFileList()
 {
     global $ilUser;
     if (!count($files = $this->fss_export->getMemberExportFiles())) {
         return false;
     }
     $a_tpl = new ilTemplate('tpl.table.html', true, true);
     $a_tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.member_export_file_row.html", "Modules/Course");
     $a_tpl->setVariable('FORMACTION', $this->ctrl->getFormaction($this));
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     // load template for table content data
     $tbl->setTitle($this->lng->txt("ps_export_files"));
     $tbl->setHeaderNames(array("", $this->lng->txt("type"), $this->lng->txt("ps_size"), $this->lng->txt("date")));
     $cols = array("", "type", "size", "date");
     $header_params = $this->ctrl->getParameterArray($this, 'show');
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("1%", "9%", "45%", "45%"));
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($ilUser->getPref('hits_per_page', 9999));
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount(count($files));
     $tbl->disable("sort");
     $a_tpl->setVariable("COLUMN_COUNTS", 4);
     $files = array_reverse($files);
     $files = array_slice($files, $_GET["offset"], $_GET["limit"]);
     $num = 0;
     $i = 0;
     foreach ($files as $exp_file) {
         $a_tpl->setCurrentBlock("tbl_content");
         $a_tpl->setVariable("TXT_FILENAME", $exp_file["file"]);
         $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
         $a_tpl->setVariable("CSS_ROW", $css_row);
         $a_tpl->setVariable("TXT_SIZE", $exp_file['size']);
         $a_tpl->setVariable("TXT_TYPE", strtoupper($exp_file["type"]));
         $a_tpl->setVariable("CHECKBOX_ID", $exp_file["timest"]);
         $a_tpl->setVariable("TXT_DATE", date("Y-m-d H:i", $exp_file['timest']));
         $a_tpl->parseCurrentBlock();
     }
     // delete button
     $a_tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.png"));
     $a_tpl->setCurrentBlock("tbl_action_btn");
     $a_tpl->setVariable("BTN_NAME", "confirmDeleteExportFile");
     $a_tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
     $a_tpl->parseCurrentBlock();
     $a_tpl->setCurrentBlock("tbl_action_btn");
     $a_tpl->setVariable("BTN_NAME", "downloadExportFile");
     $a_tpl->setVariable("BTN_VALUE", $this->lng->txt("download"));
     $a_tpl->parseCurrentBlock();
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     //$tbl->disable("footer");
     $tbl->setTemplate($a_tpl);
     $tbl->render();
     #$this->tpl->setCurrentBlock('file_list');
     $this->tpl->setVariable('FILE_LIST_TABLE', $a_tpl->get());
     #$this->tpl->parseCurrentBlock();
 }
 /**
  * Print out statistics about the language
  */
 function statisticsObject()
 {
     $modules = ilObjLanguageExt::_getModules($this->object->key);
     $data = array();
     $total = array("", 0, 0, 0);
     foreach ($modules as $module) {
         $row = array();
         $row[0] = $module;
         $row[1] = count($this->object->getAllValues(array($module)));
         $row[2] = count($this->object->getChangedValues(array($module)));
         $row[3] = $row[1] - $row[2];
         $total[1] += $row[1];
         $total[2] += $row[2];
         $total[3] += $row[3];
         $data[] = $row;
     }
     $total[0] = "<b>" . $this->lng->txt("language_all_modules") . "</b>";
     $total[1] = "<b>" . $total[1] . "</b>";
     $total[2] = "<b>" . $total[2] . "</b>";
     $total[3] = "<b>" . $total[3] . "</b>";
     $data[] = $total;
     // prepare the templates for output
     $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.lang_statistics.html", "Services/Language");
     $this->tpl->addBlockFile("TABLE_STATISTICS", "table_statistics", "tpl.table.html");
     $this->tpl->addBlockFile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
     // create and configure the table object
     include_once 'Services/Table/classes/class.ilTableGUI.php';
     $tbl = new ilTableGUI();
     $tbl->disable('title');
     $tbl->disable('sort');
     $tbl->disable('numinfo');
     $tbl->setHeaderNames(array($this->lng->txt("module"), $this->lng->txt("language_scope_global"), $this->lng->txt("language_scope_local"), $this->lng->txt("language_scope_unchanged")));
     $tbl->setColumnWidth(array("25%", "25%", "25%", "25%"));
     $tbl->setLimit(count($data));
     $tbl->setData($data);
     // show the table
     $tbl->render();
     //		$this->tpl->show();
 }
 /**
  * show tracking data
  */
 function showTrackingItems()
 {
     include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
     $privacy = ilPrivacySettings::_getInstance();
     if (!$privacy->enabledSahsProtocolData()) {
         $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
     }
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     // load template for table
     $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.scorm_track_items.html", "Modules/ScormAicc");
     $num = 1;
     $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=" . $this->ref_id . "{$obj_str}&cmd=gateway");
     // create table
     $tbl = new ilTableGUI();
     // title & header columns
     $tbl->setTitle($this->lng->txt("cont_tracking_items"));
     $tbl->setHeaderNames(array($this->lng->txt("title")));
     $header_params = array("ref_id" => $this->ref_id, "cmd" => $_GET["cmd"], "cmdClass" => get_class($this));
     $cols = array("title");
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("100%"));
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     //$this->tpl->setVariable("COLUMN_COUNTS",count($this->data["cols"]));
     //$this->showActions(true);
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     #$tbl->disable("footer");
     //$items = $this->object->getTrackingItems();
     $items = $this->object->getTrackedItems();
     //$objs = ilUtil::sortArray($objs, $_GET["sort_by"], $_GET["sort_order"]);
     $tbl->setMaxCount(count($items));
     $items = array_slice($items, $_GET["offset"], $_GET["limit"]);
     $tbl->render();
     if (count($items) > 0) {
         foreach ($items as $item) {
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->setVariable("TXT_ITEM_TITLE", $item->getTitle());
             $this->ctrl->setParameter($this, "obj_id", $item->getId());
             $this->tpl->setVariable("LINK_ITEM", $this->ctrl->getLinkTarget($this, "showTrackingItem"));
             $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->parseCurrentBlock();
         }
     } else {
         $this->tpl->setCurrentBlock("notfound");
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", $num);
         $this->tpl->parseCurrentBlock();
     }
 }
 /**
  * Get offset.
  */
 function getOffset()
 {
     if ($this->getExportMode() || $this->getPrintMode()) {
         return 0;
     }
     return parent::getOffset();
 }
 /**
  * quick term list
  */
 function quickList()
 {
     global $ilUser, $tpl;
     return;
     include_once "./Modules/Glossary/classes/class.ilTermQuickListTableGUI.php";
     $tab = new ilTermQuickListTableGUI($this, "listTerms");
     $tpl->setLeftContent($tab->getHTML());
     $this->tpl->addBlockFile("CONTENT", "content", "tpl.glossary_short_list.html", "Modules/Glossary");
     //		$this->tpl->addBlockFile("EXPLORER_TOP", "exp_top", "tpl.explorer_top.html");
     //		$this->tpl->setVariable("IMG_SPACE", ilUtil::getImagePath("spacer.png", false));
     $this->tpl->setVariable("FORMACTION1", $this->ctrl->getFormAction($this));
     $this->tpl->setVariable("CMD_REFR", "quickList");
     $this->tpl->setVariable("TXT_REFR", $this->lng->txt("refresh"));
     $this->tpl->setVariable("TXT_EXPLORER_HEADER", $this->lng->txt("cont_terms"));
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     // glossary term list template
     // load template for table
     $this->tpl->addBlockfile("SHORT_LIST", "list", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.term_short_tbl_row.html", true);
     $num = 0;
     $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     // create table
     $tbl = new ilTableGUI();
     // title & header columns
     //$tbl->setTitle($this->lng->txt("cont_terms"));
     //$tbl->setHelp("tbl_help.php","icon_help.png",$this->lng->txt("help"));
     $tbl->setHeaderNames(array($this->lng->txt("cont_term")));
     $cols = array("term");
     $header_params = $this->ctrl->getParameterArrayByClass("ilobjglossarygui", "listTerms");
     $header_params["cmd"] = "quickList";
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("100%"));
     $tbl->disable("title");
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->disable("header");
     $term_list = $this->object->getTermList();
     $tbl->setMaxCount(count($term_list));
     $this->tpl->setVariable("COLUMN_COUNT", 1);
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     // sorting array
     $term_list = array_slice($term_list, $_GET["offset"], $_GET["limit"]);
     // render table
     $tbl->render();
     if (count($term_list) > 0) {
         $i = 1;
         foreach ($term_list as $key => $term) {
             $defs = ilGlossaryDefinition::getDefinitionList($term["id"]);
             $sep = ": ";
             for ($j = 0; $j < count($defs); $j++) {
                 $def = $defs[$j];
                 // edit
                 $this->tpl->setCurrentBlock("definition");
                 $this->tpl->setVariable("SEP", $sep);
                 $this->ctrl->setParameterByClass("ilglossarydefpagegui", "term_id", $term["id"]);
                 $this->ctrl->setParameterByClass("ilglossarydefpagegui", "def", $def["id"]);
                 $this->tpl->setVariable("LINK_EDIT_DEF", $this->ctrl->getLinkTargetByClass(array("ilglossarytermgui", "iltermdefinitioneditorgui", "ilglossarydefpagegui"), "edit"));
                 $this->tpl->setVariable("TEXT_DEF", $this->lng->txt("glo_definition_abbr") . ($j + 1));
                 $this->tpl->parseCurrentBlock();
                 $sep = ", ";
             }
             $this->tpl->setCurrentBlock("tbl_content");
             $css_row = ilUtil::switchColor(++$i, "tblrow1", "tblrow2");
             // edit term link
             $this->tpl->setVariable("TEXT_TERM", $term["term"]);
             $this->ctrl->setParameter($this, "term_id", $term["id"]);
             $this->tpl->setVariable("LINK_EDIT_TERM", $this->ctrl->getLinkTargetByClass("ilglossarytermgui", "editTerm"));
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->parseCurrentBlock();
         }
     } else {
         //$this->tpl->setCurrentBlock("notfound");
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", $num);
         //$this->tpl->parseCurrentBlock();
     }
 }
 /**
  * Displays the settings page for test defaults
  *
  * @access public
  */
 function defaultsObject()
 {
     global $ilUser;
     global $ilAccess;
     if (!$ilAccess->checkAccess("write", "", $this->ref_id)) {
         // allow only write access
         ilUtil::sendInfo($this->lng->txt("cannot_edit_test"), true);
         $this->ctrl->redirect($this, "infoScreen");
     }
     $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_as_tst_defaults.html", "Modules/Test");
     $maxentries = $ilUser->getPref("hits_per_page");
     if ($maxentries < 1) {
         $maxentries = 9999;
     }
     $offset = $_GET["offset"] ? $_GET["offset"] : 0;
     $sortby = $_GET["sort_by"] ? $_GET["sort_by"] : "name";
     $sortorder = $_GET["sort_order"] ? $_GET["sort_order"] : "asc";
     $defaults =& $this->object->getAvailableDefaults($sortby, $sortorder);
     if (count($defaults) > 0) {
         $tablerows = array();
         foreach ($defaults as $row) {
             array_push($tablerows, array("checkbox" => "<input type=\"checkbox\" name=\"chb_defaults[]\" value=\"" . $row["test_defaults_id"] . "\"/>", "name" => $row["name"]));
         }
         $headervars = array("", "name");
         include_once "./Services/Table/classes/class.ilTableGUI.php";
         $tbl = new ilTableGUI(0, FALSE);
         $tbl->setTitle($this->lng->txt("tst_defaults_available"));
         $header_names = array("", $this->lng->txt("title"));
         $tbl->setHeaderNames($header_names);
         $tbl->disable("sort");
         $tbl->disable("auto_sort");
         $tbl->enable("title");
         $tbl->enable("action");
         $tbl->enable("select_all");
         $tbl->setLimit($maxentries);
         $tbl->setOffset($offset);
         $tbl->setData($tablerows);
         $tbl->setMaxCount(count($tablerows));
         $tbl->setOrderDirection($sortorder);
         $tbl->setSelectAllCheckbox("chb_defaults");
         $tbl->setFormName("formDefaults");
         $tbl->addActionButton("deleteDefaults", $this->lng->txt("delete"));
         $tbl->addActionButton("applyDefaults", $this->lng->txt("apply"));
         $header_params = $this->ctrl->getParameterArray($this, "defaults");
         $tbl->setHeaderVars($headervars, $header_params);
         // footer
         $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
         // render table
         $tableoutput = $tbl->render();
         $this->tpl->setVariable("TEST_DEFAULTS_TABLE", $tableoutput);
     } else {
         $this->tpl->setVariable("TEST_DEFAULTS_TABLE", $this->lng->txt("tst_defaults_not_defined"));
     }
     $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "addDefaults"));
     $this->tpl->setVariable("BUTTON_ADD", $this->lng->txt("add"));
     $this->tpl->setVariable("TEXT_DEFAULTS_OF_TEST", $this->lng->txt("tst_defaults_defaults_of_test"));
 }
 function askDeleteObjective()
 {
     global $rbacsystem;
     // MINIMUM ACCESS LEVEL = 'write'
     if (!$rbacsystem->checkAccess("write", $this->course_obj->getRefId())) {
         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilErr->MESSAGE);
     }
     if (!count($_POST['objective'])) {
         ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
         $this->listObjectives();
         return true;
     }
     $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.crs_objectives.html", 'Modules/Course');
     ilUtil::sendQuestion($this->lng->txt('crs_delete_objectve_sure'));
     $tpl =& new ilTemplate("tpl.table.html", true, true);
     $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.crs_objectives_delete_row.html", 'Modules/Course');
     $counter = 0;
     foreach ($_POST['objective'] as $objective_id) {
         $objective_obj = $this->__initObjectivesObject($objective_id);
         $tpl->setCurrentBlock("tbl_content");
         $tpl->setVariable("ROWCOL", ilUtil::switchColor(++$counter, "tblrow2", "tblrow1"));
         $tpl->setVariable("TITLE", $objective_obj->getTitle());
         $tpl->setVariable("DESCRIPTION", $objective_obj->getDescription());
         $tpl->parseCurrentBlock();
     }
     $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     // Show action row
     $tpl->setCurrentBlock("tbl_action_btn");
     $tpl->setVariable("BTN_NAME", 'deleteObjectives');
     $tpl->setVariable("BTN_VALUE", $this->lng->txt('delete'));
     $tpl->parseCurrentBlock();
     $tpl->setCurrentBlock("tbl_action_btn");
     $tpl->setVariable("BTN_NAME", 'listObjectives');
     $tpl->setVariable("BTN_VALUE", $this->lng->txt('cancel'));
     $tpl->parseCurrentBlock();
     $tpl->setCurrentBlock("tbl_action_row");
     $tpl->setVariable("COLUMN_COUNTS", 1);
     $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath('arrow_downright.png'));
     $tpl->parseCurrentBlock();
     // create table
     $tbl = new ilTableGUI();
     $tbl->setStyle('table', 'std');
     // title & header columns
     $tbl->setTitle($this->lng->txt("crs_objectives"), "icon_lobj.png", $this->lng->txt("crs_objectives"));
     $tbl->setHeaderNames(array($this->lng->txt("title")));
     $tbl->setHeaderVars(array("title"), array("ref_id" => $this->course_obj->getRefId(), "cmdClass" => "ilcourseobjectivesgui", "cmdNode" => $_GET["cmdNode"]));
     $tbl->setColumnWidth(array("50%"));
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount(count($_POST['objective']));
     // footer
     $tbl->disable("footer");
     $tbl->disable('sort');
     // render table
     $tbl->setTemplate($tpl);
     $tbl->render();
     $this->tpl->setVariable("OBJECTIVES_TABLE", $tpl->get());
     // Save marked objectives
     $_SESSION['crs_delete_objectives'] = $_POST['objective'];
     return true;
 }
 /**
  * display edit form
  * 
  * @access	public
  */
 function editObject()
 {
     global $rbacsystem, $rbacreview;
     if (!$rbacsystem->checkAccess("edit_permission", $_GET["ref_id"])) {
         $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE);
     }
     //prepare objectlist
     $this->data = array();
     $this->data["data"] = array();
     $this->data["ctrl"] = array();
     $this->data["cols"] = array("type", "operation", "description", "status");
     $ops_valid = $rbacreview->getOperationsOnType($this->obj_id);
     if ($ops_arr = ilRbacReview::_getOperationList('', $a_order, $a_direction)) {
         $options = array("e" => "enabled", "d" => "disabled");
         foreach ($ops_arr as $key => $ops) {
             // BEGIN ROW
             if (in_array($ops["ops_id"], $ops_valid)) {
                 $ops_status = 'e';
             } else {
                 $ops_status = 'd';
             }
             $obj = $ops["ops_id"];
             $ops_options = ilUtil::formSelect($ops_status, "id[{$obj}]", $options);
             //visible data part
             $this->data["data"][] = array("type" => "perm", "operation" => $ops["operation"], "description" => $ops["desc"], "status" => $ops_status, "status_html" => $ops_options, "obj_id" => $val["ops_id"]);
         }
     }
     //if typedata
     $this->maxcount = count($this->data["data"]);
     // sorting array
     $this->data["data"] = ilUtil::sortArray($this->data["data"], $_GET["sort_by"], $_GET["sort_order"]);
     // now compute control information
     foreach ($this->data["data"] as $key => $val) {
         $this->data["ctrl"][$key] = array("obj_id" => $val["obj_id"], "type" => $val["type"]);
         unset($this->data["data"][$key]["obj_id"]);
         $this->data["data"][$key]["status"] = $this->data["data"][$key]["status_html"];
         unset($this->data["data"][$key]["status_html"]);
     }
     // build table
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     // load template for table
     $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
     $num = 0;
     $obj_str = $this->call_by_reference ? "" : "&obj_id=" . $this->obj_id;
     $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=" . $this->ref_id . "{$obj_str}&cmd=save");
     // create table
     $tbl = new ilTableGUI();
     // title & header columns
     $tbl->setTitle($this->lng->txt("edit_operations") . " " . strtolower($this->lng->txt("of")) . " '" . $this->object->getTitle() . "'", "icon_" . $this->object->getType() . "_b.png", $this->lng->txt("obj_" . $this->object->getType()));
     $tbl->setHelp("tbl_help.php", "icon_help.png", $this->lng->txt("help"));
     foreach ($this->data["cols"] as $val) {
         $header_names[] = $this->lng->txt($val);
     }
     $tbl->setHeaderNames($header_names);
     $header_params = array("ref_id" => $this->ref_id, "obj_id" => $this->id, "cmd" => "edit");
     $tbl->setHeaderVars($this->data["cols"], $header_params);
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit(0);
     $tbl->setOffset(0);
     $tbl->setMaxCount($this->maxcount);
     // SHOW VALID ACTIONS
     $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.png"));
     $this->tpl->setVariable("COLUMN_COUNTS", count($this->data["cols"]));
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     //$tbl->disable("footer");
     // render table
     $tbl->render();
     if (is_array($this->data["data"][0])) {
         //table cell
         for ($i = 0; $i < count($this->data["data"]); $i++) {
             $data = $this->data["data"][$i];
             $ctrl = $this->data["ctrl"][$i];
             // color changing
             $css_row = ilUtil::switchColor($i + 1, "tblrow1", "tblrow2");
             $this->tpl->setCurrentBlock("table_cell");
             $this->tpl->setVariable("CELLSTYLE", "tblrow1");
             $this->tpl->parseCurrentBlock();
             foreach ($data as $key => $val) {
                 $this->tpl->setCurrentBlock("text");
                 if ($key == "type") {
                     $val = ilUtil::getImageTagByType($val, $this->tpl->tplPath);
                 }
                 $this->tpl->setVariable("TEXT_CONTENT", $val);
                 $this->tpl->parseCurrentBlock();
                 $this->tpl->setCurrentBlock("table_cell");
                 $this->tpl->parseCurrentBlock();
             }
             //foreach
             $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("save"));
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->parseCurrentBlock();
         }
         //for
     }
     //if is_array
 }
Esempio n. 15
0
 /**
  * show client list
  */
 function showClientList()
 {
     global $tpl, $ilIliasIniFile, $ilCtrl;
     //echo "1";
     if (!$ilIliasIniFile->readVariable("clients", "list")) {
         $this->processIndexPHP();
         return;
     }
     //echo "2";
     $tpl = new ilTemplate("tpl.main.html", true, true);
     $tpl->setAddFooter(false);
     // no client yet
     // to do: get standard style
     $tpl->setVariable("PAGETITLE", "Client List");
     $tpl->setVariable("LOCATION_STYLESHEET", "./templates/default/delos.css");
     // load client list template
     self::initStartUpTemplate("tpl.client_list.html");
     // load template for table
     $tpl->addBlockfile("CLIENT_LIST", "client_list", "tpl.table.html");
     // load template for table content data
     $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
     // load table content data
     require_once "setup/classes/class.ilClientList.php";
     require_once "setup/classes/class.ilClient.php";
     require_once "setup/classes/class.ilDBConnections.php";
     require_once "./Services/Table/classes/class.ilTableGUI.php";
     $this->db_connections = new ilDBConnections();
     $clientlist = new ilClientList($this->db_connections);
     $list = $clientlist->getClients();
     if (count($list) == 0) {
         header("Location: ./setup/setup.php");
         exit;
     }
     $hasPublicSection = false;
     foreach ($list as $key => $client) {
         $client->setDSN();
         if ($client->checkDatabaseExists(true) and $client->ini->readVariable("client", "access") and $client->getSetting("setup_ok")) {
             $this->ctrl->setParameter($this, "client_id", $key);
             $tmp = array();
             $tmp[] = $client->getName();
             $tmp[] = "<a href=\"" . "login.php?cmd=force_login&client_id=" . urlencode($key) . "\">Login page</a>";
             if ($client->getSetting('pub_section')) {
                 $hasPublicSection = true;
                 $tmp[] = "<a href=\"" . "ilias.php?baseClass=ilRepositoryGUI&client_id=" . urlencode($key) . "\">Start page</a>";
             } else {
                 $tmp[] = '';
             }
             $data[] = $tmp;
         }
     }
     // create table
     $tbl = new ilTableGUI();
     // title & header columns
     if ($hasPublicSection) {
         $tbl->setTitle("Available Clients");
         $tbl->setHeaderNames(array("Installation Name", "Login", "Public Access"));
         $tbl->setHeaderVars(array("name", "index", "login"));
         $tbl->setColumnWidth(array("50%", "25%", "25%"));
     } else {
         $tbl->setTitle("Available Clients");
         $tbl->setHeaderNames(array("Installation Name", "Login", ''));
         $tbl->setHeaderVars(array("name", "login", ''));
         $tbl->setColumnWidth(array("70%", "25%", '1px'));
     }
     // control
     $tbl->setOrderColumn($_GET["sort_by"], "name");
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     // content
     $tbl->setData($data);
     $tbl->disable("icon");
     $tbl->disable("numinfo");
     $tbl->disable("sort");
     $tbl->disable("footer");
     // render table
     $tbl->render();
     $tpl->show("DEFAULT", true, true);
 }
 /**
  * show download list
  */
 function showDownloadList()
 {
     global $ilBench, $ilAccess, $ilias, $lng, $ilTabs;
     if (!$ilAccess->checkAccess("read", "", $_GET["ref_id"])) {
         $ilias->raiseError($lng->txt("permission_denied"), $ilias->error_obj->MESSAGE);
     }
     $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.glo_download_list.html", "Modules/Glossary");
     $this->setTabs();
     $ilTabs->activateTab("download");
     // set title header
     $this->tpl->setTitle($this->glossary->getTitle());
     //$this->tpl->setVariable("IMG_HEADER", ilUtil::getImagePath("icon_glo_b.png"));
     $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_glo_b.png"));
     // create table
     require_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     // load files templates
     $this->tpl->addBlockfile("DOWNLOAD_TABLE", "download_table", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.download_file_row.html", "Modules/Glossary");
     $export_files = array();
     $types = array("xml", "html");
     foreach ($types as $type) {
         if ($this->glossary->getPublicExportFile($type) != "") {
             $dir = $this->glossary->getExportDirectory($type);
             if (is_file($this->glossary->getExportDirectory($type) . "/" . $this->glossary->getPublicExportFile($type))) {
                 $size = filesize($this->glossary->getExportDirectory($type) . "/" . $this->glossary->getPublicExportFile($type));
                 $export_files[] = array("type" => $type, "file" => $this->glossary->getPublicExportFile($type), "size" => $size);
             }
         }
     }
     $num = 0;
     $tbl->setTitle($this->lng->txt("download"));
     $tbl->setHeaderNames(array($this->lng->txt("cont_format"), $this->lng->txt("cont_file"), $this->lng->txt("size"), $this->lng->txt("date"), ""));
     $cols = array("format", "file", "size", "date", "download");
     $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"], "cmd" => "showDownloadList", "cmdClass" => strtolower(get_class($this)));
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("10%", "30%", "20%", "20%", "20%"));
     $tbl->disable("sort");
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     // ???
     $this->tpl->setVariable("COLUMN_COUNTS", 5);
     // footer
     //$tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
     $tbl->disable("footer");
     $tbl->setMaxCount(count($export_files));
     $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);
     $tbl->render();
     if (count($export_files) > 0) {
         $i = 0;
         foreach ($export_files as $exp_file) {
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->setVariable("TXT_FILENAME", $exp_file["file"]);
             $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->setVariable("TXT_SIZE", $exp_file["size"]);
             $this->tpl->setVariable("TXT_FORMAT", strtoupper($exp_file["type"]));
             $this->tpl->setVariable("CHECKBOX_ID", $exp_file["type"] . ":" . $exp_file["file"]);
             $file_arr = explode("__", $exp_file["file"]);
             $this->tpl->setVariable("TXT_DATE", date("Y-m-d H:i:s", $file_arr[0]));
             $this->tpl->setVariable("TXT_DOWNLOAD", $this->lng->txt("download"));
             $this->ctrl->setParameter($this, "type", $exp_file["type"]);
             $this->tpl->setVariable("LINK_DOWNLOAD", $this->ctrl->getLinkTarget($this, "downloadExportFile"));
             $this->tpl->parseCurrentBlock();
         }
     } else {
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", 5);
         $this->tpl->parseCurrentBlock();
     }
     //$this->tpl->show();
 }
Esempio n. 17
0
 function sco_resources()
 {
     global $tpl, $lng, $ilCtrl;
     $this->setTabs();
     $this->setLocator();
     $i = 0;
     $export_files = $this->getExportResources();
     // create table
     require_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     // load files templates
     $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
     // load template for table content data
     $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.download_file_row.html", "Modules/LearningModule");
     $num = 0;
     $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     $tbl->setTitle($lng->txt("cont_files"));
     $tbl->setHeaderNames(array($lng->txt("cont_format"), $lng->txt("cont_file"), $lng->txt("size"), $lng->txt("date"), ""));
     $cols = array("format", "file", "size", "date", "download");
     $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"], "cmd" => "sco_resources", "cmdClass" => strtolower(get_class($this)), "cmdNode" => $_GET["cmdNode"], "baseClass" => $_GET["baseClass"]);
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("10%", "30%", "20%", "20%", "20%"));
     $tbl->disable("sort");
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     // ???
     $tbl->setMaxCount(count($export_files));
     // footer
     $tbl->setFooter("tblfooter", $lng->txt("previous"), $lng->txt("next"));
     //$tbl->disable("footer");
     $tbl->setMaxCount(count($export_files));
     $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);
     $tbl->render();
     if (count($export_files) > 0) {
         $i = 0;
         foreach ($export_files as $exp_file) {
             /* remote files (youtube videos) have no size, so we allow them now
             			if (!$exp_file["size"] > 0)
             			{
             				continue;
             			}
             			*/
             $tpl->setCurrentBlock("tbl_content");
             $tpl->setVariable("TXT_FILENAME", $exp_file["file"]);
             $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
             $tpl->setVariable("CSS_ROW", $css_row);
             $tpl->setVariable("TXT_SIZE", $exp_file["size"]);
             $tpl->setVariable("TXT_FORMAT", $exp_file["type"]);
             $tpl->setVariable("TXT_DATE", $exp_file["date"]);
             if ($exp_file["size"] > 0) {
                 $tpl->setVariable("TXT_DOWNLOAD", $lng->txt("download"));
                 $ilCtrl->setParameter($this, "resource", rawurlencode($exp_file["path"]));
                 $ilCtrl->setParameter($this, "file_id", rawurlencode($exp_file["file_id"]));
                 $tpl->setVariable("LINK_DOWNLOAD", $ilCtrl->getLinkTarget($this, "downloadResource"));
             } else {
                 $tpl->setVariable("TXT_DOWNLOAD", $lng->txt("show"));
                 $tpl->setVariable("LINK_TARGET", " target=\"_blank\"");
                 $tpl->setVariable("LINK_DOWNLOAD", $exp_file["path"]);
             }
             $tpl->parseCurrentBlock();
         }
     }
     //if is_array
     /* not found in template?
     		else
     		{
     			$tpl->setCurrentBlock("notfound");
     			$tpl->setVariable("TXT_OBJECT_NOT_FOUND", $lng->txt("obj_not_found"));
     			$tpl->setVariable("NUM_COLS", 4);
     			$tpl->parseCurrentBlock();
     		}		
     		 */
     // $tpl->parseCurrentBlock();
 }
 /**
  * The disk quota report list shows user accounts, their disk quota and their
  * disk usage, as well as the last time a reminder was sent.
  */
 public function viewDiskQuotaReport()
 {
     global $rbacsystem, $ilErr, $ilSetting, $lng;
     if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
         $ilErr->raiseError($lng->txt("no_permission"), $ilErr->WARNING);
     }
     $this->tabs_gui->setTabActive('disk_quota');
     $this->addDiskQuotaSubtabs('disk_quota_report');
     // nothing to do if disk quota is not active
     require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
     if (!ilDiskQuotaActivationChecker::_isActive()) {
         return;
     }
     // get the form
     $this->tpl->addBlockfile('ADM_CONTENT', 'adm_content', 'tpl.disk_quota_report.html', "Services/WebDAV");
     // get the date of the last update
     require_once "./Services/WebDAV/classes/class.ilDiskQuotaChecker.php";
     $last_update = ilDiskQuotaChecker::_lookupDiskUsageReportLastUpdate();
     if ($last_update == null) {
         // nothing to do if disk usage report has not been run
         $this->tpl->setVariable('LAST_UPDATE_TEXT', $lng->txt('disk_quota_report_not_run_yet'));
         return;
     } else {
         $this->tpl->setVariable('LAST_UPDATE_TEXT', $lng->txt('last_update') . ': ' . ilFormat::formatDate($last_update, 'datetime', true));
     }
     // Filter
     $_SESSION['quota_usage_filter'] = isset($_POST['usage_filter']) ? $_POST['usage_filter'] : $_SESSION['quota_usage_filter'];
     if ($_SESSION['quota_usage_filter'] == 0) {
         $_SESSION['quota_usage_filter'] = 4;
     }
     $_SESSION['quota_access_filter'] = isset($_POST['access_filter']) ? $_POST['access_filter'] : $_SESSION['quota_access_filter'];
     if ($_SESSION['quota_access_filter'] == 0) {
         $_SESSION['quota_access_filter'] = 1;
     }
     $usage_action[1] = $lng->txt('all_users');
     $usage_action[2] = $lng->txt('filter_users_without_disk_usage');
     $usage_action[3] = $lng->txt('filter_users_with_disk_usage');
     $usage_action[4] = $lng->txt('filter_users_with_exceeded_disk_quota');
     $access_action[1] = $lng->txt('all_users');
     $access_action[2] = $lng->txt('filter_users_with_access');
     $access_action[3] = $lng->txt('filter_users_without_access');
     $select_usage_filter = ilUtil::formSelect($_SESSION['quota_usage_filter'], "usage_filter", $usage_action, false, true);
     $select_access_filter = ilUtil::formSelect($_SESSION['quota_access_filter'], "access_filter", $access_action, false, true);
     $this->tpl->setCurrentBlock("filter");
     $this->tpl->setVariable("FILTER_TXT_FILTER", $lng->txt('filter'));
     $this->tpl->setVariable("SELECT_USAGE_FILTER", $select_usage_filter);
     $this->tpl->setVariable("SELECT_ACCESS_FILTER", $select_access_filter);
     $this->tpl->setVariable("FILTER_ACTION", $this->ctrl->getLinkTarget($this, 'viewDiskQuotaReport'));
     $this->tpl->setVariable("FILTER_NAME", 'view');
     $this->tpl->setVariable("FILTER_VALUE", $lng->txt('apply_filter'));
     $this->tpl->parseCurrentBlock();
     // load templates for table
     $a_tpl = new ilTemplate('tpl.table.html', true, true);
     $a_tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
     // create table
     require_once './Services/Table/classes/class.ilTableGUI.php';
     $tbl = new ilTableGUI(0, false);
     // title & header columns
     $header_vars = array('login', 'firstname', 'lastname', 'email', 'access_until', 'last_login', 'disk_quota', 'disk_usage', 'last_reminder');
     $tbl->setHeaderNames(array($lng->txt('login'), $lng->txt('firstname'), $lng->txt('lastname'), $lng->txt('email'), $lng->txt('access_until'), $lng->txt('last_login'), $lng->txt('disk_quota'), $lng->txt('disk_usage'), $lng->txt('last_reminder')));
     $tbl->setHeaderVars($header_vars, $this->ctrl->getParameterArray($this, 'viewDiskQuotaReport', false));
     $tbl->enable("numinfo_header");
     $tbl->setFormName("cmd");
     $tbl->setSelectAllCheckbox("id");
     // sorting
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     // fetch the data
     $data = ilDiskQuotaChecker::_fetchDiskQuotaReport($_SESSION['quota_usage_filter'], $_SESSION['quota_access_filter'], $header_vars[$tbl->getOrderColumn()], $tbl->getOrderDirection());
     // paging
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount(count($data));
     // footer
     $tbl->setFooter("tblfooter", $lng->txt("previous"), $lng->txt("next"));
     // render table
     $tbl->setTemplate($a_tpl);
     // render rows
     $count = 0;
     for ($i = $tbl->getOffset(); $i < count($data) && $i < $tbl->getOffset() + $tbl->getLimit(); $i++) {
         $row = $data[$i];
         // build columns
         foreach ($header_vars as $key) {
             switch ($key) {
                 case 'login':
                     //build link
                     $this->ctrl->setParameterByClass("ilobjusergui", "ref_id", "7");
                     $this->ctrl->setParameterByClass("ilobjusergui", "obj_id", $row["usr_id"]);
                     $link = $this->ctrl->getLinkTargetByClass("ilobjusergui", "view");
                     $tbl_content_cell = '<a href="' . $link . '">' . htmlspecialchars($row[$key]) . '</a>';
                     break;
                 case 'disk_quota':
                     if ($row['role_id'] == SYSTEM_ROLE_ID) {
                         $tbl_content_cell = "<span class=\"smallgreen\">" . $lng->txt('access_unlimited') . '</span>';
                     } else {
                         $tbl_content_cell = ilFormat::formatSize($row[$key], 'short');
                     }
                     break;
                 case 'disk_usage':
                     if ($row['last_update'] == null) {
                         $tbl_content_cell = $lng->txt('unknown');
                     } else {
                         if ($row['disk_usage'] > $row['disk_quota']) {
                             $tbl_content_cell = "<span class=\"smallred\">" . ilFormat::formatSize($row[$key], 'short') . '</span>';
                         } else {
                             $tbl_content_cell = ilFormat::formatSize($row[$key], 'short');
                         }
                     }
                     break;
                 case 'access_until':
                     if (!$row['active']) {
                         $tbl_content_cell = "<span class=\"smallred\">" . $lng->txt('inactive') . '</span>';
                     } else {
                         if ($row['time_limit_unlimited']) {
                             $tbl_content_cell = "<span class=\"smallgreen\">" . $lng->txt('access_unlimited') . '</span>';
                         } else {
                             if ($row['expired']) {
                                 $tbl_content_cell = "<span class=\"smallred\">" . $lng->txt('access_expired') . '</span>';
                             } else {
                                 $tbl_content_cell = ilFormat::formatDate($row[$key]);
                             }
                         }
                     }
                     break;
                 case 'last_login':
                 case 'last_reminder':
                     if ($row[$key] == null) {
                         $tbl_content_cell = $lng->txt('no_date');
                     } else {
                         $tbl_content_cell = ilFormat::formatDate($row[$key]);
                     }
                     break;
                 default:
                     $tbl_content_cell = htmlspecialchars($row[$key]);
             }
             /*
             				if (is_array($tbl_content_cell))
             				{
             					$tbl->tpl->setCurrentBlock("tbl_cell_subtitle");
             					$tbl->tpl->setVariable("TBL_CELL_SUBTITLE",$tbl_content_cell[1]);
             					$tbl->tpl->parseCurrentBlock();
             					$tbl_content_cell = "<b>".$tbl_content_cell[0]."</b>";
             				}*/
             $tbl->tpl->setCurrentBlock("tbl_content_cell");
             $tbl->tpl->setVariable("TBL_CONTENT_CELL", $tbl_content_cell);
             $tbl->tpl->parseCurrentBlock();
         }
         $tbl->tpl->setCurrentBlock("tbl_content_row");
         $rowcolor = ilUtil::switchColor($count, "tblrow1", "tblrow2");
         $tbl->tpl->setVariable("ROWCOLOR", $rowcolor);
         $tbl->tpl->parseCurrentBlock();
         $count++;
     }
     $tbl->render();
     // Add table to page
     $this->tpl->setVariable("USER_TABLE", $a_tpl->get());
 }
Esempio n. 19
0
 /**
  * show download list
  */
 function showDownloadList()
 {
     //$this->tpl = new ilTemplate("tpl.lm_toc.html", true, true, true);
     $this->tpl->setCurrentBlock("ContentStyle");
     if (!$this->offlineMode()) {
         $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId()));
     } else {
         $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content_style/content.css");
     }
     $this->tpl->parseCurrentBlock();
     $this->renderPageTitle();
     $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
     $this->tpl->getStandardTemplate();
     $this->tpl->setVariable("TABS", $this->lm_gui->setilLMMenu($this->offlineMode(), $this->getExportFormat(), "download", true));
     $this->ilLocator();
     //$this->tpl->stopTitleFloating();
     $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.lm_download_list.html", "Modules/LearningModule");
     // set title header
     $this->tpl->setTitle($this->lm->getTitle());
     $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_lm.svg"));
     /*
     		$this->tpl->setVariable("TXT_BACK", $this->lng->txt("back"));
     		$this->ctrl->setParameter($this, "obj_id", $_GET["obj_id"]);
     		$this->tpl->setVariable("LINK_BACK",
     			$this->ctrl->getLinkTarget($this, "")); */
     // output copyright information
     include_once 'Services/MetaData/classes/class.ilMD.php';
     $md = new ilMD($this->lm->getId(), 0, $this->lm->getType());
     if (is_object($md_rights = $md->getRights())) {
         $copyright = $md_rights->getDescription();
         include_once 'Services/MetaData/classes/class.ilMDUtils.php';
         $copyright = ilMDUtils::_parseCopyright($copyright);
         if ($copyright != "") {
             $this->lng->loadLanguageModule("meta");
             $this->tpl->setCurrentBlock("copyright");
             $this->tpl->setVariable("TXT_COPYRIGHT", $this->lng->txt("meta_copyright"));
             $this->tpl->setVariable("LM_COPYRIGHT", $copyright);
             $this->tpl->parseCurrentBlock();
         }
     }
     // create table
     require_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     // load files templates
     $this->tpl->addBlockfile("DOWNLOAD_TABLE", "download_table", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.download_file_row.html", "Modules/LearningModule");
     $export_files = array();
     $types = array("xml", "html", "scorm");
     foreach ($types as $type) {
         if ($this->lm->getPublicExportFile($type) != "") {
             if (is_file($this->lm->getExportDirectory($type) . "/" . $this->lm->getPublicExportFile($type))) {
                 $dir = $this->lm->getExportDirectory($type);
                 $size = filesize($this->lm->getExportDirectory($type) . "/" . $this->lm->getPublicExportFile($type));
                 $export_files[] = array("type" => $type, "file" => $this->lm->getPublicExportFile($type), "size" => $size);
             }
         }
     }
     $num = 0;
     $tbl->setTitle($this->lng->txt("download"));
     $tbl->setHeaderNames(array($this->lng->txt("cont_format"), $this->lng->txt("cont_file"), $this->lng->txt("size"), $this->lng->txt("date"), ""));
     $cols = array("format", "file", "size", "date", "download");
     $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"], "cmd" => "showDownloadList", "cmdClass" => strtolower(get_class($this)));
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("10%", "30%", "20%", "20%", "20%"));
     $tbl->disable("sort");
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     // ???
     //$this->tpl->setVariable("COLUMN_COUNTS", 5);
     // footer
     //$tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
     $tbl->disable("footer");
     $tbl->setMaxCount(count($export_files));
     $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);
     $tbl->render();
     if (count($export_files) > 0) {
         $i = 0;
         foreach ($export_files as $exp_file) {
             if (!$exp_file["size"] > 0) {
                 continue;
             }
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->setVariable("TXT_FILENAME", $exp_file["file"]);
             $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->setVariable("TXT_SIZE", $exp_file["size"]);
             $this->tpl->setVariable("TXT_FORMAT", strtoupper($exp_file["type"]));
             $this->tpl->setVariable("CHECKBOX_ID", $exp_file["type"] . ":" . $exp_file["file"]);
             $file_arr = explode("__", $exp_file["file"]);
             $this->tpl->setVariable("TXT_DATE", date("Y-m-d H:i:s", $file_arr[0]));
             $this->tpl->setVariable("TXT_DOWNLOAD", $this->lng->txt("download"));
             $this->ctrl->setParameter($this, "type", $exp_file["type"]);
             $this->tpl->setVariable("LINK_DOWNLOAD", $this->ctrl->getLinkTarget($this, "downloadExportFile"));
             $this->tpl->parseCurrentBlock();
         }
     } else {
         $this->tpl->setCurrentBlock("notfound");
         $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
         $this->tpl->setVariable("NUM_COLS", 5);
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->show();
 }
 /**
  * Global user settings
  *
  * Allows to define global settings for user accounts
  *
  * Note: The Global user settings form allows to specify default values
  *       for some user preferences. To avoid redundant implementations, 
  *       specification of default values can be done elsewhere in ILIAS
  *       are not supported by this form. 
  */
 function exportObject()
 {
     global $ilias, $ilCtrl;
     if ($_POST["cmd"]["export"]) {
         $this->object->buildExportFile($_POST["export_type"]);
         $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
         exit;
     }
     $this->tpl->addBlockfile('ADM_CONTENT', 'adm_content', 'tpl.usr_export.html', 'Services/User');
     $export_types = array("userfolder_export_excel_x86", "userfolder_export_csv", "userfolder_export_xml");
     // create table
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     // load files templates
     $this->tpl->addBlockfile("EXPORT_FILES", "export_files", "tpl.table.html");
     // load template for table content data
     $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.usr_export_file_row.html", "Services/User");
     $num = 0;
     $tbl->setTitle($this->lng->txt("userfolder_export_files"));
     $tbl->setHeaderNames(array("", $this->lng->txt("userfolder_export_file"), $this->lng->txt("userfolder_export_file_size"), $this->lng->txt("date")));
     $tbl->setHeaderVars(array(), $ilCtrl->getParameterArray($this, "export"));
     $tbl->enabled["sort"] = false;
     $tbl->setColumnWidth(array("1%", "49%", "25%", "25%"));
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount($this->maxcount);
     // ???
     $this->tpl->setVariable("COLUMN_COUNTS", 4);
     // delete button
     $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.png"));
     $this->tpl->setVariable("ALT_ARROW", $this->lng->txt("actions"));
     $this->tpl->setCurrentBlock("tbl_action_btn");
     $this->tpl->setVariable("BTN_NAME", "confirmDeleteExportFile");
     $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
     $this->tpl->parseCurrentBlock();
     $this->tpl->setCurrentBlock("tbl_action_btn");
     $this->tpl->setVariable("BTN_NAME", "downloadExportFile");
     $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("download"));
     $this->tpl->parseCurrentBlock();
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     //$tbl->disable("footer");
     $export_files = $this->object->getExportFiles();
     $tbl->setMaxCount(count($export_files));
     $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);
     $tbl->render();
     if (count($export_files) > 0) {
         $i = 0;
         foreach ($export_files as $exp_file) {
             $this->tpl->setCurrentBlock("tbl_content");
             $this->tpl->setVariable("TXT_FILENAME", $exp_file["filename"]);
             $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
             $this->tpl->setVariable("CSS_ROW", $css_row);
             $this->tpl->setVariable("TXT_SIZE", $exp_file["filesize"]);
             $this->tpl->setVariable("CHECKBOX_ID", $exp_file["filename"]);
             $file_arr = explode("__", $exp_file["filename"]);
             $this->tpl->setVariable('TXT_DATE', ilDatePresentation::formatDate(new ilDateTime($file_arr[0], IL_CAL_UNIX)));
             $this->tpl->parseCurrentBlock();
         }
         $this->tpl->setCurrentBlock("selectall");
         $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
         $this->tpl->setVariable("CSS_ROW", $css_row);
         $this->tpl->parseCurrentBlock();
     }
     //if is_array
     /*
     else
     
     {
     	$this->tpl->setCurrentBlock("notfound");
     	$this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
     	$this->tpl->setVariable("NUM_COLS", 3);
     	$this->tpl->parseCurrentBlock();
     }
     */
     $this->tpl->parseCurrentBlock();
     foreach ($export_types as $export_type) {
         $this->tpl->setCurrentBlock("option");
         $this->tpl->setVariable("OPTION_VALUE", $export_type);
         $this->tpl->setVariable("OPTION_TEXT", $this->lng->txt($export_type));
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->setVariable("EXPORT_BUTTON", $this->lng->txt("create_export_file"));
     $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
 }
 function calcStats($mode)
 {
     global $tpl, $lng, $ilias, $db, $ilDB;
     if ($mode == 1) {
         //wenn Aufruf aus Applet
         $from = $this->from;
         $to = $this->to;
         $user_IDs = $this->user_IDs;
         $LehrModulID = $this->lm_ID;
         $user_selection = $this->user_selection;
         $this->appStats = 0;
     } else {
         $_SESSION["il_track_yearf"] = $_POST["yearf"];
         $_SESSION["il_track_yeart"] = $_POST["yeart"];
         $_SESSION["lmID"] = $_POST["lmID"];
         $_SESSION["il_track_monthf"] = $_POST["monthf"];
         $_SESSION["il_track_montht"] = $_POST["montht"];
         $_SESSION["il_track_dayf"] = $_POST["dayf"];
         $_SESSION["il_track_dayt"] = $_POST["dayt"];
         $_SESSION["il_track_stat"] = $_POST["stat"];
         $_SESSION["il_track_language"] = $_POST["language"];
         $_SESSION["il_track_author"] = $_POST["author"];
         $_SESSION["il_track_author1"] = $_POST["author1"];
         $_SESSION["il_track_lm"] = $_POST["lmID"];
         $_SESSION["il_track_tst"] = $_POST["tst"];
         $_SESSION["il_object_type"] = $_POST["object_type"];
         $_SESSION["il_track_stat2"] = $_POST["stat2"];
         $user_selection = $_POST["stat2"];
         $LehrModulID = $_SESSION["lmID"];
         $yearf = $_POST["yearf"];
         $monthf = $_POST["monthf"];
         $dayf = $_POST["dayf"];
         $yeart = $_POST["yeart"];
         $montht = $_POST["montht"];
         $dayt = $_POST["dayt"];
         $from = $yearf . "-" . $monthf . "-" . $dayf . " 00:00:00";
         $to = $yeart . "-" . $montht . "-" . $dayt . " 23:59:59";
         $user_IDs = $_SESSION["userSelected_stat"];
     }
     //nur falls mind. ein Benutzer ausgew�hlt wurde starten
     if (count($user_IDs) > 0 || $user_selection == "all") {
         //Benutzer-String f�r SQL erzeugen
         //STATS-EINSTELLUNGSOPTIONEN
         //$UTanz = 1000000; //Anzahl der max auslesenden Tracking Daten
         $SessionMaxVerweildauer = 1800;
         //sekunden
         $IntervallMax[1] = 10;
         $IntervallMax[2] = 30;
         $IntervallMax[3] = 60;
         $IntervallMax[4] = 120;
         $IntervallMax[5] = 600;
         $IntervallMax[6] = $SessionMaxVerweildauer;
         $IntervallSeitenMax[0] = -1;
         $IntervallSeitenMax[1] = 0;
         $IntervallSeitenMax[2] = 1;
         $IntervallSeitenMax[3] = 5;
         $IntervallSeitenMax[4] = 20;
         $IntervallSeitenMax[5] = 50;
         $RankBenoetigteZugriffe = 1;
         //ben�tigte Seitenzugriffe damit eine Seite ins Ranking kommt
         $RankAnzahl = 10;
         //Gr��e der Rankings
         //$umlauteAendern = 1; //1=ja
         $KapitelAbdeckungsKennzahlFaktor2 = 0.5;
         $KapitelAbdeckungsKennzahlFaktor3 = 1.0;
         $KapitelAbdeckungsKennzahlFaktor4 = 1.5;
         $KapitelAbdeckungsKennzahlFaktor5 = 2.0;
         //ALLGEMEINE VARIABLEN
         //aus DB:lm_tree
         $q = "SELECT child, parent,depth FROM lm_tree";
         $result = $ilias->db->query($q);
         while ($row = $result->fetchRow()) {
             $vatizumkind[$row[0]] = $row[1];
             $seitenTiefe[$row[0]] = $row[2];
         }
         //Ende While
         //aus DB:lm_data
         $q = "SELECT obj_id,title,type,lm_id FROM lm_data WHERE lm_id='" . $LehrModulID . "'";
         $result = $ilias->db->query($q);
         while ($row = $result->fetchRow()) {
             //Ben�tigte Daten zu den Kapitel und Seiten aus der DB auslesen
             if ($row[2] == 'st') {
                 $Kapitelanz++;
                 $KapitelID[$Kapitelanz] = $row[0];
                 $KapitelName[$Kapitelanz] = $row[1];
                 $KapitelLernModul[$Kapitelanz] = $row[3];
                 $rKapitelID[$row[0]] = $Kapitelanz;
             }
             if ($row[2] == 'pg') {
                 $Seitenanz++;
                 $SeitenID[$Seitenanz] = $row[0];
                 $SeitenName[$Seitenanz] = $row[1];
                 $SeitenLernModul[$Seitenanz] = $row[3];
                 $rSeitenID[$row[0]] = $Seitenanz;
             }
         }
         //2.SESSIONS bestimmen
         if ($_POST["stat2"] == 'all') {
             $q = "SELECT id, user_id,acc_obj_id,acc_sub_id,session_id, acc_time " . "FROM ut_access WHERE acc_obj_id=" . $ilDB->quote($LehrModulID, "integer") . " AND acc_time > " . $ilDB->quote($from, "timestamp") . " AND acc_time < " . $ilDB->quote($to, "timestamp") . " ";
         } else {
             $q = "SELECT id, user_id, acc_obj_id, acc_sub_id, session_id, acc_time " . "FROM ut_access WHERE acc_obj_id= " . $ilDB->quote($LehrModulID, "integer") . " AND acc_time > " . $ilDB->quote($from, "timestamp") . " AND acc_time < " . $ilDB->quote($to, "timestamp") . " AND " . $ilDB->in("user_id", $user_IDs, false, "integer");
         }
         $result = $ilias->db->query($q);
         while ($row = $result->fetchRow()) {
             if ($rSeitenID[$row[3]] != 0 && $rKapitelID[$vatizumkind[$row[3]]] != 0) {
                 //�berpr�ft ob die Seite des UT-Eintrages noch in der DB steht
                 if ($row[1] > $UserTopID) {
                     $UserTopID = $row[1];
                 }
                 //Es wird die h�chste User-ID bestimmt
                 $UserZugriffe[$row[1]]++;
                 $SeitenZugriffe[$rSeitenID[$row[3]]]++;
                 $GesamtSeitenZugriffe++;
                 $KapitelSeitenZugriffe[$rKapitelID[$vatizumkind[$row[3]]]]++;
                 $checkS = false;
                 //�berpr�fen ob Eintrag zu einer Session geh�rt
                 for ($i = 0; $i <= count($SessionCheck[$row[1]]); $i++) {
                     if ($row[4] == $SessionCheck[$row[1]][$i][0]) {
                         $pos = $SessionCheck[$row[1]][$i][1];
                         //liefert die session-id
                         $checkS = true;
                     }
                 }
                 //jetzt falls erneuter Seitenzugriff w�hrend einer Session
                 if ($checkS) {
                     //Untersuchen wie lange der Zeitraum zwischen den zwei Besuchen in der Sessions war
                     $SessionGesamtZugriffe++;
                     $SessionEndSekundeDummy[$pos] = substr($row[5], -2);
                     $SessionEndMinuteDummy[$pos] = substr($row[5], -5, 2);
                     $SessionEndStundeDummy[$pos] = substr($row[5], -8, 2);
                     $SessionEndGesamt = $SessionEndSekundeDummy[$pos] + $SessionEndMinuteDummy[$pos] * 60 + $SessionEndStundeDummy[$pos] * 60 * 60;
                     if ($SessionEndGesamt - $SessionStartGesamt[$pos] > 0) {
                         $SessionZugriffDifferenz = $SessionEndGesamt - $SessionStartGesamt[$pos];
                     }
                     if ($SessionZugriffDifferenz < $SessionMaxVerweildauer) {
                         //Falls Zeitdiff zwischen 2 Zugriffen kleiner der Vorgabe ist
                         //Statistik: Die Verweildauer zwischen den Klicks wird in in einer Klasse eingeteilt
                         if ($SessionZugriffDifferenz <= $IntervallMax[1]) {
                             $IntervallAnz[1]++;
                         } else {
                             if ($SessionZugriffDifferenz <= $IntervallMax[2]) {
                                 $IntervallAnz[2]++;
                             } else {
                                 if ($SessionZugriffDifferenz <= $IntervallMax[3]) {
                                     $IntervallAnz[3]++;
                                 } else {
                                     if ($SessionZugriffDifferenz <= $IntervallMax[4]) {
                                         $IntervallAnz[4]++;
                                     } else {
                                         if ($SessionZugriffDifferenz <= $IntervallMax[5]) {
                                             $IntervallAnz[5]++;
                                         } else {
                                             $IntervallAnz[6]++;
                                         }
                                     }
                                 }
                             }
                         }
                         $MessbareSessionZugriffe++;
                         $SessionsVerweildauer[$MessbareSessionZugriffe] = $SessionZugriffDifferenz;
                         //Differenz abspeichern
                         if ($SessionZugriffe[$pos] == 1) {
                             $MessbareSessions++;
                             $UserSessionAnz[$row[1]]++;
                         }
                         $SessionZugriffe[$pos]++;
                         $SeitenVerweildauerListe[$rSeitenID[$row[3]]][$SeitenMessbareZugriffe[$rSeitenID[$row[3]]]] = $SessionZugriffDifferenz;
                         $SeitenMessbareZugriffe[$rSeitenID[$row[3]]]++;
                         $SessionEndTime[$pos] = $row[5];
                         $SessionStartGesamt[$pos] = $SessionEndGesamt;
                         $SessionGesamtDauerAll += $SessionZugriffDifferenz;
                         $SessionGesamtDauer[$pos] += $SessionZugriffDifferenz;
                         $UserGesamtSessionsDauer[$row[1]] += $SessionZugriffDifferenz;
                         $UserSessionZugriffe[$row[1]]++;
                         $SeiteGesamtVerweilZeit[$rSeitenID[$row[3]]] += $SessionZugriffDifferenz;
                         $SessionVonNach[$SessionQuellSeite[$pos]][$rSeitenID[$row[3]]]++;
                         $KapitelVonNach[$rKapitelID[$vatizumkind[$SeitenID[$SessionQuellSeite[$pos]]]]][$rKapitelID[$vatizumkind[$row[3]]]]++;
                         $SessionQuellSeite[$pos] = $rSeitenID[$row[3]];
                     } else {
                         $checkS = false;
                     }
                 }
                 //Ende  if($checkS)
                 //falls erster Seitenzugriff einer Session
                 if ($checkS == false) {
                     $Sessionanz++;
                     $aktSessionAnzahlUser = count($SessionCheck[$row[1]]) + 1;
                     //Sessionanzahl des Users erh�hen
                     $SessionCheck[$row[1]][$aktSessionAnzahlUser][0] = $row[4];
                     $SessionCheck[$row[1]][$aktSessionAnzahlUser][1] = $Sessionanz;
                     $SessionZugriffe[$Sessionanz] = 1;
                     $SessionID[$Sessionanz] = $row[4];
                     $SessionUserID[$Sessionanz] = $row[1];
                     $SessionStartTime[$Sessionanz] = $row[5];
                     $SessionQuellSeite[$Sessionanz] = $rSeitenID[$row[3]];
                     $SessionStartSekunde[$Sessionanz] = substr($SessionStartTime[$Sessionanz], -2);
                     $SessionStartMinute[$Sessionanz] = substr($SessionStartTime[$Sessionanz], -5, 2);
                     $SessionStartStunde[$Sessionanz] = substr($SessionStartTime[$Sessionanz], -8, 2);
                     $SessionStartGesamt[$Sessionanz] = $SessionStartSekunde[$Sessionanz] + $SessionStartMinute[$Sessionanz] * 60 + $SessionStartStunde[$Sessionanz] * 60 * 60;
                 }
             }
         }
         //Ende While
         //STATISTIKEN
         //SEITENSTATS
         //meist-wenigst besuchteste Seiten abfragen
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[1]) {
                 $IntervallSeitenAnz[1]++;
             } else {
                 if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[2]) {
                     $IntervallSeitenAnz[2]++;
                 } else {
                     if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[3]) {
                         $IntervallSeitenAnz[3]++;
                     } else {
                         if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[4]) {
                             $IntervallSeitenAnz[4]++;
                         } else {
                             if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[5]) {
                                 $IntervallSeitenAnz[5]++;
                             } else {
                                 $IntervallSeitenAnz[6]++;
                             }
                         }
                     }
                 }
             }
         }
         //VERWEILDAUER-STATS
         //SessionsVerweildauer orden
         if (count($SessionsVerweildauer) > 0) {
             sort($SessionsVerweildauer);
         }
         //SessionDurchschnittsDauer bestimmen
         if ($MessbareSessions > 0) {
             $SessionDurchschnittsDauer = $SessionGesamtDauerAll / $MessbareSessions;
         }
         //SeitenVerweildauerDurchschnitt bestimmen
         if ($MessbareSessionZugriffe > 0) {
             $SeitenVerweildauerDurchschnitt = $SessionGesamtDauerAll / $MessbareSessionZugriffe;
         }
         //SeitenVerweildauerSpannweite bestimmen
         $SeitenVerweildauerSpannweite = $SessionsVerweildauer[$MessbareSessionZugriffe - 1] - $SessionsVerweildauer[0];
         //Verweildauer Median bestimmen
         if ($MessbareSessionZugriffe % 2 == 0) {
             $VerweildauerMedianPosA = $MessbareSessionZugriffe / 2;
             $VerweildauerMedianPosB = ($MessbareSessionZugriffe + 1) / 2 + 1;
             $VerweildauerMedian = ($SessionsVerweildauer[$VerweildauerMedianPosA - 1] + $SessionsVerweildauer[$VerweildauerMedianPosB - 1]) / 2;
         } else {
             $VerweildauerMedianPos = ($MessbareSessionZugriffe + 1) / 2;
             $VerweildauerMedian = $SessionsVerweildauer[$VerweildauerMedianPos - 1];
         }
         $SeitenVerweildauerVarianz = ilLMStatistics::varianzSV($SessionsVerweildauer, $SeitenVerweildauerDurchschnitt);
         $SeitenVerweildauerStandartAbw = sqrt($SeitenVerweildauerVarianz);
         if ($SeitenVerweildauerStandartAbw > 0) {
             $SeitenVerweildauerVarKoef = $SeitenVerweildauerDurchschnitt / $SeitenVerweildauerStandartAbw;
         }
         //GesamtVerweilzeit f�r Seiten maxordnen
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $SeitenGesamtVerweilMax[$i] = $SeiteGesamtVerweilZeit[$i];
                 $SeitenGesamtVerweilMaxID[$i] = $i;
             }
         }
         if (count($SeitenGesamtVerweilMax) > 0) {
             array_multisort($SeitenGesamtVerweilMax, SORT_DESC, $SeitenGesamtVerweilMaxID);
         }
         //GesamtVerweilzeit f�r Seiten minordnen
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $SeitenGesamtVerweilMin[$i] = $SeiteGesamtVerweilZeit[$i];
                 $SeitenGesamtVerweilMinID[$i] = $i;
             }
         }
         if (count($SeitenGesamtVerweilMin) > 0) {
             array_multisort($SeitenGesamtVerweilMin, SORT_ASC, $SeitenGesamtVerweilMinID);
         }
         //durchsch. Verweildauer f�r Seiten max ordnen
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $SeitenDurchschnittVerweilMax[$i] = $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i];
                 $SeitenDurchschnittVerweilMaxID[$i] = $i;
             }
         }
         if (count($SeitenDurchschnittVerweilMax) > 0) {
             array_multisort($SeitenDurchschnittVerweilMax, SORT_DESC, $SeitenDurchschnittVerweilMaxID);
         }
         //durchsch. Verweildauer f�r Seiten min  ordnen
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $SeitenDurchschnittVerweilMin[$i] = $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i];
                 $SeitenDurchschnittVerweilMinID[$i] = $i;
             }
         }
         if (count($SeitenDurchschnittVerweilMin) > 0) {
             array_multisort($SeitenDurchschnittVerweilMin, SORT_ASC, $SeitenDurchschnittVerweilMinID);
         }
         //USER-STATS:
         //Gesamte Sessiondauer der Einzelnen User ordnen
         for ($i = 1; $i <= $UserTopID; $i++) {
             if ($UserGesamtSessionsDauer[$i] > 0) {
                 $UserGesamtSessionsDauerMax[$i] = $UserGesamtSessionsDauer[$i];
                 $UserGesamtSessionsDauerMaxID[$i] = $i;
             } else {
                 $UserGesamtSessionsDauerMax[$i] = "";
                 $UserGesamtSessionsDauerMaxID[$i] = "";
             }
         }
         if (count($UserGesamtSessionsDauerMax) > 0) {
             array_multisort($UserGesamtSessionsDauerMax, SORT_DESC, $UserGesamtSessionsDauerMaxID);
         }
         //SessionAnz der Einzelnen User ordnen
         for ($i = 1; $i <= $UserTopID; $i++) {
             if ($UserSessionAnz[$i] > 0) {
                 $UserSessionAnzMax[$i] = $UserSessionAnz[$i];
                 $UserSessionAnzMaxID[$i] = $i;
             } else {
                 $UserSessionAnzMax[$i] = "";
                 $UserSessionAnzMaxID[$i] = "";
             }
         }
         if (count($UserSessionAnzMax) > 0) {
             array_multisort($UserSessionAnzMax, SORT_DESC, $UserSessionAnzMaxID);
         }
         //beteiligte User
         for ($i = 0; $i <= $UserTopID; $i++) {
             if ($UserZugriffe[$i] > 0) {
                 $UserAnz++;
             }
         }
         //Auswertbare User (Zeit)
         for ($i = 0; $i <= $UserTopID; $i++) {
             if ($UserSessionAnz[$i] > 0) {
                 $UserMessbarAnz++;
             }
         }
         //SEITENZUGRIFF-STATS
         //Zugriffe f�r Seiten maxordnen
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenZugriffe[$i] > 0) {
                 $SeitenZugriffMax[$i] = $SeitenZugriffe[$i];
                 $SeitenZugriffMaxID[$i] = $i;
             } else {
                 $SeitenZugriffMax[$i] = "";
                 $SeitenZugriffMaxID[$i] = "";
             }
         }
         if (count($SeitenZugriffMax) > 0) {
             array_multisort($SeitenZugriffMax, SORT_DESC, $SeitenZugriffMaxID);
         }
         //Zugriffe f�r Seiten minordnen
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenZugriffe[$i] > 0) {
                 $SeitenZugriffMin[$i] = $SeitenZugriffe[$i];
                 $SeitenZugriffMinID[$i] = $i;
             } else {
                 $SeitenZugriffMin[$i] = "";
                 $SeitenZugriffMinID[$i] = $i;
             }
         }
         if (count($SeitenZugriffMin) > 0) {
             array_multisort($SeitenZugriffMin, SORT_ASC, $SeitenZugriffMinID);
         }
         //Seitenzugriffe Median bestimmen
         if (count($SeitenZugriffMax) % 2 == 0) {
             $SeitenZugriffeMedianPosA = count($SeitenZugriffMax) / 2;
             $SeitenZugriffeMedianPosB = (count($SeitenZugriffMax) + 1) / 2 + 1;
             $SeitenZugriffeMedian = ($SeitenZugriffMax[$SeitenZugriffeMedianPosA - 1] + $SeitenZugriffMax[$SeitenZugriffeMedianPosB - 1]) / 2;
         } else {
             $SeitenZugriffeMedianPos = (count($SeitenZugriffMax) + 1) / 2;
             $SeitenZugriffeMedian = $SeitenZugriffMax[$SeitenZugriffeMedianPos - 1];
         }
         //SeitenZugriffe Spannweite bestimmen
         $SeitenZugriffeSpannweite = $SeitenZugriffMax[0] - $SeitenZugriffMax[count($SeitenZugriffMax) - 1];
         //SeitenZugriffe Modus bestimmen
         $MaxZW = 0;
         for ($i = 1; $i <= $Seitenanz; $i++) {
             $ZugriffsWert[$SeitenZugriffe[$i]]++;
             if ($SeitenZugriffe[$i] > $MaxZW) {
                 $MaxZW = $SeitenZugriffe[$i];
             }
         }
         for ($i = 0; $i <= $MaxZW; $i++) {
             if ($ZugriffsWert[$i] > $ZugriffsWertMaxAus) {
                 $ZugriffsWertMaxAus = $ZugriffsWert[$i];
                 $ZugriffsWertMax = $i;
             }
         }
         //SeitenZugriffe Var, Stdabw, Korr
         if ($Seitenanz > 0) {
             $SeitenZugriffeVarianz = ilLMStatistics::varianzSV($SeitenZugriffMax, $GesamtSeitenZugriffe / $Seitenanz);
         }
         $SeitenZugriffeStandartAbw = sqrt($SeitenZugriffeVarianz);
         if ($Seitenanz > 0 && $GesamtSeitenZugriffe / $Seitenanz > 0) {
             $SeitenZugriffeVarKoef = $SeitenZugriffeStandartAbw / ($GesamtSeitenZugriffe / $Seitenanz);
         }
         //SESSIONSTATS
         //Zusatz2: l�ngste Session bestimmen
         for ($i = 1; $i <= $Sessionanz; $i++) {
             $SessionGesamtDauerMax[$i] = $SessionGesamtDauer[$i];
             $SessionGesamtDauerMaxID[$i] = $i;
         }
         if (count($SessionGesamtDauerMax) > 0) {
             array_multisort($SessionGesamtDauerMax, SORT_DESC, $SessionGesamtDauerMaxID);
         }
         if ($Sessionanz > 0) {
             $SessionDurschnittsZeit = $GesamtSeitenZugriffe / $Sessionanz;
         }
         //EINZELSEITEN STATS
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] > 0) {
                 $EinzelSeitenVarianz[$i] = ilLMStatistics::varianzSV($SeitenVerweildauerListe[$i], $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i]);
                 if ($EinzelSeitenVarianz[$i] > 0) {
                     $EinzelSeitenVarKoef[$i] = $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i] / sqrt($EinzelSeitenVarianz[$i]);
                 }
             }
         }
         //EinzelSeitenvarianzen max
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $EinzelSeitenVarMax[$i] = $EinzelSeitenVarianz[$i];
                 $EinzelSeitenVarMaxID[$i] = $i;
             }
         }
         if (count($EinzelSeitenVarMax) > 0) {
             array_multisort($EinzelSeitenVarMax, SORT_DESC, $EinzelSeitenVarMaxID);
         }
         //EinzelSeitenvarianzen min
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $EinzelSeitenVarMin[$i] = $EinzelSeitenVarianz[$i];
                 $EinzelSeitenVarMinID[$i] = $i;
             }
         }
         if (count($EinzelSeitenVarMin) > 0) {
             array_multisort($EinzelSeitenVarMin, SORT_ASC, $EinzelSeitenVarMinID);
         }
         //EinzelSeitenVarKoef max
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $EinzelSeitenVarKoefMax[$i] = $EinzelSeitenVarKoef[$i];
                 $EinzelSeitenVarKoefMaxID[$i] = $i;
             }
         }
         if (count($EinzelSeitenVarKoefMax) > 0) {
             array_multisort($EinzelSeitenVarKoefMax, SORT_DESC, $EinzelSeitenVarKoefMaxID);
         }
         //EinzelSeitenVarKoef min
         for ($i = 1; $i <= $Seitenanz; $i++) {
             if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $EinzelSeitenVarKoefMin[$i] = $EinzelSeitenVarKoef[$i];
                 $EinzelSeitenVarKoefMinID[$i] = $i;
             }
         }
         if (count($EinzelSeitenVarKoefMin) > 0) {
             array_multisort($EinzelSeitenVarKoefMin, SORT_ASC, $EinzelSeitenVarKoefMinID);
         }
         //KAPITEL STATS:
         //Seitenstats auf Kapitel �bertragen
         $knoten = 0;
         $tiefe = 0;
         $KapitelAbdeckungsKennzahl1 = 1;
         //untere Klassengrenze;
         for ($i = 1; $i <= $Seitenanz; $i++) {
             $knoten = $SeitenID[$i];
             $tiefe = $seitenTiefe[$SeitenID[$i]];
             while ($tiefe > 1) {
                 $knoten = $vatizumkind[$knoten];
                 $KapitelZugriffe[$rKapitelID[$knoten]] += $SeitenZugriffe[$i];
                 $KapitelGesamtVerweilZeit[$rKapitelID[$knoten]] += $SeiteGesamtVerweilZeit[$i];
                 $KapitelMessbareZugriffe[$rKapitelID[$knoten]] += $SeitenMessbareZugriffe[$i];
                 $KapitelSeitenSumme[$rKapitelID[$knoten]]++;
                 if ($tiefe == 2) {
                     $KapitelGesamtSeitenAnzEbene2++;
                 }
                 if ($tiefe == 3) {
                     $KapitelGesamtSeitenAnzEbene3++;
                 }
                 if ($tiefe == 4) {
                     $KapitelGesamtSeitenAnzEbene4++;
                 }
                 if ($tiefe == 5) {
                     $KapitelGesamtSeitenAnzEbene5++;
                 }
                 $tiefe = $seitenTiefe[$knoten];
             }
         }
         //Zugriffe f�r Kapitel maxordnen
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($seitenTiefe[$KapitelID[$i]] == 2) {
                 $KapitelTiefe2Anzahl++;
                 if ($KapitelZugriffe[$i] > 0) {
                     $KapitelZugriffMax2[$i] = $KapitelZugriffe[$i];
                     $KapitelZugriffMaxID2[$i] = $i;
                 } else {
                     $KapitelZugriffMax2[$i] = "";
                     $KapitelZugriffMaxID2[$i] = $i;
                 }
             }
             if ($seitenTiefe[$KapitelID[$i]] == 3) {
                 $KapitelTiefe3Anzahl++;
                 if ($KapitelZugriffe[$i] > 0) {
                     $KapitelZugriffMax3[$i] = $KapitelZugriffe[$i];
                     $KapitelZugriffMaxID3[$i] = $i;
                 } else {
                     $KapitelZugriffMax3[$i] = "";
                     $KapitelZugriffMaxID3[$i] = $i;
                 }
             }
             if ($seitenTiefe[$KapitelID[$i]] == 4) {
                 $KapitelTiefe4Anzahl++;
                 if ($KapitelZugriffe[$i] > 0) {
                     $KapitelZugriffMax4[$i] = $KapitelZugriffe[$i];
                     $KapitelZugriffMaxID4[$i] = $i;
                 } else {
                     $KapitelZugriffMax4[$i] = "";
                     $KapitelZugriffMaxID4[$i] = $i;
                 }
             }
             if ($seitenTiefe[$KapitelID[$i]] >= 5) {
                 $KapitelTiefe5Anzahl++;
                 if ($KapitelZugriffe[$i] > 0) {
                     $KapitelZugriffMax5[$i] = $KapitelZugriffe[$i];
                     $KapitelZugriffMaxID5[$i] = $i;
                 } else {
                     $KapitelZugriffMax5[$i] = "";
                     $KapitelZugriffMaxID5[$i] = $i;
                 }
             }
         }
         if (count($KapitelZugriffMax2) > 0) {
             array_multisort($KapitelZugriffMax2, SORT_DESC, $KapitelZugriffMaxID2);
         }
         if (count($KapitelZugriffMax3) > 0) {
             array_multisort($KapitelZugriffMax3, SORT_DESC, $KapitelZugriffMaxID3);
         }
         if (count($KapitelZugriffMax4) > 0) {
             array_multisort($KapitelZugriffMax4, SORT_DESC, $KapitelZugriffMaxID4);
         }
         if (count($KapitelZugriffMax5) > 0) {
             array_multisort($KapitelZugriffMax5, SORT_DESC, $KapitelZugriffMaxID5);
         }
         //Zugriffe f�r Kapitel minordnen
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($KapitelZugriffe[$i] > 0) {
                 $KapitelZugriffMin[$i] = $KapitelZugriffe[$i];
                 $KapitelZugriffMinID[$i] = $i;
             } else {
                 $KapitelZugriffMin[$i] = "";
                 $KapitelZugriffMinID[$i] = $i;
             }
         }
         if (count($KapitelZugriffMin) > 0) {
             array_multisort($KapitelZugriffMin, SORT_ASC, $KapitelZugriffMinID);
         }
         //GesamtVerweilzeit f�r Kapitel maxordnen
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($seitenTiefe[$KapitelID[$i]] == 2) {
                 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                     $KapitelGesamtVerweilMax2[$i] = $KapitelGesamtVerweilZeit[$i];
                     $KapitelGesamtVerweilMaxID2[$i] = $i;
                 }
             }
             if ($seitenTiefe[$KapitelID[$i]] == 3) {
                 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                     $KapitelGesamtVerweilMax3[$i] = $KapitelGesamtVerweilZeit[$i];
                     $KapitelGesamtVerweilMaxID3[$i] = $i;
                 }
             }
             if ($seitenTiefe[$KapitelID[$i]] == 4) {
                 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                     $KapitelGesamtVerweilMax4[$i] = $KapitelGesamtVerweilZeit[$i];
                     $KapitelGesamtVerweilMaxID4[$i] = $i;
                 }
             }
             if ($seitenTiefe[$KapitelID[$i]] >= 5) {
                 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                     $KapitelGesamtVerweilMax5[$i] = $KapitelGesamtVerweilZeit[$i];
                     $KapitelGesamtVerweilMaxID5[$i] = $i;
                 }
             }
         }
         if (count($KapitelGesamtVerweilMax2) > 0) {
             array_multisort($KapitelGesamtVerweilMax2, SORT_DESC, $KapitelGesamtVerweilMaxID2);
         }
         if (count($KapitelGesamtVerweilMax3) > 0) {
             array_multisort($KapitelGesamtVerweilMax3, SORT_DESC, $KapitelGesamtVerweilMaxID3);
         }
         if (count($KapitelGesamtVerweilMax4) > 0) {
             array_multisort($KapitelGesamtVerweilMax4, SORT_DESC, $KapitelGesamtVerweilMaxID4);
         }
         if (count($KapitelGesamtVerweilMax5) > 0) {
             array_multisort($KapitelGesamtVerweilMax5, SORT_DESC, $KapitelGesamtVerweilMaxID5);
         }
         //GesamtVerweilzeit f�r Kapitel minordnen
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
                 $KapitelGesamtVerweilMin[$i] = $KapitelGesamtVerweilZeit[$i];
                 $KapitelGesamtVerweilMinID[$i] = $i;
             }
         }
         if (count($KapitelGesamtVerweilMin) > 0) {
             array_multisort($KapitelGesamtVerweilMin, SORT_ASC, $KapitelGesamtVerweilMinID);
         }
         //SeitenSumme f�r Kapitel maxordnen
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             $KapitelSeitenSummeMax[$i] = $KapitelSeitenSumme[$i];
             $KapitelSeitenSummeMaxID[$i] = $i;
         }
         if (count($KapitelGesamtVerweilMax) > 0) {
             array_multisort($KapitelSeitenSummeMax, SORT_DESC, $KapitelSeitenSummeMaxID);
         }
         //durchschnittliche Seitenzugriffe je Kapiteltiefe
         $summe = 0;
         for ($i = 0; $i <= $Kapitelanz; $i++) {
             $summe += $KapitelZugriffMax2[$i];
         }
         if ($KapitelGesamtSeitenAnzEbene2 > 0) {
             $KapitelDurchZugriffe2 = $summe / $KapitelGesamtSeitenAnzEbene2;
         }
         $summe = 0;
         for ($i = 0; $i <= $Kapitelanz; $i++) {
             $summe += $KapitelZugriffMax3[$i];
         }
         if ($KapitelGesamtSeitenAnzEbene3 > 0) {
             $KapitelDurchZugriffe3 = $summe / $KapitelGesamtSeitenAnzEbene3;
         }
         $summe = 0;
         for ($i = 0; $i <= $Kapitelanz; $i++) {
             $summe += $KapitelZugriffMax4[$i];
         }
         if ($KapitelGesamtSeitenAnzEbene4 > 0) {
             $KapitelDurchZugriffe4 = $summe / $KapitelGesamtSeitenAnzEbene4;
         }
         $summe = 0;
         for ($i = 0; $i <= $Kapitelanz; $i++) {
             $summe += $KapitelZugriffMax5[$i];
         }
         if ($KapitelGesamtSeitenAnzEbene5 > 0) {
             $KapitelDurchZugriffe5 = $summe / $KapitelGesamtSeitenAnzEbene5;
         }
         for ($i = 1; $i <= $Seitenanz; $i++) {
             $knoten = $SeitenID[$i];
             $tiefe = $seitenTiefe[$SeitenID[$i]];
             while ($tiefe > 1) {
                 $knoten = $vatizumkind[$knoten];
                 if ($seitenTiefe[$knoten] == 2 && $KapitelDurchZugriffe2 > 0) {
                     if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
                         $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor2) {
                         $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor3) {
                         $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor4) {
                         $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor5) {
                         $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
                     }
                 }
                 if ($seitenTiefe[$knoten] == 3 && $KapitelDurchZugriffe3 > 0) {
                     if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
                         $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor2) {
                         $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor3) {
                         $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor4) {
                         $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor5) {
                         $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
                     }
                 }
                 if ($seitenTiefe[$knoten] == 4 && $KapitelDurchZugriffe4 > 0) {
                     if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
                         $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor2) {
                         $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor3) {
                         $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor4) {
                         $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor5) {
                         $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
                     }
                 }
                 if ($seitenTiefe[$knoten] >= 5 && $KapitelDurchZugriffe5 > 0) {
                     if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
                         $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor2) {
                         $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor3) {
                         $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor4) {
                         $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
                     }
                     if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor5) {
                         $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
                     }
                 }
                 $tiefe = $seitenTiefe[$knoten];
             }
         }
         //BEGINN DER AUSGABE
         /**
          *Im Feld $SeitenStatsName[] wird jeweils der Name der anzuzeigenden Option gespeichert der dann in der der linken Spalte ausgegeben wird.
          *In $SeitenStatsWert[] wird der dazugeh�rige Optionswert eingetragen.
          *Ein Slider ($slider) wird verwendet um die Optionen leichter zu entfernen bzw. zu verschieben.
          *	Soll zB eine neue Option hinzugef�gt werden kann man das mit den Eintr�gen...
          *	    	$SeitenStatsName[$slider3]="Name der neuen Option";
          *		$SeitenStatsWert[$slider3]="Wert der neuen Option";
          *		$slider3++;
          *	...bewerkstelligt werden.
          */
         $TNA = 300;
         //Strings werden auf diesen Wert gek�rzt
         $hop = 3;
         //Dicke zwischen den Zeilen. Um zB Optionen in der Ausgabe voneinander abzugrenzen
         //SEITENSTATS
         //Funktion zum umrechnen von Sekunden in Stunden
         /*			//wenn die Option umlauteAendern eingeschaltet ist (wert=1) dann werden bei der Ausgabe die Umlaute in der Ausgabe ge�ndert
         
                     if ($umlauteAendern == 1) {
                     $d1 = array ("ä", "ö", "ü", "Ä", "Ö", "Ü");
                     $d2 = array ("ae", "oe", "ue", "Ae", "Oe", "Ue");
                     }
                     */
         $slider = 1;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_number");
         //$lng->txt("stats_page_number")
         $SeitenStatsWert[$slider] = round($Seitenanz);
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_number_access");
         //"Anzahl Seitenzugriffe";
         $SeitenStatsWert[$slider] = round($GesamtSeitenZugriffe) . "z";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_total_dwell_time");
         //"Gesamte-SeitenVerweilzeit";
         $SeitenStatsWert[$slider] = ilLMStatistics::s_to_h($SessionGesamtDauerAll) . " (" . round($SessionGesamtDauerAll) . "s)";
         $slider++;
         if ($Seitenanz > 0) {
             $SeitenStatsName[$slider] = $lng->txt("stats_page_average_access");
             //"Seitenzugriffe-Mittelwert";
             $SeitenStatsWert[$slider] = round($GesamtSeitenZugriffe / $Seitenanz, 2) . "z";
             $slider++;
         }
         $SeitenStatsName[$slider] = $lng->txt("stats_page_median_access");
         //"Seitenzugriffe-Median";
         $SeitenStatsWert[$slider] = round($SeitenZugriffeMedian) . "z";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_mode_access");
         //"Seitenzugriffe-Modus:";
         $SeitenStatsWert[$slider] = $lng->txt("stats_occurrence") . ": " . round($ZugriffsWertMax) . " (#: " . $ZugriffsWertMaxAus . " )";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_range_access");
         //"Seitenzugriffe-Spannweite";
         $SeitenStatsWert[$slider] = round($SeitenZugriffeSpannweite) . "z";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_variance_access");
         //"Seitenzugriffe-Varianz";
         $SeitenStatsWert[$slider] = round($SeitenZugriffeVarianz, 2);
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_deviation_access");
         //"Seitenzugriffe-Standartabweichung";
         $SeitenStatsWert[$slider] = round($SeitenZugriffeStandartAbw, 2) . "z";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_varcoeff_access");
         //"Seitenzugriffer-VarKoef";
         $SeitenStatsWert[$slider] = round($SeitenZugriffeVarKoef, 2);
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_average_dwell_time");
         //"SeitenVerweildauer-Mittelwert";
         $SeitenStatsWert[$slider] = round($SeitenVerweildauerDurchschnitt, 2) . "s";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_median_dwell_time");
         //"SeitenVerweildauer-Median";
         $SeitenStatsWert[$slider] = round($VerweildauerMedian);
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_range_dwell_time");
         //"SeitenVerweildauer-Spannweite";
         $SeitenStatsWert[$slider] = round($SeitenVerweildauerSpannweite) . "s";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_variance_dwell_time");
         //"SeitenVerweildauer-Varianz";
         $SeitenStatsWert[$slider] = round($SeitenVerweildauerVarianz, 2);
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_deviation_dwell_time");
         //"SeitenVerweildauer-Standartabweichung";
         $SeitenStatsWert[$slider] = round($SeitenVerweildauerStandartAbw, 2) . "s";
         $slider++;
         $SeitenStatsName[$slider] = $lng->txt("stats_page_varcoeff_dwell_time");
         //"SeitenVerweildauer-VarKoef";
         $SeitenStatsWert[$slider] = round($SeitenVerweildauerVarKoef, 2);
         $slider++;
         $slider = count($SeitenStatsWert);
         $slider += 2;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_longest_total_dwell_time") . "</b>";
         //"<b>Laengste GesamtVerweildauer:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$SeitenGesamtVerweilMaxID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = ilLMStatistics::s_to_h($SeitenGesamtVerweilMax[$i]) . " (" . (is_numeric($SeitenGesamtVerweilMax[$i]) ? $SeitenGesamtVerweilMax[$i] : "0") . "s, mZ:" . (is_numeric($SeitenMessbareZugriffe[$SeitenGesamtVerweilMaxID[$i]]) ? $SeitenMessbareZugriffe[$SeitenGesamtVerweilMaxID[$i]] : "0") . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_stubbiest_total_dwell_time") . "</b>";
         //"<b>Kuerzeste GesamtVerweildauer:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$SeitenGesamtVerweilMinID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round(is_numeric($SeitenGesamtVerweilMin[$i]) ? $SeitenGesamtVerweilMin[$i] : "0") . "s (mZ:" . (is_numeric($SeitenMessbareZugriffe[$SeitenGesamtVerweilMinID[$i]]) ? $SeitenMessbareZugriffe[$SeitenGesamtVerweilMinID[$i]] : "0") . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_longest_average_dwell_time") . "</b>";
         //"<b>Laengste durschn.Verweildauer:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$SeitenDurchschnittVerweilMaxID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round(is_numeric($SeitenDurchschnittVerweilMax[$i]) ? $SeitenDurchschnittVerweilMax[$i] : 0) . "s (mZ:" . (is_numeric($SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMaxID[$i]]) ? $SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMaxID[$i]] : "0") . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_stubbiest_average_dwell_time") . "</b>";
         //"<b>Kuerzeste durschn.Verweildauer:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$SeitenDurchschnittVerweilMinID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round($SeitenDurchschnittVerweilMin[$i]) . "s (mZ:" . (is_numeric($SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMinID[$i]]) ? $SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMinID[$i]] : "0") . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_most_access") . "</b>";
         //"<b>Meisten Zugriffe:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$SeitenZugriffMaxID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round($SeitenZugriffMax[$i]) . "z ";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_fewest_access") . "</b>";
         //"<b>Wenigsten Zugriffe:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$SeitenZugriffMinID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round($SeitenZugriffMin[$i]) . "z ";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_highest_deviation") . "</b>";
         //"<b>Hoechste Standartabweichung:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarMaxID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round(sqrt($EinzelSeitenVarMax[$i]), 2) . " (mZ:" . (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarMaxID[$i]]) ? $SeitenMessbareZugriffe[$EinzelSeitenVarMaxID[$i]] : 0) . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_least_deviation") . "</b>";
         //"<b>Geringste Standartabweichung:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarMinID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round(sqrt($EinzelSeitenVarMin[$i]), 2) . " (mZ:" . (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarMinID[$i]]) ? $SeitenMessbareZugriffe[$EinzelSeitenVarMinID[$i]] : 0) . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_highest_varcoeff") . "</b>";
         //"<b>Hoechster Variationskoeffizient:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarKoefMaxID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round(sqrt($EinzelSeitenVarKoefMax[$i]), 2) . " (mZ:" . (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarKoefMaxID[$i]]) ? $SeitenMessbareZugriffe[$EinzelSeitenVarKoefMaxID[$i]] : 0) . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_page_lowest_varcoeff") . "</b>";
         //"<b>Geringster Variationskoeffizient:</b>";
         $SeitenStatsWert[$slider] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SeitenStatsName[$i + 1 + $slider] = $i + 1 . ". " . str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarKoefMinID[$i]], 0, $TNA));
             $SeitenStatsWert[$i + 1 + $slider] = round(sqrt($EinzelSeitenVarKoefMin[$i]), 2) . " (mZ:" . (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarKoefMinID[$i]]) ? $SeitenMessbareZugriffe[$EinzelSeitenVarKoefMinID[$i]] : 0) . ")";
         }
         $slider += $RankAnzahl + $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_interval_dwell_time") . "</b>";
         //"<b>VerweilDauer-Intervalle:</b>";
         $SeitenStatsWert[$slider] = "";
         $summe = 0;
         for ($i = 1; $i <= count($IntervallMax); $i++) {
             $SeitenStatsName[$i + $slider] = $IntervallMax[$i - 1] . $lng->txt("stats_sec") . " " . $lng->txt("stats_until") . " " . $IntervallMax[$i] . " " . $lng->txt("stats_sec") . ":";
             //$IntervallMax[$i-1]."s bis ".$IntervallMax[$i]."s:";
             $SeitenStatsWert[$i + $slider] = round($IntervallAnz[$i]) . "z";
             $summe += $IntervallAnz[$i];
         }
         $slider += count($IntervallMax) + 1;
         $SeitenStatsName[$slider] = $lng->txt("stats_summation") . ": ";
         //"Summe:";
         $SeitenStatsWert[$slider] = $summe . " " . $lng->txt("stats_accesses");
         //" Zugriffe";
         $slider += $hop;
         $SeitenStatsName[$slider] = "<b>" . $lng->txt("stats_interval_page_access") . "</b>";
         //"<b>Seitenzugriffe-Intervalle:</b>";
         $SeitenStatsWert[$slider] = "";
         $summe = 0;
         for ($i = 1; $i <= count($IntervallSeitenMax); $i++) {
             $SeitenStatsName[$i + $slider] = $IntervallSeitenMax[$i - 1] + 1 . " " . $lng->txt("stats_until") . " " . $IntervallSeitenMax[$i] . " " . $lng->txt("stats_accesses");
             //..." bis "..." Zugriffe";
             $SeitenStatsWert[$i + $slider] = round($IntervallSeitenAnz[$i]) . " " . $lng->txt("stats_pages");
             //" Seiten";
             $summe += $IntervallSeitenAnz[$i];
         }
         $slider += count($IntervallSeitenMax) + 2;
         $SeitenStatsName[$slider] = $lng->txt("stats_summation") . ": ";
         //"Summe:";
         $SeitenStatsWert[$slider] = $summe . " " . $lng->txt("stats_pages");
         //" Seiten";
         $slider += $hop;
         //SESSIONSTATS
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_number");
         //"Anzahl Sessions";
         $SessionStatsWert[$slider2] = round($Sessionanz);
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable");
         //"Auswertbare Sessions (Zeit)";
         $SessionStatsWert[$slider2] = round($MessbareSessions);
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_involved_usr");
         //"beteiligte User";
         $SessionStatsWert[$slider2] = round($UserAnz);
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable_usr");
         //"Auswertbare User";
         $SessionStatsWert[$slider2] = round($UserMessbarAnz);
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable_access");
         //"Auswertbare Sessionzugriffe (Zeit)";
         $SessionStatsWert[$slider2] = round($MessbareSessionZugriffe);
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_average_page_access");
         //"durchschn. Seitenzugriffe je Session";
         $SessionStatsWert[$slider2] = round($SessionDurschnittsZeit, 4);
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_total_duration");
         //"SessionsGesamtdauer";
         $SessionStatsWert[$slider2] = ilLMStatistics::s_to_h($SessionGesamtDauerAll) . " (" . $SessionGesamtDauerAll . $lng->txt("stats_sec") . ")";
         $slider2++;
         $SessionStatsName[$slider2] = $lng->txt("stats_session_average_length");
         //"durchschn. Sessionlaenge";
         $SessionStatsWert[$slider2] = ilLMStatistics::s_to_m($SessionDurchschnittsDauer);
         $slider2++;
         $slider2 += $hop;
         $SessionStatsName[$slider2] = "<b>" . $lng->txt("stats_session_longest") . "</b>";
         //"<b>Laengste Session</b>";
         $SessionStatsWert[$slider2] = "";
         include_once "Services/Tracking/classes/class.ilObjUserTracking.php";
         $anonymous = !ilObjUserTracking::_enabledUserRelatedData();
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SessionStatsName[$i + 1 + $slider2] = $i + 1 . ". " . $lng->txt("stats_user") . " " . ($anonymous ? $i + 1 : ilObjUser::_lookupLogin($SessionUserID[$SessionGesamtDauerMaxID[$i]]));
             //.$SessionGesamtDauerMaxID[$i]." von User "
             $SessionStatsWert[$i + 1 + $slider2] = ilLMStatistics::s_to_h($SessionGesamtDauerMax[$i]) . " (" . $SessionGesamtDauerMax[$i] . $lng->txt("stats_sec") . ")";
             //"s)";
         }
         $slider2 += $RankAnzahl + $hop;
         $SessionStatsName[$slider2] = "<b>" . $lng->txt("stats_session_longest_total_duration_usr") . "</b>";
         //"<b>Laengste Gesamtdauer pro User</b>";
         $SessionStatsWert[$slider2] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SessionStatsName[$i + 1 + $slider2] = $i + 1 . ". " . $lng->txt("stats_user") . " " . ($anonymous ? $i + 1 : ilObjUser::_lookupLogin($UserGesamtSessionsDauerMaxID[$i]));
             $SessionStatsWert[$i + 1 + $slider2] = ilLMStatistics::s_to_h($UserGesamtSessionsDauerMax[$i]) . " (" . $UserGesamtSessionsDauerMax[$i] . $lng->txt("stats_sec") . ")";
             //."s)";
         }
         $slider2 += $RankAnzahl + $hop;
         $SessionStatsName[$slider2] = "<b>" . $lng->txt("stats_session_most") . ":" . "</b>";
         //"<b>Meiste Sessions:</b>";
         $SessionStatsWert[$slider2] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $SessionStatsName[$i + 1 + $slider2] = $i + 1 . ". " . $lng->txt("stats_user") . " " . ($anonymous ? $i + 1 : ilObjUser::_lookupLogin($UserSessionAnzMaxID[$i]));
             //".  User "
             $SessionStatsWert[$i + 1 + $slider2] = round($UserSessionAnzMax[$i]) . " " . $lng->txt("stats_sessions");
             //" Sessions";
         }
         $slider2 += $RankAnzahl + $hop;
         //KAPITELSTATS
         $hop = 0;
         $slider3++;
         $KapitelStatsName[$slider3] = $lng->txt("stats_chapter_number");
         //"Anzahl Kapitel";
         $KapitelStatsWert[$slider3] = round($Kapitelanz);
         $slider3++;
         $KapitelStatsName[$slider3] = $lng->txt("stats_depth") . " 0";
         //"Tiefe 2";
         $KapitelStatsWert[$slider3] = round($KapitelTiefe2Anzahl);
         $slider3++;
         $KapitelStatsName[$slider3] = $lng->txt("stats_depth") . " 1";
         //"Tiefe 3";
         $KapitelStatsWert[$slider3] = round($KapitelTiefe3Anzahl);
         $slider3++;
         $KapitelStatsName[$slider3] = $lng->txt("stats_depth") . " 2";
         //"Tiefe 4";
         $KapitelStatsWert[$slider3] = round($KapitelTiefe4Anzahl);
         $slider3++;
         $KapitelStatsName[$slider3] = $lng->txt("stats_depth") . " 3+";
         //"Tiefe 5+";
         $KapitelStatsWert[$slider3] = round($KapitelTiefe5Anzahl);
         $slider3++;
         $slider3 += $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_longest_total_dwell_time_depth") . " 0:" . "</b>";
         //"<b>LaengsteGesamtVerweildauer Tiefe 2:</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe2Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID2[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax2[$i]);
         }
         $slider3 += $i + $hop + 1;
         //$slider3 += $RankAnzahl + $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_most_access_depth") . " 0:" . "</b>";
         //"<b>Meisten Zugriffe Tiefe 2</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe2Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID2[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = round($KapitelZugriffMax2[$i]) . " " . $lng->txt("stats_accesses");
             //." Zugriffe";
         }
         $slider3 += $i + $hop + 1;
         //$slider3 += $RankAnzahl + $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_longest_total_dwell_time_depth") . " 1:" . "</b>";
         //"<b>LaengsteGesamtVerweildauer Tiefe 3:</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe3Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID3[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax3[$i]);
         }
         //$slider3 += $RankAnzahl + $hop;
         $slider3 += $i + $hop + 1;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_most_access_depth") . " 1:" . "</b>";
         //"<b>Meisten Zugriffe Tiefe 3</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe3Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID3[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = round($KapitelZugriffMax3[$i]) . " " . $lng->txt("stats_accesses");
             //." Zugriffe";
         }
         $slider3 += $i + $hop + 1;
         //$slider3 += $RankAnzahl + $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_longest_total_dwell_time_depth") . " 2:" . "</b>";
         //"<b>LaengsteGesamtVerweildauer Tiefe 4:</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe4Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID4[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax4[$i]);
         }
         $slider3 += $i + $hop + 1;
         //$slider3 += $RankAnzahl + $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_most_access_depth") . " 2:" . "</b>";
         //"<b>Meisten Zugriffe Tiefe 4</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe4Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID4[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = round($KapitelZugriffMax4[$i]) . " " . $lng->txt("stats_accesses");
             //." Zugriffe";
         }
         $slider3 += $i + $hop + 1;
         //$slider3 += $RankAnzahl + $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_longest_total_dwell_time_depth") . " 3+:" . "</b>";
         //"<b>LaengsteGesamtVerweildauer Tiefe 5+:</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe5Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID5[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax5[$i]);
         }
         $slider3 += $i + $hop + 1;
         //$slider3 += $RankAnzahl + $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_most_access_depth") . " 3+:" . "</b>";
         //"<b>Meisten Zugriffe Tiefe 5+</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < min($KapitelTiefe5Anzahl, $RankAnzahl); $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID5[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = round($KapitelZugriffMax5[$i]) . " " . $lng->txt("stats_accesses");
             //." Zugriffe";
         }
         //$slider3 += $RankAnzahl + $hop;
         $slider3 += $i + $hop + 1;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_stubbiest_total_dwell_time") . ":" . "</b>";
         //"<b>kuerzeste GesamtVerweildauer:</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMinID[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMin[$i]);
         }
         $slider3 += $RankAnzahl + $hop;
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_fewest_access") . ":" . "</b>";
         //"<b>wenigste Zugriffe:</b>";
         $KapitelStatsWert[$slider3] = "";
         for ($i = 0; $i < $RankAnzahl; $i++) {
             $KapitelStatsName[$i + 1 + $slider3] = $i + 1 . ". " . str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMinID[$i]], 0, $TNA));
             $KapitelStatsWert[$i + 1 + $slider3] = round($KapitelZugriffMin[$i]) . " " . $lng->txt("stats_accesses");
             //." Zugriffe";
         }
         $slider3 += $RankAnzahl + $hop;
         $slider3save = $slider3;
         //Abdeckungsgrade Tiefe2
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_depth_coverage") . " 0:" . "</b>";
         //"<b>Abdeckungsgrade Tiefe 2:</b>";
         $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses") . ">0";
         $KapitelStatsWertA2[$slider3] = ">" . floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor2);
         $KapitelStatsWertA3[$slider3] = ">" . floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor3);
         $KapitelStatsWertA4[$slider3] = ">" . floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor4);
         $KapitelStatsWertA5[$slider3] = ">" . floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor5);
         $u = 0;
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($seitenTiefe[$KapitelID[$i]] == 2) {
                 if ($KapitelSeitenSumme[$i] > 0) {
                     $u++;
                     $KapitelStatsName[$u + 1 + $slider3] = $u . ". " . str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA)) . " (" . $KapitelSeitenSumme[$i] . " " . $lng->txt("stats_pages") . ")";
                     $KapitelStatsWertA1[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]) . ")";
                     $KapitelStatsWertA2[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]) . ")";
                     $KapitelStatsWertA3[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]) . ")";
                     $KapitelStatsWertA4[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]) . ")";
                     $KapitelStatsWertA5[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]) . ")";
                 }
             }
         }
         $slider3 += $u + $hop + 2;
         //Abdeckungsgrade Tiefe3
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_depth_coverage") . " 1:" . "</b>";
         //"<b>Abdeckungsgrade Tiefe 3:</b>";
         $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses") . ">0";
         $KapitelStatsWertA2[$slider3] = ">" . floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor2);
         $KapitelStatsWertA3[$slider3] = ">" . floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor3);
         $KapitelStatsWertA4[$slider3] = ">" . floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor4);
         $KapitelStatsWertA5[$slider3] = ">" . floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor5);
         $u = 0;
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($seitenTiefe[$KapitelID[$i]] == 3) {
                 if ($KapitelSeitenSumme[$i] > 0) {
                     $u++;
                     $KapitelStatsName[$u + 1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA)) . " (" . $KapitelSeitenSumme[$i] . " " . $lng->txt("stats_pages") . ")";
                     $KapitelStatsWertA1[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]) . ")";
                     $KapitelStatsWertA2[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]) . ")";
                     $KapitelStatsWertA3[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]) . ")";
                     $KapitelStatsWertA4[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]) . ")";
                     $KapitelStatsWertA5[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]) . ")";
                 }
             }
         }
         $slider3 += $u + $hop + 2;
         //Abdeckungsgrade Tiefe4
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_depth_coverage") . " 2:" . "</b>";
         //"<b>Abdeckungsgrade Tiefe 4:</b>";
         $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses") . ">0";
         $KapitelStatsWertA2[$slider3] = ">" . floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor2);
         $KapitelStatsWertA3[$slider3] = ">" . floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor3);
         $KapitelStatsWertA4[$slider3] = ">" . floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor4);
         $KapitelStatsWertA5[$slider3] = ">" . floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor5);
         $u = 0;
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($seitenTiefe[$KapitelID[$i]] == 4) {
                 if ($KapitelSeitenSumme[$i] > 0) {
                     $u++;
                     $KapitelStatsName[$u + 1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA)) . " (" . $KapitelSeitenSumme[$i] . " " . $lng->txt("stats_pages") . ")";
                     $KapitelStatsWertA1[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]) . ")";
                     $KapitelStatsWertA2[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]) . ")";
                     $KapitelStatsWertA3[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]) . ")";
                     $KapitelStatsWertA4[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]) . ")";
                     $KapitelStatsWertA5[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]) . ")";
                 }
             }
         }
         $slider3 += $u + $hop + 2;
         //Abdeckungsgrade Tiefe5
         $KapitelStatsName[$slider3] = "<b>" . $lng->txt("stats_chapter_depth_coverage") . " 3+:" . "</b>";
         //"<b>Abdeckungsgrade Tiefe 5+:</b>";
         $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses") . ">0";
         $KapitelStatsWertA2[$slider3] = ">" . floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor2);
         $KapitelStatsWertA3[$slider3] = ">" . floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor3);
         $KapitelStatsWertA4[$slider3] = ">" . floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor4);
         $KapitelStatsWertA5[$slider3] = ">" . floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor5);
         $u = 0;
         for ($i = 1; $i <= $Kapitelanz; $i++) {
             if ($seitenTiefe[$KapitelID[$i]] == 5) {
                 if ($KapitelSeitenSumme[$i] > 0) {
                     $u++;
                     $KapitelStatsName[$u + 1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA)) . " (" . $KapitelSeitenSumme[$i] . " " . $lng->txt("stats_pages") . ")";
                     //." Seiten)";//$KapitelZugriffe[$i];
                     $KapitelStatsWertA1[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]) . ")";
                     $KapitelStatsWertA2[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]) . ")";
                     $KapitelStatsWertA3[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]) . ")";
                     $KapitelStatsWertA4[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]) . ")";
                     $KapitelStatsWertA5[$u + 1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i])) . "%(" . ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]) . ")";
                 }
             }
         }
         $slider3 += $u + $hop + 2;
         //AUSGABE BEOBACHTUNGSMODELL
         if ($_POST["stat"] == 'u') {
             //Daten f�r das Applet zusammenstellen
             $delim1 = " ";
             for ($i = 1; $i <= $Seitenanz; $i++) {
                 $KapitelZuSeite2 = $KapitelZuSeite2 . (-1 + $rKapitelID[$vatizumkind[$SeitenID[$i]]]) . $delim1;
             }
             for ($i = 1; $i <= $Seitenanz; $i++) {
                 for ($j = 1; $j <= $Seitenanz; $j++) {
                     $SessionVonNach2 = $SessionVonNach2 . (0 + $SessionVonNach[$i][$j]) . $delim1;
                 }
             }
             for ($i = 1; $i <= $Kapitelanz; $i++) {
                 for ($j = 1; $j <= $Kapitelanz; $j++) {
                     $KapitelVonNach2 = $KapitelVonNach2 . (0 + $KapitelVonNach[$i][$j]) . $delim1;
                 }
             }
             for ($i = 1; $i <= $Kapitelanz; $i++) {
                 $OberkapitelZuKapitel2 = $OberkapitelZuKapitel2 . (-1 + $rKapitelID[$vatizumkind[$KapitelID[$i]]]) . $delim1;
             }
             $delim2 = "  sName ";
             for ($i = 1; $i <= $Seitenanz; $i++) {
                 $Seitenname2 = $Seitenname2 . $SeitenName[$i] . $delim2;
             }
             $delim3 = " kName ";
             for ($i = 1; $i <= $Kapitelanz; $i++) {
                 $Kapitelname2 = $Kapitelname2 . $KapitelName[$i] . $delim3;
             }
             //Ende der Variablen
         } else {
             //SCHREIBE die SEITEN,SESSION oder KAPITELSTATS in Tabelle
             include_once "./Services/Table/classes/class.ilTableGUI.php";
             //				$tbl = new ilTableGUI();
             $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.lm_statistics_result.html", "Services/Tracking");
             $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
             $tpl->addBlockfile("TRACK_TABLE", "track_table", "tpl.table.html");
             $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
             if ($_POST["stat"] == 'd') {
                 $title_new = array("time", "", "", "", "", "");
             } else {
                 $title_new = array("time", "count");
             }
             $tbl = new ilTableGUI();
             $tbl->setTitle($lng->txt("obj_trac"), 0);
             foreach ($title_new as $val) {
                 $header_names[] = $lng->txt($val);
             }
             $tbl->disable("sort");
             $tbl->setHeaderNames($header_names);
             if ($_POST["stat"] == 'h') {
                 //SeitenSTATS
                 $num = $slider + 1;
                 //$tbl->setMaxCount($num);
             } else {
                 if ($_POST["stat"] == 'd') {
                     //KapitelSTATS
                     $num = $slider3save + $slider3 + 1;
                     //$tbl->setMaxCount($num);
                 } else {
                     if ($_POST["stat"] == 'o') {
                         //SessionSTATS
                         $num = $slider2 + 1;
                         //$tbl->setMaxCount($num);
                     } else {
                         //BeobModell
                         $num = 24;
                         //$tbl->setMaxCount($num);
                     }
                 }
             }
             $tbl->setStyle("table", "std");
             $tbl->render();
             if ($_POST["stat"] == 'h') {
                 //SeitenSTATS
                 for ($i = 0; $i < $num; $i++) {
                     //Soviele Zeilen ausgeben
                     $data[0] = $SeitenStatsName[$i];
                     //String in 1. Spalte
                     $data[1] = $SeitenStatsWert[$i];
                     // Werte der 2. Spalte
                     $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
                     //Tabelle erstellen
                     foreach ($data as $key => $val) {
                         //Werte eintragen
                         $tpl->setCurrentBlock("text");
                         $tpl->setVariable("TEXT_CONTENT", $val);
                         //Werte der Zelle setzen
                         $tpl->parseCurrentBlock();
                         $tpl->setCurrentBlock("table_cell");
                         //<td class="std" valign="top"> </td>
                         $tpl->parseCurrentBlock();
                     }
                     $tpl->setCurrentBlock("tbl_content");
                     //<tr class="{CSS_ROW}"></tr>
                     $tpl->setVariable("CSS_ROW", $css_row);
                     $tpl->parseCurrentBlock();
                 }
                 $tpl->parseCurrentBlock();
             } else {
                 if ($_POST["stat"] == 'd') {
                     //KapitelSTATS
                     for ($i = 1; $i < $slider3save; $i++) {
                         //Soviele Zeilen ausgeben
                         $data[0] = $KapitelStatsName[$i];
                         //String in 1. Spalte
                         $data[1] = $KapitelStatsWert[$i];
                         // Werte der 2. Spalte
                         $data[2] = "";
                         $data[3] = "";
                         $data[4] = "";
                         $data[5] = "";
                         $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
                         //Tabelle erstellen
                         foreach ($data as $key => $val) {
                             //Werte eintragen
                             $tpl->setCurrentBlock("text");
                             $tpl->setVariable("TEXT_CONTENT", $val);
                             $tpl->parseCurrentBlock();
                             $tpl->setCurrentBlock("table_cell");
                             $tpl->parseCurrentBlock();
                         }
                         $tpl->setCurrentBlock("tbl_content");
                         $tpl->setVariable("CSS_ROW", $css_row);
                         $tpl->parseCurrentBlock();
                     }
                     //Abdeckungsgrade ausgeben
                     for ($i = $slider3save; $i < $slider3; $i++) {
                         //Soviele Zeilen ausgeben
                         $data[0] = $KapitelStatsName[$i];
                         //String in 1. Spalte
                         $data[1] = $KapitelStatsWertA1[$i];
                         // Werte der 2. Spalte
                         $data[2] = $KapitelStatsWertA2[$i];
                         $data[3] = $KapitelStatsWertA3[$i];
                         $data[4] = $KapitelStatsWertA4[$i];
                         $data[5] = $KapitelStatsWertA5[$i];
                         $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
                         //Tabelle erstellen
                         foreach ($data as $key => $val) {
                             //Werte eintragen
                             $tpl->setCurrentBlock("text");
                             $tpl->setVariable("TEXT_CONTENT", $val);
                             $tpl->parseCurrentBlock();
                             $tpl->setCurrentBlock("table_cell");
                             $tpl->parseCurrentBlock();
                         }
                         $tpl->setCurrentBlock("tbl_content");
                         $tpl->setVariable("CSS_ROW", $css_row);
                         $tpl->parseCurrentBlock();
                     }
                     $tpl->parseCurrentBlock();
                 } else {
                     if ($_POST["stat"] == 'o') {
                         //SessionSTATS
                         for ($i = 0; $i < $num; $i++) {
                             //Soviele Zeilen ausgeben
                             $data[0] = $SessionStatsName[$i];
                             //String in 1. Spalte
                             $data[1] = $SessionStatsWert[$i];
                             // Werte der 2. Spalte
                             $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
                             //Tabelle erstellen
                             foreach ($data as $key => $val) {
                                 //Werte eintragen
                                 $tpl->setCurrentBlock("text");
                                 $tpl->setVariable("TEXT_CONTENT", $val);
                                 $tpl->parseCurrentBlock();
                                 $tpl->setCurrentBlock("table_cell");
                                 $tpl->parseCurrentBlock();
                             }
                             $tpl->setCurrentBlock("tbl_content");
                             $tpl->setVariable("CSS_ROW", $css_row);
                             $tpl->parseCurrentBlock();
                         }
                         $tpl->parseCurrentBlock();
                     }
                 }
             }
             $tpl->setCurrentBlock("adm_content");
             $tpl->setVariable("TXT_TIME_PERIOD", $lng->txt("time_segment"));
             switch ($_POST["stat"]) {
                 case "h":
                     $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_pages_statisics"));
                     $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
                     $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='" . MODULE_URL . "/docs/pagestats_help.html' target='_blank'>" . "Link" . "</a>");
                     break;
                 case "u":
                     $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_navigation"));
                     break;
                 case "d":
                     $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_chapter_statisics"));
                     $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
                     $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='" . MODULE_URL . "/docs/chapterstats_help.html' target='_blank'>" . "Link" . "</a>");
                     break;
                 case "o":
                     $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_sessions_statisics"));
                     $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
                     $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='" . MODULE_URL . "/docs/sessionstats_help.html' target='_blank'>" . "Link" . "</a>");
                     break;
             }
             $tpl->setVariable("VAL_DATEF", date("Y-m-d", mktime(0, 0, 0, $monthf, $dayf, $yearf)));
             $tpl->setVariable("TXT_TO", $lng->txt("to"));
             $tpl->setVariable("VAL_DATET", date("Y-m-d", mktime(0, 0, 0, $montht, $dayt, $yeart)));
             $tpl->setVariable("TXT_USER_LANGUAGE", $lng->txt("user_language"));
             if ($_POST["language"] == "0") {
                 $tpl->setVariable("VAL_LANGUAGE", $lng->txt("any_language"));
             } else {
                 $lng->loadLanguageModule("meta");
                 $tpl->setVariable("VAL_LANGUAGE", $lng->txt("meta_l_" . $_POST["language"]));
             }
             $rLehrmodulID = $_SESSION["il_track_rlm_id"];
             $LehrmodulName = $_SESSION["il_track_lm_name"];
             $tpl->setVariable("TXT_TRACKED_OBJECTS", $lng->txt("tracked_objects"));
             $tpl->setVariable("VAL_TRACKED_OBJECTS", $LehrmodulName[$rLehrmodulID[$_POST["lmID"]]]);
             $tpl->setVariable("LEGENDE", $lng->txt("stats_legend"));
             $tpl->setVariable("VAL_LEGENDE_MZ", $lng->txt("stats_measurable_hits"));
             $tpl->setVariable("VAL_LEGENDE_Z", $lng->txt("stats_hits"));
             $tpl->setVariable("LEGENDE_MZ", "mz");
             $tpl->setVariable("LEGENDE_Z", "z");
             $tpl->parseCurrentBlock();
         }
         //ENDE von AUSGABE
         $this->Seitenanz = $Seitenanz;
         $this->KapitelZuSeite2 = $KapitelZuSeite2;
         $this->SessionVonNach2 = $SessionVonNach2;
         $this->Kapitelanz = $Kapitelanz;
         $this->KapitelVonNach2 = $KapitelVonNach2;
         $this->OberkapitelZuKapitel2 = $OberkapitelZuKapitel2;
         $this->Seitenname2 = $Seitenname2;
         $this->Kapitelname2 = $Kapitelname2;
     }
     //Ende if
 }