4include_once(
"./Services/Tracking/classes/class.ilLPTableBaseGUI.php");
 
   20    public function __construct($a_parent_obj, $a_parent_cmd, $a_user_id, $a_obj_id, $a_ref_id, $a_print_view = 
false)
 
   24        $this->
setId(
"truop");
 
   25        $this->user_id = $a_user_id;
 
   26        $this->obj_id = $a_obj_id;
 
   27        $this->ref_id = $a_ref_id;
 
   29        parent::__construct($a_parent_obj, $a_parent_cmd);
 
   32        $this->
parseTitle($this->obj_id, 
"details", $this->user_id);
 
   38        $this->
addColumn($this->lng->txt(
"title"), 
"title");
 
   42            if (in_array(
$l, array(
"last_access", 
"first_access", 
"read_count", 
"spent_seconds", 
"mark", 
"status", 
"percentage"))) {
 
   45            if (
$l == 
"u_comment") {
 
   52            $this->
addColumn($this->lng->txt(
"actions"), 
"");
 
   58        $this->
setFormAction($ilCtrl->getFormActionByClass(get_class($this)));
 
   59        $this->
setRowTemplate(
"tpl.user_objects_props_row.html", 
"Services/Tracking");
 
   85        include_once 
'Services/Tracking/classes/class.ilObjUserTracking.php';
 
   88            $cols[
"first_access"] = array(
 
   89                "txt" => 
$lng->txt(
"trac_first_access"),
 
   91            $cols[
"last_access"] = array(
 
   92                "txt" => 
$lng->txt(
"trac_last_access"),
 
   96            $cols[
"read_count"] = array(
 
   97                "txt" => 
$lng->txt(
"trac_read_count"),
 
  101            $cols[
"spent_seconds"] = array(
 
  102                "txt" => 
$lng->txt(
"trac_spent_seconds"),
 
  107        $cols[
"percentage"] = array(
 
  108            "txt" => 
$lng->txt(
"trac_percentage"),
 
  111        $cols[
"status"] = array(
 
  112            "txt" => 
$lng->txt(
"trac_status"),
 
  114        $cols[
"mark"] = array(
 
  115            "txt" => 
$lng->txt(
"trac_mark"),
 
  117        $cols[
"u_comment"] = array(
 
  118            "txt" => 
$lng->txt(
"trac_comment"),
 
  135        include_once(
"./Services/Tracking/classes/class.ilTrQuery.php");
 
  147            $this->filter[
"view_mode"]
 
  150        if (count($tr_data[
"set"]) == 0 && $this->
getOffset() > 0) {
 
  162                $this->filter[
"view_mode"]
 
  167        foreach ($tr_data[
"set"] as $idx => 
$row) {
 
  168            include_once 
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
 
  169            if (
$row[
"ref_id"] &&
 
  171                foreach (array_keys(
$row) as $col_id) {
 
  172                    if (!in_array($col_id, array(
"type", 
"obj_id", 
"ref_id", 
"title", 
"sort_title"))) {
 
  173                        $tr_data[
"set"][$idx][$col_id] = 
null;
 
  176                $tr_data[
"set"][$idx][
"privacy_conflict"] = 
true;
 
  186            foreach ($tr_data[
"set"] as $idx => 
$row) {
 
  187                if (
$row[
'obj_id'] == $this->obj_id) {
 
  189                } elseif (isset(
$row[
"sort_title"])) {
 
  190                    $set[strtolower(
$row[
"sort_title"]) . 
"__" . $idx] = 
$row;
 
  192                    $set[strtolower(
$row[
"title"]) . 
"__" . $idx] = 
$row;
 
  195            unset($tr_data[
"set"]);
 
  201            $set = array_values($set);
 
  203                array_unshift($set, $parent);
 
  208            $this->
setData($tr_data[
"set"]);
 
  220        include_once 
'./Services/Object/classes/class.ilObjectLP.php';
 
  222        $collection = $olp->getCollectionInstance();
 
  224            include_once(
"./Services/Form/classes/class.ilSubEnabledFormPropertyGUI.php");
 
  225            include_once(
"./Services/Table/interfaces/interface.ilTableFilterItem.php");
 
  228            include_once(
"./Services/Form/classes/class.ilRadioGroupInputGUI.php");
 
  229            include_once(
"./Services/Form/classes/class.ilRadioOption.php");
 
  232            $ti->addOption(
new ilRadioOption(
$lng->txt(
"trac_view_mode_collection"), 
"coll"));
 
  234            $ti->readFromSession();
 
  235            $this->filter[
"view_mode"] = $ti->getValue();
 
  247            $data[
"percentage"] = 
null;
 
  251            if (!
$data[
"privacy_conflict"]) {
 
  252                $val = (trim(
$data[$c]) == 
"")
 
  256                if (
$data[$c] != 
"" || $c == 
"status") {
 
  267                            include_once(
"./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
 
  272                            if (
$data[
"ref_id"] &&
 
  273                                $data[
"type"] != 
"lobj" &&
 
  274                                $data[
"type"] != 
"sco" &&
 
  275                                $data[
"type"] != 
"st" &&
 
  276                                $data[
"type"] != 
"mob") {
 
  279                                    if ($timing !== 
true) {
 
  284                                    $this->tpl->setCurrentBlock(
'warning_img');
 
  286                                    $this->tpl->setVariable(
'WARNING_ALT', $this->lng->txt(
'trac_time_passed') . $timing);
 
  287                                    $this->tpl->parseCurrentBlock();
 
  292                        case "spent_seconds":
 
  301                            $val = 
$data[$c] . 
"%";
 
  310                if ($c == 
"spent_seconds" &&
 
  314                if ($c == 
"percentage" &&
 
  322            $this->tpl->setCurrentBlock(
"user_field");
 
  323            $this->tpl->setVariable(
"VAL_UF", $val);
 
  324            $this->tpl->parseCurrentBlock();
 
  327        if (
$data[
"privacy_conflict"]) {
 
  328            $this->tpl->setCurrentBlock(
"permission_bl");
 
  329            $this->tpl->setVariable(
"TXT_NO_PERMISSION", 
$lng->txt(
"status_no_permission"));
 
  330            $this->tpl->parseCurrentBlock();
 
  333        if (
$data[
"title"] == 
"") {
 
  334            $data[
"title"] = 
"--" . 
$lng->txt(
"none") . 
"--";
 
  337        $this->tpl->setVariable(
"ICON_ALT", 
$lng->txt(
$data[
"type"]));
 
  339        if (in_array(
$data[
'type'], array(
'fold', 
'grp')) && 
$data[
'obj_id'] != $this->obj_id) {
 
  340            if (
$data[
'type'] == 
'fold') {
 
  341                $object_gui = 
'ilobjfoldergui';
 
  343                $object_gui = 
'ilobjgroupgui';
 
  345            $this->tpl->setCurrentBlock(
'title_linked');
 
  348            if (
$_GET[
"baseClass"] != 
"ilPersonalDesktopGUI" && 
$_GET[
"baseClass"] != 
"ilAdministrationGUI") {
 
  349                $old = 
$ilCtrl->getParameterArrayByClass(
'illplistofobjectsgui');
 
  350                $ilCtrl->setParameterByClass(
'illplistofobjectsgui', 
'ref_id', 
$data[
"ref_id"]);
 
  351                $ilCtrl->setParameterByClass(
'illplistofobjectsgui', 
'details_id', 
$data[
"ref_id"]);
 
  352                $ilCtrl->setParameterByClass(
'illplistofobjectsgui', 
'user_id', $this->user_id);
 
  353                $url = 
$ilCtrl->getLinkTargetByClass(array(
'ilrepositorygui', $object_gui, 
'illearningprogressgui', 
'illplistofobjectsgui'), 
'userdetails');
 
  354                $ilCtrl->setParameterByClass(
'illplistofobjectsgui', 
'ref_id', 
$old[
"ref_id"]);
 
  355                $ilCtrl->setParameterByClass(
'illplistofobjectsgui', 
'details_id', 
$old[
"details_id"]);
 
  356                $ilCtrl->setParameterByClass(
'illplistofobjectsgui', 
'user_id', 
$old[
"user_id"]);
 
  361            $this->tpl->setVariable(
"URL_TITLE", 
$url);
 
  362            $this->tpl->setVariable(
"VAL_TITLE", 
$data[
"title"]);
 
  363            $this->tpl->parseCurrentBlock();
 
  365            $this->tpl->setCurrentBlock(
'title_plain');
 
  366            $this->tpl->setVariable(
"VAL_TITLE", 
$data[
"title"]);
 
  367            $this->tpl->parseCurrentBlock();
 
  371        if (
$data[
'ref_id']) {
 
  372            include_once 
'./Services/Tree/classes/class.ilPathGUI.php';
 
  376                $this->tpl->setVariable(
'COLL_PATH', $this->lng->txt(
'path') . 
': ' . 
$path);
 
  381        include_once 
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
 
  382        if (
$data[
"ref_id"] &&
 
  385                $this->tpl->setCurrentBlock(
"item_command");
 
  386                $ilCtrl->setParameterByClass(
"illplistofobjectsgui", 
"userdetails_id", 
$data[
"ref_id"]);
 
  387                $this->tpl->setVariable(
"HREF_COMMAND", 
$ilCtrl->getLinkTargetByClass(
"illplistofobjectsgui", 
'edituser'));
 
  388                $this->tpl->setVariable(
"TXT_COMMAND", 
$lng->txt(
'edit'));
 
  389                $ilCtrl->setParameterByClass(
"illplistofobjectsgui", 
"userdetails_id", 
"");
 
  390                $this->tpl->parseCurrentBlock();
 
  397        $a_excel->
setCell($a_row, 0, $this->lng->txt(
"type"));
 
  398        $a_excel->
setCell($a_row, 1, $this->lng->txt(
"title"));
 
  403            $a_excel->
setCell($a_row, $cnt++, $labels[$c][
"txt"]);
 
  411        $a_excel->
setCell($a_row, 0, $this->lng->txt($a_set[
"type"]));
 
  412        $a_excel->
setCell($a_row, 1, $a_set[
"title"]);
 
  416            if ($c != 
'status') {
 
  417                $val = $this->
parseValue($c, $a_set[$c], $this->type);
 
  421            $a_excel->
setCell($a_row, $cnt++, $val);
 
  427        $a_csv->addColumn($this->lng->txt(
"type"));
 
  428        $a_csv->addColumn($this->lng->txt(
"title"));
 
  432            $a_csv->addColumn($labels[$c][
"txt"]);
 
  440        $a_csv->addColumn($this->lng->txt($a_set[
"type"]));
 
  441        $a_csv->addColumn($a_set[
"title"]);
 
  444            if ($c != 
'status') {
 
  445                $val = $this->
parseValue($c, $a_set[$c], $this->type);
 
  449            $a_csv->addColumn($val);
 
An exception for terminatinating execution or to throw for unit testing.
static secondsToString($seconds, $force_with_seconds=false, $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date @access public.
@classDescription Date and time handling
setCell($a_row, $a_col, $a_value, $a_datatype=null)
Set cell value.
setBold($a_coords)
Set cell(s) to bold.
getColumnCoord($a_col)
Get column "name" from number.
LP collection of repository objects.
TableGUI class for learning progress.
parseValue($id, $value, $type)
showTimingsWarning($a_ref_id, $a_user_id)
isPercentageAvailable($a_obj_id)
parseTitle($a_obj_id, $action, $a_user_id=false)
static checkPermission($a_permission, $a_ref_id, $a_user_id=null)
wrapper for rbac access checks
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
static _getImagePathForStatus($a_status)
Get image path for status.
const EXTENDED_DATA_READ_COUNT
const EXTENDED_DATA_SPENT_SECONDS
const EXTENDED_DATA_LAST_ACCESS
static supportsMark($a_obj_type)
static supportsSpentSeconds($a_obj_type)
static getInstance($a_obj_id)
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
Creates a path for a start and endnode.
This class represents an option in a radio group.
getSelectedColumns()
Get selected columns.
setEnableHeader($a_enableheader)
Set Enable Header.
setExternalSorting($a_val)
Set external sorting.
setExportFormats(array $formats)
Set available export formats.
setPrintMode($a_value=false)
Toogle print mode.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
resetOffset($a_in_determination=false)
Reset offset.
setLimit($a_limit=0, $a_default_limit=0)
set max.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
getPrintMode()
Get print mode.
setExternalSegmentation($a_val)
Set external segmentation.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setShowTemplates($a_value)
Toggle templates.
getOrderDirection()
Get order direction.
setMaxCount($a_max_count)
set max.
static getObjectsDataForUser( $a_user_id, $a_parent_obj_id, $a_parent_ref_id, $a_order_field="", $a_order_dir="", $a_offset=0, $a_limit=9999, array $a_filters=null, array $a_additional_fields=null, $use_collection=true)
Get all object-based tracking data for user and parent object.
Build table list for objects of given user.
fillHeaderExcel(ilExcel $a_excel, &$a_row)
Excel Version of Fill Header.
__construct($a_parent_obj, $a_parent_cmd, $a_user_id, $a_obj_id, $a_ref_id, $a_print_view=false)
Constructor.
fillHeaderCSV($a_csv)
CSV Version of Fill Header.
getItems()
Get user items.
fillRowExcel(ilExcel $a_excel, &$a_row, $a_set)
Excel Version of Fill Row.
getSelectableColumns()
Get selectable columns.
fillRow($data)
Fill table row.
fillRowCSV($a_csv, $a_set)
CSV Version of Fill Row.
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)