/** * Get selectable columns * * @param * @return */ function getSelectableColumns() { global $lng; // default fields $cols = array(); include_once 'Services/Tracking/classes/class.ilObjUserTracking.php'; $tracking = new ilObjUserTracking(); if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_LAST_ACCESS)) { $cols["first_access"] = array("txt" => $lng->txt("trac_first_access"), "default" => true); $cols["last_access"] = array("txt" => $lng->txt("trac_last_access"), "default" => true); } if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_READ_COUNT)) { $cols["read_count"] = array("txt" => $lng->txt("trac_read_count"), "default" => true); } if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_SPENT_SECONDS)) { $cols["spent_seconds"] = array("txt" => $lng->txt("trac_spent_seconds"), "default" => true); } $cols["percentage"] = array("txt" => $lng->txt("trac_percentage"), "default" => true); $cols["status"] = array("txt" => $lng->txt("trac_status"), "default" => true); $cols["mark"] = array("txt" => $lng->txt("trac_mark"), "default" => true); $cols["u_comment"] = array("txt" => $lng->txt("trac_comment"), "default" => false); return $cols; }
/** * Init filter */ function initFilter() { global $lng, $ilSetting; if ($this->is_root) { return parent::initFilter(true, false); } // show only if extended data was activated in lp settings include_once 'Services/Tracking/classes/class.ilObjUserTracking.php'; $tracking = new ilObjUserTracking(); $item = $this->addFilterItemByMetaType("user_total", ilTable2GUI::FILTER_NUMBER_RANGE, true, "∑ " . $lng->txt("users")); $this->filter["user_total"] = $item->getValue(); if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_READ_COUNT)) { $item = $this->addFilterItemByMetaType("read_count", ilTable2GUI::FILTER_NUMBER_RANGE, true, "∑ " . $lng->txt("trac_read_count")); $this->filter["read_count"] = $item->getValue(); } if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_SPENT_SECONDS)) { $item = $this->addFilterItemByMetaType("spent_seconds", ilTable2GUI::FILTER_DURATION_RANGE, true, "Ø " . $lng->txt("trac_spent_seconds") . " / " . $lng->txt("user")); $this->filter["spent_seconds"]["from"] = $item->getCombinationItem("from")->getValueInSeconds(); $this->filter["spent_seconds"]["to"] = $item->getCombinationItem("to")->getValueInSeconds(); } $item = $this->addFilterItemByMetaType("percentage", ilTable2GUI::FILTER_NUMBER_RANGE, true, "Ø " . $lng->txt("trac_percentage") . " / " . $lng->txt("user")); $this->filter["percentage"] = $item->getValue(); // do not show status if learning progress is deactivated if ($this->olp->isActive()) { include_once "Services/Tracking/classes/class.ilLPStatus.php"; $item = $this->addFilterItemByMetaType("status", ilTable2GUI::FILTER_SELECT, true); $item->setOptions(array("" => $lng->txt("trac_all"), ilLPStatus::LP_STATUS_NOT_ATTEMPTED_NUM + 1 => $lng->txt(ilLPStatus::LP_STATUS_NOT_ATTEMPTED), ilLPStatus::LP_STATUS_IN_PROGRESS_NUM + 1 => $lng->txt(ilLPStatus::LP_STATUS_IN_PROGRESS), ilLPStatus::LP_STATUS_COMPLETED_NUM + 1 => $lng->txt(ilLPStatus::LP_STATUS_COMPLETED), ilLPStatus::LP_STATUS_FAILED_NUM + 1 => $lng->txt(ilLPStatus::LP_STATUS_FAILED))); $this->filter["status"] = $item->getValue(); if ($this->filter["status"]) { $this->filter["status"]--; } $item = $this->addFilterItemByMetaType("trac_status_changed", ilTable2GUI::FILTER_DATE_RANGE, true); $this->filter["status_changed"] = $item->getDate(); } if (ilObject::_lookupType($this->obj_id) != "lm") { $item = $this->addFilterItemByMetaType("mark", ilTable2GUI::FILTER_TEXT, true, $lng->txt("trac_mark")); $this->filter["mark"] = $item->getValue(); } if ($ilSetting->get("usr_settings_course_export_gender")) { $item = $this->addFilterItemByMetaType("gender", ilTable2GUI::FILTER_SELECT, true); $item->setOptions(array("" => $lng->txt("trac_all"), "m" => $lng->txt("gender_m"), "f" => $lng->txt("gender_f"))); $this->filter["gender"] = $item->getValue(); } if ($ilSetting->get("usr_settings_course_export_city")) { $item = $this->addFilterItemByMetaType("city", ilTable2GUI::FILTER_TEXT, true); $this->filter["city"] = $item->getValue(); } if ($ilSetting->get("usr_settings_course_export_country")) { $item = $this->addFilterItemByMetaType("country", ilTable2GUI::FILTER_TEXT, true); $this->filter["country"] = $item->getValue(); } if ($ilSetting->get("usr_settings_course_export_sel_country")) { $item = $this->addFilterItemByMetaType("sel_country", ilTable2GUI::FILTER_SELECT, true); $item->setOptions(array("" => $lng->txt("trac_all")) + $this->getSelCountryCodes()); $this->filter["sel_country"] = $item->getValue(); } $item = $this->addFilterItemByMetaType("language", ilTable2GUI::FILTER_LANGUAGE, true); $this->filter["language"] = $item->getValue(); if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_LAST_ACCESS)) { $item = $this->addFilterItemByMetaType("trac_first_access", ilTable2GUI::FILTER_DATETIME_RANGE, true); $this->filter["first_access"] = $item->getDate(); $item = $this->addFilterItemByMetaType("trac_last_access", ilTable2GUI::FILTER_DATETIME_RANGE, true); $this->filter["last_access"] = $item->getDate(); } $item = $this->addFilterItemByMetaType("registration_filter", ilTable2GUI::FILTER_DATE_RANGE, true); $this->filter["registration"] = $item->getDate(); }
protected function getSelectableUserColumns($a_in_course = false, $a_in_group = false) { global $lng, $ilSetting; $cols = $privacy_fields = array(); include_once "./Services/User/classes/class.ilUserProfile.php"; $up = new ilUserProfile(); $up->skipGroup("preferences"); $up->skipGroup("settings"); $up->skipGroup("interests"); $ufs = $up->getStandardFields(); // default fields $cols["login"] = array("txt" => $lng->txt("login"), "default" => true); if (!$this->anonymized) { $cols["firstname"] = array("txt" => $lng->txt("firstname"), "default" => true); $cols["lastname"] = array("txt" => $lng->txt("lastname"), "default" => true); } // show only if extended data was activated in lp settings include_once 'Services/Tracking/classes/class.ilObjUserTracking.php'; $tracking = new ilObjUserTracking(); if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_LAST_ACCESS)) { $cols["first_access"] = array("txt" => $lng->txt("trac_first_access"), "default" => true); $cols["last_access"] = array("txt" => $lng->txt("trac_last_access"), "default" => true); } if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_READ_COUNT)) { $cols["read_count"] = array("txt" => $lng->txt("trac_read_count"), "default" => true); } if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_SPENT_SECONDS)) { $cols["spent_seconds"] = array("txt" => $lng->txt("trac_spent_seconds"), "default" => true); } if ($this->isPercentageAvailable($this->obj_id)) { $cols["percentage"] = array("txt" => $lng->txt("trac_percentage"), "default" => true); } // do not show status if learning progress is deactivated $olp = ilObjectLP::getInstance($this->obj_id); if ($olp->isActive()) { $cols["status"] = array("txt" => $lng->txt("trac_status"), "default" => true); $cols['status_changed'] = array('txt' => $lng->txt('trac_status_changed'), 'default' => false); } if ($this->type != "lm") { $cols["mark"] = array("txt" => $lng->txt("trac_mark"), "default" => true); } $cols["u_comment"] = array("txt" => $lng->txt("trac_comment"), "default" => false); $cols["create_date"] = array("txt" => $lng->txt("create_date"), "default" => false); $cols["language"] = array("txt" => $lng->txt("language"), "default" => false); // add user data only if object is [part of] course if (!$this->anonymized && ($a_in_course || $a_in_group)) { // only show if export permission is granted include_once 'Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; if (ilPrivacySettings::_getInstance()->checkExportAccess($this->ref_id)) { // other user profile fields foreach ($ufs as $f => $fd) { if (!isset($cols[$f]) && $f != "username" && !$fd["lists_hide"]) { if ($a_in_course && !($fd["course_export_fix_value"] || $ilSetting->get("usr_settings_course_export_" . $f))) { continue; } if ($a_in_group && !($fd["group_export_fix_value"] || $ilSetting->get("usr_settings_group_export_" . $f))) { continue; } $cols[$f] = array("txt" => $lng->txt($f), "default" => false); $privacy_fields[] = $f; } } // additional defined user data fields include_once './Services/User/classes/class.ilUserDefinedFields.php'; $user_defined_fields = ilUserDefinedFields::_getInstance(); if ($a_in_course) { $user_defined_fields = $user_defined_fields->getCourseExportableFields(); } else { $user_defined_fields = $user_defined_fields->getGroupExportableFields(); } foreach ($user_defined_fields as $definition) { if ($definition["field_type"] != UDF_TYPE_WYSIWYG) { $f = "udf_" . $definition["field_id"]; $cols[$f] = array("txt" => $definition["field_name"], "default" => false); $privacy_fields[] = $f; } } } } return array($cols, $privacy_fields); }
function getSelectableColumns() { global $ilObjDataCache; $columns = array(); if ($this->obj_ids === NULL) { $this->obj_ids = $this->getItems(); } if ($this->obj_ids) { $tmp_cols = array(); foreach ($this->obj_ids as $obj_id) { if ($obj_id == $this->obj_id) { $parent = array("txt" => $this->lng->txt("status"), "default" => true); } else { $title = $ilObjDataCache->lookupTitle($obj_id); $type = $ilObjDataCache->lookupType($obj_id); $icon = ilObject::_getIcon("", "tiny", $type); if ($type == "sess") { include_once "Modules/Session/classes/class.ilObjSession.php"; $sess = new ilObjSession($obj_id, false); $title = $sess->getPresentationTitle(); } $tmp_cols[strtolower($title) . "#~#obj_" . $obj_id] = array("txt" => $title, "icon" => $icon, "type" => $type, "default" => true); } } if (sizeof($this->objective_ids)) { foreach ($this->objective_ids as $obj_id => $title) { $tmp_cols[strtolower($title) . "#~#objtv_" . $obj_id] = array("txt" => $title, "default" => true); } } if (sizeof($this->sco_ids)) { foreach ($this->sco_ids as $obj_id => $title) { $icon = ilUtil::getTypeIconPath("sco", $obj_id, "tiny"); $tmp_cols[strtolower($title) . "#~#objsco_" . $obj_id] = array("txt" => $title, "icon" => $icon, "default" => true); } } // alex, 5 Nov 2011: Do not sort SCORM items if (!sizeof($this->sco_ids)) { ksort($tmp_cols); } foreach ($tmp_cols as $id => $def) { $id = explode('#~#', $id); $columns[$id[1]] = $def; } unset($tmp_cols); if ($parent) { $columns["obj_" . $this->obj_id] = $parent; } } $columns["status_changed"] = array("txt" => $this->lng->txt("trac_status_changed"), "id" => "status_changed", "default" => false); include_once 'Services/Tracking/classes/class.ilObjUserTracking.php'; $tracking = new ilObjUserTracking(); if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_LAST_ACCESS)) { $columns["last_access"] = array("txt" => $this->lng->txt("last_access"), "id" => "last_access", "default" => false); } if ($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_SPENT_SECONDS)) { $columns["spent_seconds"] = array("txt" => $this->lng->txt("trac_spent_seconds"), "id" => "spent_seconds", "default" => false); } return $columns; }