/** * Constructor */ function __construct($a_parent_obj, $a_parent_cmd, $a_ref_id, $a_print_mode = false) { global $ilCtrl, $lng, $ilAccess, $lng; $this->setId("trsmy"); $this->ref_id = $a_ref_id; $this->obj_id = ilObject::_lookupObjId($a_ref_id); parent::__construct($a_parent_obj, $a_parent_cmd); if ($a_print_mode) { $this->setPrintMode(true); } $this->parseTitle($this->obj_id, "trac_summary"); $this->setLimit(9999); $this->setShowTemplates(true); $this->setExportFormats(array(self::EXPORT_CSV, self::EXPORT_EXCEL)); $this->addColumn($this->lng->txt("title"), "title"); $this->setDefaultOrderField("title"); $labels = $this->getSelectableColumns(); foreach ($this->getSelectedColumns() as $c) { $this->addColumn($labels[$c]["txt"], $c); } if ($this->ref_id == ROOT_FOLDER_ID) { $this->addColumn($this->lng->txt("path")); $this->addColumn($this->lng->txt("action")); } $this->initFilter(); // $this->setExternalSorting(true); $this->setEnableHeader(true); $this->setFormAction($ilCtrl->getFormActionByClass(get_class($this))); $this->setRowTemplate("tpl.trac_summary_row.html", "Services/Tracking"); $this->getItems($a_parent_obj->getObjId(), $a_ref_id); $this->anonymized = (bool) (!ilObjUserTracking::_enabledUserRelatedData()); }
public function __construct($a_parent_obj, $a_parent_cmd = "", $a_template_context = "") { parent::__construct($a_parent_obj, $a_parent_cmd, $a_template_context); // country names $this->lng->loadLanguageModule("meta"); include_once "./Services/Object/classes/class.ilObjectLP.php"; $this->anonymized = (bool) (!ilObjUserTracking::_enabledUserRelatedData()); if (!$this->anonymized && $this->obj_id) { include_once "Services/Object/classes/class.ilObjectLP.php"; $olp = ilObjectLP::getInstance($this->obj_id); $this->anonymized = $olp->isAnonymized(); } }
/** Anzeige der Stats-Auswahlm�glichkeiten */ function show() { global $tpl, $lng, $ilias, $ilDB; $q = "SELECT obj_id, type,title FROM object_data WHERE type ='lm' and obj_id=" . $ilDB->quote($this->obj_id, 'integer'); $result = $ilias->db->query($q); while ($row = $result->fetchRow()) { $Lehrmodulanz++; $LehrmodulID[$Lehrmodulanz] = $row[0]; $rLehrmodulID[$row[0]] = $Lehrmodulanz; $LehrmodulName[$Lehrmodulanz] = $row[2]; } $_SESSION["il_track_rlm_id"] = $rLehrmodulID; $_SESSION["il_track_lm_name"] = $LehrmodulName; $q = "SELECT obj_id,title,type,lm_id FROM lm_data WHERE type='pg'"; $result = $ilias->db->query($q); while ($row = $result->fetchRow()) { $LMSeitenanz[$rLehrmodulID[$row[3]]]++; } $year = range(2004, date("Y")); $month = range(1, 12); $day = range(1, 31); $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.lm_statistics_settings.html", "Services/Tracking"); // $tpl->setVariable("SEARCH_ACTION", ".php?ref_id=".$_GET["ref_id"]."&cmd=gateway"); $tpl->setVariable("SEARCH_ACTION", $this->ctrl->getLinkTargetByClass('illmstatisticsgui', '')); $tpl->setVariable("TXT_TRACKING_DATA", $lng->txt("tracking_data")); $tpl->setVariable("TXT_TIME_SEGMENT", $lng->txt("time_segment")); $tpl->setVariable("TXT_STATISTIC", $lng->txt("statistic")); $tpl->setVariable("TXT_STATISTIC_H", $lng->txt("stats_pages_statisics")); $tpl->setVariable("TXT_STATISTIC_D", $lng->txt("stats_chapter_statisics")); $tpl->setVariable("TXT_STATISTIC_O", $lng->txt("stats_sessions_statisics")); $tpl->setVariable("TXT_STATISTIC_U", $lng->txt("stats_navigation")); $tpl->setVariable("TXT_USER_LANGUAGE", $lng->txt("user_language")); $tpl->setVariable("TXT_LM", $lng->txt("lm")); $tpl->setVariable("TXT_SHOW_TR_DATA", $lng->txt("query_data")); $tpl->setVariable("TXT_SHOW_TR_DATA2", $lng->txt("stats_new_selection")); $tpl->setVariable("TXT_TRACKED_OBJECTS", $lng->txt("tracked_objects")); $tpl->setVariable("TXT_TRACKED_USER", $lng->txt("stats_tracked_user")); $tpl->setVariable("TXT_ALLE", $lng->txt("stats_all")); $tpl->setVariable("TXT_AUSWAHL", $lng->txt("stats_choice")); if ($_SESSION["il_track_yearf"] == "") { $_SESSION["il_track_yearf"] = Date("Y"); $_SESSION["il_track_yeart"] = Date("Y"); $_SESSION["il_track_monthf"] = "1"; $_SESSION["il_track_montht"] = Date("n"); $_SESSION["il_track_dayf"] = "1"; $_SESSION["il_track_dayt"] = Date("j"); } if ($_SESSION["il_track_stat"] == "") { $_SESSION["il_track_stat"] = 'h'; } $languages = $lng->getInstalledLanguages(); $tpl->setCurrentBlock("lm_selection"); $_SESSION["il_track_lm"] = $this->obj_id; $tpl->setVariable("LM_ID", $LehrmodulID[1]); $tpl->setVariable("LM_DESC", substr($LehrmodulName[1], 0, 40) . " (S:" . $LMSeitenanz[1] . ")"); $tpl->parseCurrentBlock(); if ($_SESSION["il_track_stat2"] == "choice") { $tpl->setVariable("CHC_CHK", " checked=\"1\" "); } else { $tpl->setVariable("ALL_CHK", " checked=\"1\" "); } $user_IDs = $_SESSION["userSelected_stat"]; $tpl->setCurrentBlock("user_selection"); if (count($user_IDs) > 0) { foreach ($_SESSION["userSelected_stat"] as $result_id) { $tpl->setVariable("USER1", $result_id); $tpl->setVariable("USER2", $result_id); } } else { $tpl->setCurrentBlock("user_selection"); $tpl->setVariable("USER1", "Alle"); $tpl->setVariable("USER2", "Alle"); } include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; if (!ilObjUserTracking::_enabledUserRelatedData()) { $tpl->setVariable("DISABLED", "disabled"); $tpl->setVariable("ALL_CHK", " checked=\"1\" "); $tpl->setVariable("CHC_CHK", ""); } else { $tpl->setVariable("INFO1", $lng->txt(stats_current) . ": " . count($_SESSION["userSelected_stat"]) . " " . $lng->txt("stats_user_selected")); } $tpl->parseCurrentBlock(); //Datum von: foreach ($year as $key) { $tpl->setCurrentBlock("fromyear_selection"); $tpl->setVariable("YEARFR", $key); $tpl->setVariable("YEARF", $key); if ($_SESSION["il_track_yearf"] == $key) { $tpl->setVariable("YEARF_SEL", " selected=\"1\" "); } $tpl->parseCurrentBlock(); } foreach ($month as $key) { $tpl->setCurrentBlock("frommonth_selection"); $tpl->setVariable("MONTHFR", $key); $tpl->setVariable("MONTHF", $key); if ($_SESSION["il_track_monthf"] == $key) { $tpl->setVariable("MONTHF_SEL", " selected=\"1\" "); } $tpl->parseCurrentBlock(); } foreach ($day as $key) { $tpl->setCurrentBlock("fromday_selection"); $tpl->setVariable("DAYFR", $key); $tpl->setVariable("DAYF", $key); if ($_SESSION["il_track_dayf"] == $key) { $tpl->setVariable("DAYF_SEL", " selected=\"1\" "); } $tpl->parseCurrentBlock(); } //Datum nach: foreach ($day as $key) { $tpl->setCurrentBlock("today_selection"); $tpl->setVariable("DAYTO", $key); $tpl->setVariable("DAYT", $key); if ($_SESSION["il_track_dayt"] == $key) { $tpl->setVariable("DAYT_SEL", " selected=\"1\" "); } $tpl->parseCurrentBlock(); } foreach ($month as $key) { $tpl->setCurrentBlock("tomonth_selection"); $tpl->setVariable("MONTHTO", $key); $tpl->setVariable("MONTHT", $key); if ($_SESSION["il_track_montht"] == $key) { $tpl->setVariable("MONTHT_SEL", " selected=\"1\" "); } $tpl->parseCurrentBlock(); } foreach ($year as $key) { $tpl->setCurrentBlock("toyear_selection"); $tpl->setVariable("YEARTO", $key); $tpl->setVariable("YEART", $key); if ($_SESSION["il_track_yeart"] == $key) { $tpl->setVariable("YEART_SEL", " selected=\"1\" "); } $tpl->parseCurrentBlock(); } // language selection $tpl->setCurrentBlock("language_selection"); $tpl->setVariable("LANG", $lng->txt("any_language")); $tpl->setVariable("LANGSHORT", "0"); $tpl->parseCurrentBlock(); $lng->loadLanguageModule("meta"); foreach ($languages as $lang_key) { $tpl->setCurrentBlock("language_selection"); $tpl->setVariable("LANG", $lng->txt("meta_l_" . $lang_key)); $tpl->setVariable("LANGSHORT", $lang_key); if ($_SESSION["il_track_language"] == $lang_key) { $tpl->setVariable("LANG_SEL", " selected=\"1\" "); } $tpl->parseCurrentBlock(); } // statistic type if ($_SESSION["il_track_stat"] == "d") { $tpl->setVariable("D_CHK", " checked=\"1\" "); } elseif ($_SESSION["il_track_stat"] == "h") { $tpl->setVariable("H_CHK", " checked=\"1\" "); } elseif ($_SESSION["il_track_stat"] == "o") { $tpl->setVariable("O_CHK", " checked=\"1\" "); } elseif ($_SESSION["il_track_stat"] == "u") { $tpl->setVariable("U_CHK", " checked=\"1\" "); } }
function __setSubTabs($a_active) { global $rbacsystem, $ilObjDataCache; switch ($this->getMode()) { case self::LP_CONTEXT_PERSONAL_DESKTOP: include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; if (ilObjUserTracking::_hasLearningProgressLearner() && ilObjUserTracking::_enabledUserRelatedData()) { $this->tabs_gui->addTarget('trac_progress', $this->ctrl->getLinkTargetByClass('illplistofprogressgui', ''), "", "", "", $a_active == self::LP_ACTIVE_PROGRESS); } if (ilObjUserTracking::_hasLearningProgressOtherUsers()) { $this->tabs_gui->addTarget('trac_objects', $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", ''), "", "", "", $a_active == self::LP_ACTIVE_OBJECTS); } break; case self::LP_CONTEXT_REPOSITORY: // #12771 - do not show status if learning progress is deactivated include_once './Services/Object/classes/class.ilObjectLP.php'; $olp = ilObjectLP::getInstance($this->obj_id); if ($olp->isActive()) { $has_read = $rbacsystem->checkAccess('read_learning_progress', $this->getRefId()); if ($this->isAnonymized() || !$has_read) { $this->ctrl->setParameterByClass('illplistofprogressgui', 'user_id', $this->getUserId()); $this->tabs_gui->addSubTabTarget('trac_progress', $this->ctrl->getLinkTargetByClass('illplistofprogressgui', ''), "", "", "", $a_active == self::LP_ACTIVE_PROGRESS); } else { // Check if it is a course $sub_tab = $ilObjDataCache->lookupType($ilObjDataCache->lookupObjId($this->getRefId())) == 'crs' ? 'trac_crs_objects' : 'trac_objects'; $this->tabs_gui->addSubTabTarget($sub_tab, $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", ''), "", "", "", $a_active == self::LP_ACTIVE_OBJECTS); } if ($has_read) { if (!$this->isAnonymized() && !in_array($this->obj_type, array('tst', 'htlm', 'exc', 'sess')) && !$olp instanceof ilPluginLP) { $this->tabs_gui->addSubTabTarget("trac_matrix", $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", 'showUserObjectMatrix'), "", "", "", $a_active == self::LP_ACTIVE_MATRIX); } $this->tabs_gui->addSubTabTarget("trac_summary", $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", 'showObjectSummary'), "", "", "", $a_active == self::LP_ACTIVE_SUMMARY); } } if (!$olp instanceof ilPluginLP && $rbacsystem->checkAccess('edit_learning_progress', $this->getRefId())) { $this->tabs_gui->addSubTabTarget('trac_settings', $this->ctrl->getLinkTargetByClass('illplistofsettingsgui', ''), "", "", "", $a_active == self::LP_ACTIVE_SETTINGS); } break; case self::LP_CONTEXT_ADMINISTRATION: /* $this->tabs_gui->addSubTabTarget('trac_progress', $this->ctrl->getLinkTargetByClass('illplistofprogressgui',''), "","","",$a_active == self::LP_ACTIVE_PROGRESS); */ $this->tabs_gui->addSubTabTarget('trac_objects', $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", ''), "", "", "", $a_active == self::LP_ACTIVE_OBJECTS); break; case self::LP_CONTEXT_USER_FOLDER: case self::LP_CONTEXT_ORG_UNIT: // No tabs default class is lpprogressgui break; default: die('No valid mode given'); break; } return true; }
function __setSubTabs($a_active) { global $rbacsystem, $ilObjDataCache, $lng, $ilUser; switch ($this->getMode()) { case LP_MODE_PERSONAL_DESKTOP: include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; if (ilObjUserTracking::_hasLearningProgressLearner() && ilObjUserTracking::_enabledUserRelatedData()) { $this->tabs_gui->addTarget('trac_progress', $this->ctrl->getLinkTargetByClass('illplistofprogressgui', ''), "", "", "", $a_active == LP_ACTIVE_PROGRESS); } if (ilObjUserTracking::_hasLearningProgressOtherUsers()) { $this->tabs_gui->addTarget('trac_objects', $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", ''), "", "", "", $a_active == LP_ACTIVE_OBJECTS); } break; case LP_MODE_REPOSITORY: if ($rbacsystem->checkAccess('edit_learning_progress', $this->getRefId())) { if ($this->isAnonymized() || $this->isObjectAnonymized()) { $this->ctrl->setParameterByClass('illplistofprogressgui', 'user_id', $this->getUserId()); $this->tabs_gui->addSubTabTarget('trac_progress', $this->ctrl->getLinkTargetByClass('illplistofprogressgui', ''), "", "", "", $a_active == LP_ACTIVE_PROGRESS); } else { // Check if it is a course $sub_tab = $ilObjDataCache->lookupType($ilObjDataCache->lookupObjId($this->getRefId())) == 'crs' ? 'trac_crs_objects' : 'trac_objects'; $this->tabs_gui->addSubTabTarget($sub_tab, $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", ''), "", "", "", $a_active == LP_ACTIVE_OBJECTS); } if ($this->statistics_activated) { $this->tabs_gui->addSubTabTarget('trac_lm_statistics', $this->ctrl->getLinkTargetByClass('illmstatisticsgui', ''), "", "", "", $a_active == LP_ACTIVE_LM_STATISTICS); } if (!$this->isAnonymized() && !in_array($this->obj_type, array('tst', 'lm', 'htlm', 'exc'))) { // do not show status if learning progress is deactivated // matrix only consists of status... $mode = ilLPObjSettings::_lookupMode($this->obj_id); if ($mode != LP_MODE_DEACTIVATED && $mode != LP_MODE_LP_MODE_UNDEFINED) { $this->tabs_gui->addSubTabTarget("trac_matrix", $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", 'showUserObjectMatrix'), "", "", "", $a_active == LP_ACTIVE_MATRIX); } } $this->tabs_gui->addSubTabTarget("trac_summary", $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", 'showObjectSummary'), "", "", "", $a_active == LP_ACTIVE_SUMMARY); $this->tabs_gui->addSubTabTarget('trac_settings', $this->ctrl->getLinkTargetByClass('illplistofsettingsgui', ''), "", "", "", $a_active == LP_ACTIVE_SETTINGS); } break; case LP_MODE_ADMINISTRATION: /* $this->tabs_gui->addSubTabTarget('trac_progress', $this->ctrl->getLinkTargetByClass('illplistofprogressgui',''), "","","",$a_active == LP_ACTIVE_PROGRESS); */ $this->tabs_gui->addSubTabTarget('trac_objects', $this->ctrl->getLinkTargetByClass("illplistofobjectsgui", ''), "", "", "", $a_active == LP_ACTIVE_OBJECTS); break; case LP_MODE_USER_FOLDER: // No tabs default class is lpprogressgui break; default: die('No valid mode given'); break; } return true; }
protected function initAttendanceList() { include_once './Modules/Course/classes/class.ilCourseParticipants.php'; $members_obj = ilCourseParticipants::_getInstanceByObjId($this->object->getId()); include_once './Modules/Course/classes/class.ilCourseWaitingList.php'; $waiting_list = new ilCourseWaitingList($this->object->getId()); include_once 'Services/Membership/classes/class.ilAttendanceList.php'; $list = new ilAttendanceList($this, $members_obj, $waiting_list); $list->setId('crsmemlst'); $list->setTitle($this->lng->txt('crs_members_print_title'), $this->lng->txt('obj_crs') . ': ' . $this->object->getTitle()); include_once './Services/Tracking/classes/class.ilObjUserTracking.php'; $this->show_tracking = (ilObjUserTracking::_enabledLearningProgress() and ilObjUserTracking::_enabledUserRelatedData()); if ($this->show_tracking) { include_once './Services/Object/classes/class.ilObjectLP.php'; $olp = ilObjectLP::getInstance($this->object->getId()); $this->show_tracking = $olp->isActive(); } if ($this->show_tracking) { $list->addPreset('progress', $this->lng->txt('learning_progress'), true); } include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; $privacy = ilPrivacySettings::_getInstance(); if ($privacy->enabledCourseAccessTimes()) { $list->addPreset('access', $this->lng->txt('last_access'), true); } $list->addPreset('status', $this->lng->txt('crs_status'), true); $list->addPreset('passed', $this->lng->txt('crs_passed'), true); return $list; }
function __getNextClass() { global $ilAccess, $ilUser; // #9857 if (!ilObjUserTracking::_enabledLearningProgress()) { return; } if (strlen($next_class = $this->ctrl->getNextClass())) { if ($this->getMode() == self::LP_CONTEXT_PERSONAL_DESKTOP) { $_SESSION['il_lp_history'] = $next_class; } return $next_class; } switch ($this->getMode()) { case self::LP_CONTEXT_ADMINISTRATION: return 'illplistofobjectsgui'; case self::LP_CONTEXT_REPOSITORY: $cmd = $this->ctrl->getCmd(); if (in_array($cmd, array("editmanual", "updatemanual", "showtlt"))) { return ""; } // #12771 include_once './Services/Object/classes/class.ilObjectLP.php'; $olp = ilObjectLP::getInstance(ilObject::_lookupObjId($this->getRefId())); if (!$olp->isActive()) { if (!$olp instanceof ilPluginLP && $ilAccess->checkAccess('edit_learning_progress', '', $this->getRefId())) { return 'illplistofsettingsgui'; } else { return ''; } } if (!$this->anonymized && $ilAccess->checkAccess('read_learning_progress', '', $this->getRefId())) { return 'illplistofobjectsgui'; } if ($ilAccess->checkAccess('edit_learning_progress', '', $this->getRefId())) { return 'illplistofsettingsgui'; } return 'illplistofprogressgui'; case self::LP_CONTEXT_PERSONAL_DESKTOP: include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; $has_edit = ilObjUserTracking::_hasLearningProgressOtherUsers(); $has_personal = ilObjUserTracking::_hasLearningProgressLearner(); if ($has_edit || $has_personal) { // default (#10928) $tgt = null; if ($has_personal) { $tgt = 'illplistofprogressgui'; } else { if ($has_edit) { $tgt = 'illplistofobjectsgui'; } } // validate session switch ($_SESSION['il_lp_history']) { case 'illplistofobjectsgui': if (!$has_edit) { $_SESSION['il_lp_history'] = null; } break; case 'illplistofprogressgui': if (!$has_personal) { $_SESSION['il_lp_history'] = null; } break; } if ($_SESSION['il_lp_history']) { return $_SESSION['il_lp_history']; } else { if ($tgt) { return $tgt; } } } // should not happen ilUtil::redirect("ilias.php?baseClass=ilPersonalDesktopGUI"); case self::LP_CONTEXT_USER_FOLDER: case self::LP_CONTEXT_ORG_UNIT: if (ilObjUserTracking::_enabledUserRelatedData()) { return 'illplistofprogressgui'; } break; } }
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 }
/** * get tabs * @access public * @param object tabs gui object */ function getTabs(&$tabs_gui) { include_once 'Services/Tracking/classes/class.ilObjUserTracking.php'; global $rbacsystem; if ($rbacsystem->checkAccess("visible,read", $this->object->getRefId())) { $tabs_gui->addTarget("obj_usrf", $this->ctrl->getLinkTarget($this, "view"), array("view", "delete", "resetFilter", "userAction", ""), "", ""); $tabs_gui->addTarget("search_user_extended", $this->ctrl->getLinkTargetByClass('ilRepositorySearchGUI', ''), array(), "ilrepositorysearchgui", ""); } if ($rbacsystem->checkAccess("write", $this->object->getRefId())) { $tabs_gui->addTarget("settings", $this->ctrl->getLinkTarget($this, "generalSettings"), array('settings', 'generalSettings', 'listUserDefinedField', 'newAccountMail')); $tabs_gui->addTarget("export", $this->ctrl->getLinkTarget($this, "export"), "export", "", ""); if (ilObjUserTracking::_enabledLearningProgress() && ilObjUserTracking::_enabledUserRelatedData()) { $tabs_gui->addTarget("learning_progress", $this->ctrl->getLinkTarget($this, "learningProgress"), "learningProgress", "", ""); } } if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) { $tabs_gui->addTarget("perm_settings", $this->ctrl->getLinkTargetByClass(array(get_class($this), 'ilpermissiongui'), "perm"), array("perm", "info", "owner"), 'ilpermissiongui'); } }
/** * Init attendance list object * * @return ilAttendanceList */ protected function initAttendanceList() { include_once './Modules/Group/classes/class.ilGroupParticipants.php'; $members_obj = ilGroupParticipants::_getInstanceByObjId($this->object->getId()); include_once 'Services/Membership/classes/class.ilAttendanceList.php'; $list = new ilAttendanceList($this, $members_obj); $list->setId('grpmemlst'); $list->setTitle($this->lng->txt('grp_members_print_title'), $this->lng->txt('obj_grp') . ': ' . $this->object->getTitle()); include_once './Services/Tracking/classes/class.ilObjUserTracking.php'; include_once './Services/Tracking/classes/class.ilLPObjSettings.php'; $this->show_tracking = (ilObjUserTracking::_enabledLearningProgress() and ilObjUserTracking::_enabledUserRelatedData() and ilLPObjSettings::_lookupMode($this->object->getId()) != LP_MODE_DEACTIVATED); if ($this->show_tracking) { $this->lng->loadLanguageModule('trac'); $list->addPreset('progress', $this->lng->txt('learning_progress'), true); } include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; $privacy = ilPrivacySettings::_getInstance(); if ($privacy->enabledGroupAccessTimes()) { $list->addPreset('access', $this->lng->txt('last_access'), true); } return $list; }
/** * get tabs */ function getTabs(&$tabs_gui) { global $rbacsystem, $ilHelp; $tabs_gui->clearTargets(); $ilHelp->setScreenIdComponent("usr"); if ($_GET["search"]) { $tabs_gui->setBackTarget($this->lng->txt("search_results"), $_SESSION["usr_search_link"]); $tabs_gui->addTarget("properties", $this->ctrl->getLinkTarget($this, "edit"), array("edit", "", "view"), get_class($this), "", true); } else { $tabs_gui->addTarget("properties", $this->ctrl->getLinkTarget($this, "edit"), array("edit", "", "view"), get_class($this)); } $tabs_gui->addTarget("role_assignment", $this->ctrl->getLinkTarget($this, "roleassignment"), array("roleassignment"), get_class($this)); // learning progress include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; if ($rbacsystem->checkAccess('read', $this->ref_id) and ilObjUserTracking::_enabledLearningProgress() and ilObjUserTracking::_enabledUserRelatedData()) { $tabs_gui->addTarget('learning_progress', $this->ctrl->getLinkTargetByClass('illearningprogressgui', ''), '', array('illplistofobjectsgui', 'illplistofsettingsgui', 'illearningprogressgui', 'illplistofprogressgui')); } $tabs_gui->addTarget('user_ownership', $this->ctrl->getLinkTargetByClass('ilobjectownershipmanagementgui', ''), '', 'ilobjectownershipmanagementgui'); }
protected function getCoursesOfUser($a_user_id, $a_add_path = false) { global $tree; // see ilPDSelectedItemsBlockGUI include_once 'Modules/Course/classes/class.ilObjCourseAccess.php'; include_once 'Services/Membership/classes/class.ilParticipants.php'; $items = ilParticipants::_getMembershipByType($a_user_id, 'crs'); $repo_title = $tree->getNodeData(ROOT_FOLDER_ID); $repo_title = $repo_title["title"]; if ($repo_title == "ILIAS") { $repo_title = $this->lng->txt("repository"); } $references = $lp_obj_refs = array(); foreach ($items as $obj_id) { $ref_id = ilObject::_getAllReferences($obj_id); if (is_array($ref_id) && count($ref_id)) { $ref_id = array_pop($ref_id); if (!$tree->isDeleted($ref_id)) { $visible = false; $active = ilObjCourseAccess::_isActivated($obj_id, $visible, false); if ($active && $visible) { $references[$ref_id] = array('ref_id' => $ref_id, 'obj_id' => $obj_id, 'title' => ilObject::_lookupTitle($obj_id)); if ($a_add_path) { $path = array(); foreach ($tree->getPathFull($ref_id) as $item) { $path[] = $item["title"]; } // top level comes first if (sizeof($path) == 2) { $path[0] = 0; } else { $path[0] = 1; } $references[$ref_id]["path_sort"] = implode("__", $path); array_shift($path); array_pop($path); if (!sizeof($path)) { array_unshift($path, $repo_title); } $references[$ref_id]["path"] = implode(" › ", $path); } $lp_obj_refs[$obj_id] = $ref_id; } } } } // get lp data for valid courses if (sizeof($lp_obj_refs)) { // listing the objectives should NOT depend on any LP status / setting include_once 'Modules/Course/classes/class.ilObjCourse.php'; foreach ($lp_obj_refs as $obj_id => $ref_id) { // only if set in DB (default mode is not relevant if (ilObjCourse::_lookupViewMode($obj_id) == IL_CRS_VIEW_OBJECTIVE) { $references[$ref_id]["objectives"] = $this->parseObjectives($obj_id, $a_user_id); } } // LP must be active, personal and not anonymized include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; if (ilObjUserTracking::_enabledLearningProgress() && ilObjUserTracking::_enabledUserRelatedData() && ilObjUserTracking::_hasLearningProgressLearner()) { // see ilLPProgressTableGUI include_once "Services/Tracking/classes/class.ilTrQuery.php"; include_once "Services/Tracking/classes/class.ilLPStatusFactory.php"; $lp_data = ilTrQuery::getObjectsStatusForUser($a_user_id, $lp_obj_refs); foreach ($lp_data as $item) { $ref_id = $item["ref_ids"]; $references[$ref_id]["lp_status"] = $item["status"]; } } } return $references; }
function __getNextClass() { global $ilAccess, $ilUser; // #9857 if (!ilObjUserTracking::_enabledLearningProgress()) { return; } if (strlen($next_class = $this->ctrl->getNextClass())) { if ($this->getMode() == LP_MODE_PERSONAL_DESKTOP) { $_SESSION['il_lp_history'] = $next_class; } return $next_class; } switch ($this->getMode()) { case LP_MODE_ADMINISTRATION: return 'illplistofobjectsgui'; case LP_MODE_REPOSITORY: if (!$this->anonymized and !$this->isObjectAnonymized() and $ilAccess->checkAccess('edit_learning_progress', '', $this->getRefId())) { return 'illplistofobjectsgui'; } return 'illplistofprogressgui'; case LP_MODE_PERSONAL_DESKTOP: include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; $has_edit = ilObjUserTracking::_hasLearningProgressOtherUsers(); $has_personal = ilObjUserTracking::_hasLearningProgressLearner(); if ($has_edit || $has_personal) { // default $tgt = null; if ($has_edit) { $tgt = 'illplistofobjectsgui'; } else { if ($has_personal) { $tgt = 'illplistofprogressgui'; } } // validate session switch ($_SESSION['il_lp_history']) { case 'illplistofobjectsgui': if (!$has_edit) { $_SESSION['il_lp_history'] = null; } break; case 'illplistofprogressgui': if (!$has_personal) { $_SESSION['il_lp_history'] = null; } break; } if ($_SESSION['il_lp_history']) { return $_SESSION['il_lp_history']; } else { if ($tgt) { return $tgt; } } } // should not happen ilUtil::redirect("ilias.php?baseClass=ilPersonalDesktopGUI"); case LP_MODE_USER_FOLDER: if (ilObjUserTracking::_enabledUserRelatedData()) { return 'illplistofprogressgui'; } } }
function fillRow($set) { global $ilUser, $Access, $lng, $ilAccess; $this->tpl->setVariable("FIRST_NAME", $set["first_name"]); $this->tpl->setVariable("LAST_NAME", $set["last_name"]); if ($this->recursive) { $orgUnitsTitles = array_values(ilObjOrgUnitTree::_getInstance()->getTitles($set['org_units'])); $this->tpl->setVariable("ORG_UNITS", implode(', ', $orgUnitsTitles)); } $this->ctrl->setParameterByClass("illearningprogressgui", "obj_id", $set["user_id"]); $this->ctrl->setParameterByClass("ilobjorgunitgui", "obj_id", $set["user_id"]); $selection = new ilAdvancedSelectionListGUI(); $selection->setListTitle($lng->txt("Actions")); $selection->setId("selection_list_user_lp_" . $set["user_id"]); if ($ilAccess->checkAccess("view_learning_progress", "", $_GET["ref_id"]) and ilObjUserTracking::_enabledLearningProgress() and ilObjUserTracking::_enabledUserRelatedData()) { $selection->addItem($lng->txt("show_learning_progress"), "show_learning_progress", $this->ctrl->getLinkTargetByClass(array("ilAdministrationGUI", "ilObjOrgUnitGUI", "ilLearningProgressGUI"), "")); } if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]) && !$this->recursive) { if ($this->staff == "employee") { $this->addEmployeeActions($selection); } if ($this->staff == "superior") { $this->addSuperiorActions($selection); } } $this->tpl->setVariable("ACTIONS", $selection->getHTML()); }
protected function getCoursesOfUser($a_user_id) { global $tree; // see ilPDSelectedItemsBlockGUI include_once 'Modules/Course/classes/class.ilObjCourseAccess.php'; include_once 'Services/Membership/classes/class.ilParticipants.php'; $items = ilParticipants::_getMembershipByType($a_user_id, 'crs'); $references = $lp_obj_refs = array(); foreach ($items as $obj_id) { $ref_id = ilObject::_getAllReferences($obj_id); if (is_array($ref_id) && count($ref_id)) { $ref_id = array_pop($ref_id); if (!$tree->isDeleted($ref_id)) { $visible = false; $active = ilObjCourseAccess::_isActivated($obj_id, $visible, false); if ($active && $visible) { $references[$ref_id] = array('ref_id' => $ref_id, 'obj_id' => $obj_id, 'title' => ilObject::_lookupTitle($obj_id)); $lp_obj_refs[$obj_id] = $ref_id; } } } } // get lp data for valid courses if (sizeof($lp_obj_refs)) { // lp must be active, personal and not anonymized include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; if (ilObjUserTracking::_enabledLearningProgress() && ilObjUserTracking::_enabledUserRelatedData() && ilObjUserTracking::_hasLearningProgressLearner()) { // see ilLPProgressTableGUI include_once "Services/Tracking/classes/class.ilTrQuery.php"; include_once "Services/Tracking/classes/class.ilLPStatusFactory.php"; $lp_data = ilTrQuery::getObjectsStatusForUser($a_user_id, $lp_obj_refs); foreach ($lp_data as $item) { $ref_id = $item["ref_ids"]; $references[$ref_id]["lp_status"] = $item["status"]; // add objectives if ($item["u_mode"] == ilLPObjSettings::LP_MODE_OBJECTIVES) { // we need the collection for the correct order include_once "Services/Tracking/classes/collection/class.ilLPCollectionOfObjectives.php"; $coll_objtv = new ilLPCollectionOfObjectives($item["obj_id"], $item["u_mode"]); $coll_objtv = $coll_objtv->getItems(); if ($coll_objtv) { // #13373 $lo_results = $this->parseLOUserResults($item["obj_id"], $a_user_id); $tmp = array(); include_once "Modules/Course/classes/class.ilCourseObjective.php"; foreach ($coll_objtv as $objective_id) { $tmp[$objective_id] = array("id" => $objective_id, "title" => ilCourseObjective::lookupObjectiveTitle($objective_id)); if (array_key_exists($objective_id, $lo_results)) { $lo_result = $lo_results[$objective_id]; $tmp[$objective_id]["result_perc"] = $lo_result["result_perc"]; $tmp[$objective_id]["limit_perc"] = $lo_result["limit_perc"]; $tmp[$objective_id]["status"] = $lo_result["status"]; $tmp[$objective_id]["type"] = $lo_result["type"]; } } // order foreach ($coll_objtv as $objtv_id) { $references[$ref_id]["objectives"][] = $tmp[$objtv_id]; } } } } } } $references = ilUtil::sortArray($references, "title", "ASC"); return $references; }
function learningProgressObject() { global $rbacsystem, $tpl; // deprecated JF 27 May 2013 exit; if (!$rbacsystem->checkAccess("read", $this->object->getRefId()) || !ilObjUserTracking::_enabledLearningProgress() || !ilObjUserTracking::_enabledUserRelatedData()) { $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE); } include_once "Services/User/classes/class.ilUserLPTableGUI.php"; $tbl = new ilUserLPTableGUI($this, "learningProgress", $this->object->getRefId()); $tpl->setContent($tbl->getHTML()); }
/** * Set the sub tabs * * @param string main tab identifier */ function setSubTabs($a_tab) { global $ilUser, $ilTabs, $ilCtrl, $lng; switch ($a_tab) { case "edit": $ilTabs->addSubTab("settings", $lng->txt('settings'), $ilCtrl->getLinkTarget($this, 'edit')); $ilTabs->addSubTab("instructions", $this->txt('instructions'), $ilCtrl->getLinkTarget($this, 'editInstructions')); $ilTabs->addSubTab("icons", $this->txt('icons'), $ilCtrl->getLinkTarget($this, 'editIcons')); break; case "learning_progress": $lng->loadLanguageModule('trac'); if ($this->checkPermissionBool("edit_learning_progress")) { $ilTabs->addSubTab("lp_settings", $this->txt('settings'), $ilCtrl->getLinkTargetByClass(array('ilObjExternalContentGUI'), 'editLPSettings')); } if ($this->object->getLPMode() == ilObjExternalContent::LP_ACTIVE && $this->checkPermissionBool("read_learning_progress")) { include_once "Services/Tracking/classes/class.ilObjUserTracking.php"; if (ilObjUserTracking::_enabledUserRelatedData()) { $ilTabs->addSubTab("trac_objects", $lng->txt('trac_objects'), $ilCtrl->getLinkTargetByClass(array('ilObjExternalContentGUI', 'ilLearningProgressGUI', 'ilLPListOfObjectsGUI'))); } $ilTabs->addSubTab("trac_summary", $lng->txt('trac_summary'), $ilCtrl->getLinkTargetByClass(array('ilObjExternalContentGUI', 'ilLearningProgressGUI', 'ilLPListOfObjectsGUI'), 'showObjectSummary')); } break; } }