ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilLPObjectStatisticsLPTableGUI Class Reference

TableGUI class for learning progress. More...

+ Inheritance diagram for ilLPObjectStatisticsLPTableGUI:
+ Collaboration diagram for ilLPObjectStatisticsLPTableGUI:

Public Member Functions

 __construct ($a_parent_obj, $a_parent_cmd, array $a_preselect=null, $a_load_items=true, $a_is_chart=false, $a_is_details=false)
 Constructor. More...
 
 numericOrdering ($a_field)
 
 initFilter ()
 Init filter. More...
 
 getItems ()
 
 getGraph (array $a_graph_items)
 
- Public Member Functions inherited from ilLPTableBaseGUI
 __construct ($a_parent_obj, $a_parent_cmd="", $a_template_context="")
 
 executeCommand ()
 
 searchFilterListener ($a_ref_id, $a_data)
 Listener for SearchResultFilter Checks wheather the object is hidden and mode is not LP_MODE_DEACTIVATED public. More...
 
 initBaseFilter ($a_split_learning_resources=false, $a_include_no_status_filter=true)
 Init filter. More...
 
 getCurrentFilter ($as_query=false)
 
- Public Member Functions inherited from ilTable2GUI
 __construct ($a_parent_obj, $a_parent_cmd="", $a_template_context="")
 Constructor. More...
 
 setOpenFormTag ($a_val)
 Set open form tag. More...
 
 getOpenFormTag ()
 Get open form tag. More...
 
 setCloseFormTag ($a_val)
 Set close form tag. More...
 
 getCloseFormTag ()
 Get close form tag. More...
 
 determineLimit ()
 Determine the limit. More...
 
 getSelectableColumns ()
 Get selectable columns. More...
 
 determineSelectedColumns ()
 Determine selected columns. More...
 
 isColumnSelected ($a_col)
 Is given column selected? More...
 
 getSelectedColumns ()
 Get selected columns. More...
 
 executeCommand ()
 Execute command. More...
 
 resetOffset ($a_in_determination=false)
 Reset offset. More...
 
 initFilter ()
 Init filter. More...
 
 getParentObject ()
 Get parent object. More...
 
 getParentCmd ()
 Get parent command. More...
 
 setTopAnchor ($a_val)
 Set top anchor. More...
 
 getTopAnchor ()
 Get top anchor. More...
 
 setNoEntriesText ($a_text)
 Set text for an empty table. More...
 
 getNoEntriesText ()
 Get text for an empty table. More...
 
 setIsDataTable ($a_val)
 Set is data table. More...
 
 getIsDataTable ()
 Get is data table. More...
 
 setEnableTitle ($a_enabletitle)
 Set Enable Title. More...
 
 getEnableTitle ()
 Get Enable Title. More...
 
 setEnableHeader ($a_enableheader)
 Set Enable Header. More...
 
 getEnableHeader ()
 Get Enable Header. More...
 
 setEnableNumInfo ($a_val)
 Set enable num info. More...
 
 getEnableNumInfo ()
 Get enable num info. More...
 
 setTitle ($a_title, $a_icon=0, $a_icon_alt=0)
 Set title and title icon. More...
 
 setDescription ($a_val)
 Set description. More...
 
 getDescription ()
 Get description. More...
 
 setOrderField ($a_order_field)
 set order column More...
 
 getOrderField ()
 
 setData ($a_data)
 
 getData ()
 
 dataExists ()
 
 setPrefix ($a_prefix)
 
 getPrefix ()
 
 addFilterItem ($a_input_item, $a_optional=false)
 Add filter item. More...
 
 addFilterItemByMetaType ($id, $type=self::FILTER_TEXT, $a_optional=false, $caption=NULL)
 Add filter by standard type. More...
 
 getFilterItems ($a_optionals=false)
 Get filter items. More...
 
 getFilterItemByPostVar ($a_post_var)
 
 setFilterCols ($a_val)
 Set filter columns. More...
 
 getFilterCols ()
 Get filter columns. More...
 
 setDisableFilterHiding ($a_val=true)
 Set disable filter hiding. More...
 
 getDisableFilterHiding ()
 Get disable filter hiding. More...
 
 isFilterSelected ($a_col)
 Is given filter selected? More...
 
 getSelectedFilters ()
 Get selected filters. More...
 
 determineSelectedFilters ()
 Determine selected filters. More...
 
 setCustomPreviousNext ($a_prev_link, $a_next_link)
 Set custom previous/next links. More...
 
 setFormAction ($a_form_action, $a_multipart=false)
 Set Form action parameter. More...
 
 getFormAction ()
 Get Form action parameter. More...
 
 setFormName ($a_formname="")
 Set Form name. More...
 
 getFormName ()
 Get Form name. More...
 
 setId ($a_val)
 Set id. More...
 
 getId ()
 Get element id. More...
 
 setDisplayAsBlock ($a_val)
 Set display as block. More...
 
 getDisplayAsBlock ()
 Get display as block. More...
 
 getSelectAllCheckbox ()
 Get the name of the checkbox that should be toggled with a select all button. More...
 
 setSelectAllCheckbox ($a_select_all_checkbox)
 Set the name of the checkbox that should be toggled with a select all button. More...
 
 setExternalSorting ($a_val)
 Set external sorting. More...
 
 getExternalSorting ()
 Get external sorting. More...
 
 setFilterCommand ($a_val, $a_caption=null)
 Set filter command. More...
 
 getFilterCommand ()
 Get filter command. More...
 
 setResetCommand ($a_val, $a_caption=null)
 Set reset filter command. More...
 
 getResetCommand ()
 Get reset filter command. More...
 
 setExternalSegmentation ($a_val)
 Set external segmentation. More...
 
 getExternalSegmentation ()
 Get external segmentation. More...
 
 setRowTemplate ($a_template, $a_template_dir="")
 Set row template. More...
 
 setDefaultOrderField ($a_defaultorderfield)
 Set Default order field. More...
 
 getDefaultOrderField ()
 Get Default order field. More...
 
 setDefaultOrderDirection ($a_defaultorderdirection)
 Set Default order direction. More...
 
 getDefaultOrderDirection ()
 Get Default order direction. More...
 
 setDefaultFilterVisiblity ($a_status)
 Set default filter visiblity. More...
 
 getDefaultFilterVisibility ()
 Get default filter visibility. More...
 
 clearCommandButtons ()
 
 addCommandButton ($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
 Add Command button. More...
 
 addCommandButtonInstance (ilButtonBase $a_button)
 Add Command button instance. More...
 
 addSelectionButton ($a_sel_var, $a_options, $a_cmd, $a_text, $a_default_selection='')
 Add Selection List + Command button. More...
 
 addMultiItemSelectionButton ($a_sel_var, $a_options, $a_cmd, $a_text, $a_default_selection='')
 Add Selection List + Command button for selected items. More...
 
 setCloseCommand ($a_link)
 Add command for closing table. More...
 
 addMultiCommand ($a_cmd, $a_text)
 Add Command button. More...
 
 addHiddenInput ($a_name, $a_value)
 Add Hidden Input field. More...
 
 addHeaderCommand ($a_href, $a_text, $a_target="", $a_img="")
 Add Header Command (Link) (Image needed for now) More...
 
 setTopCommands ($a_val)
 Set top commands (display command buttons on top of table, too) More...
 
 getTopCommands ()
 Get top commands (display command buttons on top of table, too) More...
 
 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. More...
 
 getNavParameter ()
 
 setOrderLink ($sort_field, $order_dir)
 
 fillHeader ()
 
 determineOffsetAndOrder ($a_omit_offset=false)
 Determine offset and order. More...
 
 storeNavParameter ()
 
 getHTML ()
 Get HTML. More...
 
 numericOrdering ($a_field)
 Should this field be sorted numeric? More...
 
 render ()
 render table public More...
 
 writeFilterToSession ()
 Write filter values to session. More...
 
 resetFilter ()
 Reset filter. More...
 
 fillFooter ()
 Fill footer row. More...
 
 getLinkbar ($a_num)
 Get previous/next linkbar. More...
 
 fillHiddenRow ()
 
 fillActionRow ()
 Fill Action Row. More...
 
 setHeaderHTML ($html)
 set header html More...
 
 storeProperty ($type, $value)
 Store table property. More...
 
 loadProperty ($type)
 Load table property. More...
 
 getCurrentState ()
 get current settings for order, limit, columns and filter More...
 
 setContext ($id)
 Set context. More...
 
 getContext ()
 Get context. More...
 
 setShowRowsSelector ($a_value)
 Toggle rows-per-page selector. More...
 
 getShowRowsSelector ()
 Get rows-per-page selector state. More...
 
 setShowTemplates ($a_value)
 Toggle templates. More...
 
 getShowTemplates ()
 Get template state. More...
 
 restoreTemplate ($a_name)
 Restore state from template. More...
 
 saveTemplate ($a_name)
 Save current state as template. More...
 
 deleteTemplate ($a_name)
 Delete template. More...
 
 getLimit ()
 Get limit. More...
 
 getOffset ()
 Get offset. More...
 
 setExportFormats (array $formats)
 Set available export formats. More...
 
 setPrintMode ($a_value=false)
 Toogle print mode. More...
 
 getPrintMode ()
 Get print mode. More...
 
 getExportMode ()
 Was export activated? More...
 
 exportData ($format, $send=false)
 Export and optionally send current table data. More...
 
 setEnableAllCommand ($a_value)
 Enable actions for all entries in current result. More...
 
 setRowSelectorLabel ($row_selector_label)
 
 getRowSelectorLabel ()
 
 setPreventDoubleSubmission ($a_val)
 Set prevent double submission. More...
 
 getPreventDoubleSubmission ()
 Get prevent double submission. More...
 
 setLimit ($a_limit=0, $a_default_limit=0)
 
- Public Member Functions inherited from ilTableGUI
 __construct ($a_data=0, $a_global_tpl=true)
 Constructor. More...
 
 setTemplate ($a_tpl)
 set template public More...
 
getTemplateObject ()
 
 setData ($a_data)
 set table data public More...
 
 getData ()
 
 setTitle ($a_title, $a_icon=0, $a_icon_alt=0)
 set table title public More...
 
 setHelp ($a_help_page, $a_help_icon, $a_help_icon_alt=0)
 set table help page public More...
 
 setHeaderNames ($a_header_names)
 set table header names public More...
 
 getColumnCount ()
 Returns the column count based on the number of the header row columns public. More...
 
 setHeaderVars ($a_header_vars, $a_header_params=0)
 set table header vars public More...
 
 setColumnWidth ($a_column_width)
 set table column widths public More...
 
 setOneColumnWidth ($a_column_width, $a_column_number)
 set one table column width public More...
 
 setMaxCount ($a_max_count)
 set max. More...
 
 setLimit ($a_limit=0, $a_default_limit=0)
 set max. More...
 
 getLimit ()
 Get limit. More...
 
 setPrefix ($a_prefix)
 set prefix for sort and offset fields (if you have two or more tables on a page that you want to sort separately) public More...
 
 setOffset ($a_offset)
 set dataset offset public More...
 
 getOffset ()
 Get offset. More...
 
 setOrderColumn ($a_order_column=0, $a_default_column=0)
 set order column public More...
 
 getOrderColumn ()
 Get order column. More...
 
 setOrderDirection ($a_order_direction)
 set order direction public More...
 
 getOrderDirection ()
 Get order direction. More...
 
 setFooter ($a_style, $a_previous=0, $a_next=0)
 set order direction public More...
 
 enable ($a_module_name)
 enables particular modules of table More...
 
 disable ($a_module_name)
 diesables particular modules of table More...
 
 sortData ()
 
 render ()
 render table public More...
 
 renderHeader ()
 
 setOrderLink ($key, $order_dir)
 
 setStyle ($a_element, $a_style)
 
 getStyle ($a_element)
 
 setBase ($a_base)
 Set Base script name (deprecated, only use this for workarounds). More...
 
 getBase ()
 Get Base script name (deprecated, only use this for workarounds). More...
 
 getFormName ()
 
 setFormName ($a_name="cmd")
 
 getSelectAllCheckbox ()
 
 setSelectAllCheckbox ($a_select_all_checkbox)
 
 clearActionButtons ()
 
 addActionButton ($btn_name, $btn_value)
 

Protected Member Functions

 getDetailItems ($a_obj_id)
 
 initRow (&$a_row)
 
 fillRow ($a_set)
 Fill table row. More...
 
 initLearningProgressDetailsLayer ()
 
- Protected Member Functions inherited from ilLPTableBaseGUI
 sendMail (array $a_user_ids, $a_parent_obj, $a_parent_cmd)
 
 searchObjects (array $filter, $permission, array $preset_obj_ids=null, $a_check_lp_activation=true)
 Search objects that match current filters. More...
 
 buildPath ($ref_ids)
 Build path with deep-link. More...
 
 getPossibleTypes ($a_split_learning_resources=false, $a_include_digilib=false, $a_allow_undefined_lp=false)
 Get possible subtypes. More...
 
 parseValue ($id, $value, $type)
 
 isPercentageAvailable ($a_obj_id)
 
 parseTitle ($a_obj_id, $action, $a_user_id=false)
 
 getExportMeta ()
 Build export meta data. More...
 
 fillMetaExcel (ilExcel $a_excel, &$a_row)
 
 fillMetaCSV ($a_csv)
 
 showTimingsWarning ($a_ref_id, $a_user_id)
 
 formatSeconds ($seconds, $a_shorten_zero=false)
 
 anonymizeValue ($a_value, $a_force_number=false)
 
 buildValueScale ($a_max_value, $a_anonymize=false, $a_format_seconds=false)
 
 getMonthsFilter ($a_short=false)
 
 getMonthsYear ($a_year=null, $a_short=false)
 
 getSelectableUserColumns ($a_in_course=false, $a_in_group=false)
 
 addToClipboard ()
 Add selected users to clipboard. More...
 
- Protected Member Functions inherited from ilTable2GUI
 prepareOutput ()
 Anything that must be done before HTML is generated. More...
 
 isFilterVisible ()
 Check if filter is visible: manually shown (session, db) or default value set. More...
 
 isAdvMDFilter (ilAdvancedMDRecordGUI $a_gui, $a_element)
 Check if filter element is based on adv md. More...
 
 fillRow ($a_set)
 Standard Version of Fill Row. More...
 
 getFilterValue (ilFormPropertyGUI $a_item)
 Get current filter value. More...
 
 SetFilterValue (ilFormPropertyGUI $a_item, $a_value)
 Set current filter value. More...
 
 fillMetaExcel (ilExcel $a_excel, &$a_row)
 Add meta information to excel export. More...
 
 fillHeaderExcel (ilExcel $a_excel, &$a_row)
 Excel Version of Fill Header. More...
 
 fillRowExcel (ilExcel $a_excel, &$a_row, $a_set)
 Excel Version of Fill Row. More...
 
 fillMetaCSV ($a_csv)
 Add meta information to csv export. More...
 
 fillHeaderCSV ($a_csv)
 CSV Version of Fill Header. More...
 
 fillRowCSV ($a_csv, $a_set)
 CSV Version of Fill Row. More...
 

Protected Attributes

 $types = array("min", "avg", "max")
 
 $status
 
 $is_chart = false
 
 $is_details = false
 
 $chart_data = array()
 
- Protected Attributes inherited from ilLPTableBaseGUI
 $filter
 
 $anonymized
 
- Protected Attributes inherited from ilTable2GUI
 $close_command = ""
 
 $top_anchor = "il_table_top"
 
 $filters = array()
 
 $optional_filters = array()
 
 $filter_cmd = 'applyFilter'
 
 $reset_cmd = 'resetFilter'
 
 $filter_cols = 5
 
 $ext_sort = false
 
 $ext_seg = false
 
 $context = ""
 
 $mi_sel_buttons = null
 
 $disable_filter_hiding = false
 
 $selected_filter = false
 
 $top_commands = true
 
 $selectable_columns = array()
 
 $selected_column = array()
 
 $show_templates = false
 
 $show_rows_selector = true
 
 $rows_selector_off = false
 
 $nav_determined = false
 
 $limit_determined = false
 
 $filters_determined = false
 
 $columns_determined = false
 
 $open_form_tag = true
 
 $close_form_tag = true
 
 $export_formats
 
 $export_mode
 
 $print_mode
 
 $enable_command_for_all
 
 $restore_filter
 
 $restore_filter_values
 
 $default_filter_visibility = false
 
 $sortable_fields = array()
 
 $prevent_double_submission = true
 
 $row_selector_label
 

Additional Inherited Members

- Static Public Member Functions inherited from ilTable2GUI
static getAllCommandLimit ()
 Get maximum number of entries to enable actions for all. More...
 
- Data Fields inherited from ilTable2GUI
const FILTER_TEXT = 1
 
const FILTER_SELECT = 2
 
const FILTER_DATE = 3
 
const FILTER_LANGUAGE = 4
 
const FILTER_NUMBER_RANGE = 5
 
const FILTER_DATE_RANGE = 6
 
const FILTER_DURATION_RANGE = 7
 
const FILTER_DATETIME_RANGE = 8
 
const EXPORT_EXCEL = 1
 
const EXPORT_CSV = 2
 
const ACTION_ALL_LIMIT = 1000
 
- Data Fields inherited from ilTableGUI
 $title
 
 $icon
 
 $icon_alt
 
 $help_page
 
 $help_icon
 
 $help_icon_alt
 
 $header_names
 
 $header_vars
 
 $linkbar_vars
 
 $data
 
 $column_count
 
 $column_width
 
 $max_count
 
 $limit
 
 $max_limit = false
 
 $offset
 
 $order_column
 
 $order_direction
 
 $footer_style
 
 $footer_previous
 
 $footer_next
 
 $lang_support = true
 
 $global_tpl
 
 $form_name
 
 $select_all_checkbox
 
 $action_buttons
 
 $prefix
 
 $base = ""
 
 $enabled
 
 $styles
 

Detailed Description

TableGUI class for learning progress.

Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

ilLPObjectStatisticsLPTableGUI: ilFormPropertyDispatchGUI

Definition at line 16 of file class.ilLPObjectStatisticsLPTableGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilLPObjectStatisticsLPTableGUI::__construct (   $a_parent_obj,
  $a_parent_cmd,
array  $a_preselect = null,
  $a_load_items = true,
  $a_is_chart = false,
  $a_is_details = false 
)

Constructor.

Definition at line 30 of file class.ilLPObjectStatisticsLPTableGUI.php.

References ilTableGUI\$icon, $ilCtrl, $lng, $path, $status, $text, ilLearningProgressBaseGUI\_getImagePathForStatus(), ilLearningProgressBaseGUI\_getStatusText(), ilTable2GUI\addColumn(), ilTable2GUI\addMultiCommand(), array, getDetailItems(), getItems(), ilLPTableBaseGUI\getMonthsYear(), ilUtil\img(), initFilter(), initLearningProgressDetailsLayer(), ilLPStatus\LP_STATUS_COMPLETED_NUM, ilLPStatus\LP_STATUS_FAILED_NUM, ilLPStatus\LP_STATUS_IN_PROGRESS_NUM, ilLPStatus\LP_STATUS_NOT_ATTEMPTED_NUM, ilTable2GUI\setDefaultOrderDirection(), ilTable2GUI\setDefaultOrderField(), ilTable2GUI\setEnableHeader(), ilTable2GUI\setEnableNumInfo(), ilTable2GUI\setEnableTitle(), ilTable2GUI\setFilterCommand(), ilTable2GUI\setFormAction(), ilTable2GUI\setId(), ilTable2GUI\setLimit(), ilTable2GUI\setResetCommand(), ilTable2GUI\setRowTemplate(), ilTable2GUI\setShowRowsSelector(), and ilTable2GUI\setTitle().

31  {
32  global $ilCtrl, $lng;
33 
34  $this->preselected = $a_preselect;
35  $this->is_chart = (bool)$a_is_chart;
36  $this->is_details = (bool)$a_is_details;
37 
38  $this->setId("lpobjstatlptbl");
39 
40  parent::__construct($a_parent_obj, $a_parent_cmd);
41 
42  if(!$this->is_details)
43  {
44  $this->setShowRowsSelector(true);
45  // $this->setLimit(ilSearchSettings::getInstance()->getMaxHits());
46 
47  $this->addColumn("", "", "1%", true);
48  $this->addColumn($lng->txt("trac_title"), "title");
49  $this->addColumn($lng->txt("object_id"), "obj_id");
50  }
51  else
52  {
53  $this->setLimit(20);
54 
55  $this->addColumn($lng->txt("trac_figure"));
56  }
57 
58  $this->initFilter();
59 
60  if(strpos($this->filter["yearmonth"], "-") === false)
61  {
62  foreach($this->getMonthsYear($this->filter["yearmonth"]) as $num => $caption)
63  {
64  $this->addColumn($caption, "month_".$num);
65  }
66  }
67  else
68  {
69  foreach($this->types as $type)
70  {
71  if($type != "avg")
72  {
73  $caption = " ".$this->lng->txt("trac_object_stat_lp_".$type);
74  }
75  else
76  {
77  $caption = " Ø";
78  }
79  $this->addColumn($lng->txt("trac_members_short").$caption, "mem_cnt_".$type);
80  }
81 
82  include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
83  foreach($this->status as $status)
84  {
88 
89  foreach($this->types as $type)
90  {
91  if($type != "avg")
92  {
93  $caption = $icon.$this->lng->txt("trac_object_stat_lp_".$type);
94  }
95  else
96  {
97  $caption = $icon." Ø";
98  }
99  $this->addColumn($caption, $status."_".$type);
100  }
101  }
102  }
103 
104  if(!$this->is_details)
105  {
106  $this->setTitle($this->lng->txt("trac_object_stat_lp"));
107 
108  // $this->setSelectAllCheckbox("item_id");
109  $this->addMultiCommand("showLearningProgressGraph", $lng->txt("trac_show_graph"));
110  $this->setResetCommand("resetLearningProgressFilter");
111  $this->setFilterCommand("applyLearningProgressFilter");
112  }
113 
114  $this->setFormAction($ilCtrl->getFormAction($a_parent_obj, $a_parent_cmd));
115  $this->setRowTemplate("tpl.lp_object_statistics_lp_row.html", "Services/Tracking");
116  $this->setEnableHeader(true);
117  $this->setEnableNumInfo(true);
118  $this->setEnableTitle(true);
119  $this->setDefaultOrderField("title");
120  $this->setDefaultOrderDirection("asc");
121 
122  $this->status_map = array(ilLPStatus::LP_STATUS_NOT_ATTEMPTED_NUM => "not_attempted",
123  ilLPStatus::LP_STATUS_IN_PROGRESS_NUM => "in_progress",
124  ilLPStatus::LP_STATUS_COMPLETED_NUM => "completed",
125  ilLPStatus::LP_STATUS_FAILED_NUM => "failed");
126 
127  if($a_load_items)
128  {
129  if($this->is_details)
130  {
131  $this->getDetailItems($this->preselected[0]);
132  }
133  else
134  {
136  $this->getItems();
137  }
138  }
139  }
const LP_STATUS_COMPLETED_NUM
$path
Definition: aliased.php:25
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
static _getImagePathForStatus($a_status)
Get image path for status.
setEnableNumInfo($a_val)
Set enable num info.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
getMonthsYear($a_year=null, $a_short=false)
const LP_STATUS_IN_PROGRESS_NUM
setId($a_val)
Set id.
global $ilCtrl
Definition: ilias.php:18
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
addMultiCommand($a_cmd, $a_text)
Add Command button.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
const LP_STATUS_NOT_ATTEMPTED_NUM
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
global $lng
Definition: privfeed.php:17
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
$text
setEnableHeader($a_enableheader)
Set Enable Header.
setEnableTitle($a_enabletitle)
Set Enable Title.
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.
setLimit($a_limit=0, $a_default_limit=0)
const LP_STATUS_FAILED_NUM
setFilterCommand($a_val, $a_caption=null)
Set filter command.
+ Here is the call graph for this function:

Member Function Documentation

◆ fillRow()

ilLPObjectStatisticsLPTableGUI::fillRow (   $a_set)
protected

Fill table row.

Definition at line 415 of file class.ilLPObjectStatisticsLPTableGUI.php.

References $ilCtrl, $status, $url, ilObject\_getIcon(), ilObject\_lookupType(), ilLPTableBaseGUI\anonymizeValue(), and ilLPTableBaseGUI\getMonthsYear().

416  {
417  global $ilCtrl;
418 
419  if(!$this->is_details)
420  {
421  $type = ilObject::_lookupType($a_set["obj_id"]);
422 
423  // ajax details layer link
424  if(strpos($this->filter["yearmonth"], "-") === false)
425  {
426  $ilCtrl->setParameter($this->parent_obj, "item_id", $a_set["obj_id"]);
427  $url = $ilCtrl->getLinkTarget($this->parent_obj, "showLearningProgressDetails");
428  $a_set["title"] .= " (<a href=\"#\" onclick=\"ilObjStat.showLPDetails(event, '".$url."');\">Details</a>)";
429  $ilCtrl->setParameter($this->parent_obj, "item_id", "");
430  }
431 
432  $this->tpl->setCurrentBlock("checkbox");
433  $this->tpl->setVariable("OBJ_ID", $a_set["obj_id"]);
434  $this->tpl->setVariable("ICON_SRC", ilObject::_getIcon("", "tiny", $type));
435  $this->tpl->setVariable("ICON_ALT", $this->lng->txt($type));
436  $this->tpl->setVariable("TITLE_TEXT", $a_set["title"]);
437  if($this->preselected && in_array($a_set["obj_id"], $this->preselected))
438  {
439  $this->tpl->setVariable("CHECKBOX_STATE", " checked=\"checked\"");
440  }
441  $this->tpl->parseCurrentBlock();
442  }
443  else
444  {
445  $this->tpl->setCurrentBlock("details");
446  $this->tpl->setVariable("TXT_FIGURE", $a_set["figure"]);
447  $this->tpl->parseCurrentBlock();
448  }
449 
450  $this->tpl->setCurrentBlock("item");
451 
452  if(strpos($this->filter["yearmonth"], "-") === false)
453  {
454  foreach(array_keys($this->getMonthsYear($this->filter["yearmonth"])) as $num)
455  {
456  $value = $this->anonymizeValue((int)$a_set["month_".$num]);
457  $this->tpl->setVariable("ITEM_VALUE", $value);
458  $this->tpl->parseCurrentBlock();
459  }
460  }
461  else
462  {
463  foreach($this->types as $type)
464  {
465  $this->tpl->setVariable("ITEM_VALUE", $this->anonymizeValue((int)$a_set["mem_cnt_".$type]));
466  $this->tpl->parseCurrentBlock();
467  }
468  foreach($this->status as $status)
469  {
470  foreach($this->types as $type)
471  {
472  $this->tpl->setVariable("ITEM_VALUE", $this->anonymizeValue((int)$a_set[$status."_".$type]));
473  $this->tpl->parseCurrentBlock();
474  }
475  }
476  }
477  }
anonymizeValue($a_value, $a_force_number=false)
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
getMonthsYear($a_year=null, $a_short=false)
$url
Definition: shib_logout.php:72
global $ilCtrl
Definition: ilias.php:18
static _lookupType($a_id, $a_reference=false)
lookup object type
+ Here is the call graph for this function:

◆ getDetailItems()

ilLPObjectStatisticsLPTableGUI::getDetailItems (   $a_obj_id)
protected

Definition at line 335 of file class.ilLPObjectStatisticsLPTableGUI.php.

References ilTableGUI\$data, ilTableGUI\$icon, $path, $status, $text, ilLearningProgressBaseGUI\_getImagePathForStatus(), ilLearningProgressBaseGUI\_getStatusText(), array, ilTrQuery\getObjectLPStatistics(), ilUtil\img(), and ilTable2GUI\setData().

Referenced by __construct().

336  {
337  $data = array();
338  $all_status = array_merge(array("mem_cnt"), $this->status);
339 
340  include_once "Services/Tracking/classes/class.ilTrQuery.php";
341  foreach(ilTrQuery::getObjectLPStatistics(array($a_obj_id), $this->filter["yearmonth"]) as $item)
342  {
343  $month = "month_".$item["yyyy"]."-".str_pad($item["mm"], 2, "0", STR_PAD_LEFT);
344 
345  foreach($all_status as $status)
346  {
347  // status-id to field name
348  if($status != "mem_cnt")
349  {
350  $field = $this->status_map[$status];
351  }
352  else
353  {
354  $field = $status;
355  }
356  // aggregated fields
357  foreach($this->types as $type)
358  {
359  $value = $item[$field."_".$type];
360  $idx = $item["yyyy"]."-".str_pad($item["mm"], 2, "0", STR_PAD_LEFT);
361  $data[$status."_".$type]["month_".$idx] = $value;
362  }
363  }
364  }
365 
366  // add captions
367  foreach(array_keys($data) as $figure)
368  {
369  $status = substr($figure, 0, -4);
370  $type = substr($figure, -3);
371 
372  if($status != "mem_cnt")
373  {
377  $text = $icon." ".$text;
378  }
379  else
380  {
381  $text = $this->lng->txt("members");
382  }
383  if($type != "avg")
384  {
385  $caption = $text." ".$this->lng->txt("trac_object_stat_lp_".$type);
386  }
387  else
388  {
389  $caption = $text." &#216;";
390  }
391  $data[$figure]["figure"] = $caption;
392  }
393 
394  $this->setData($data);
395  }
static getObjectLPStatistics(array $a_obj_ids, $a_year, $a_month=null, $a_group_by_day=false)
$path
Definition: aliased.php:25
static _getImagePathForStatus($a_status)
Get image path for status.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
Create styles array
The data for the language used.
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
$text
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getGraph()

ilLPObjectStatisticsLPTableGUI::getGraph ( array  $a_graph_items)

Definition at line 479 of file class.ilLPObjectStatisticsLPTableGUI.php.

References $chart, $counter, $legend, $lng, $series, $status, ilLearningProgressBaseGUI\_getStatusText(), ilLPTableBaseGUI\anonymizeValue(), array, ilLPTableBaseGUI\buildValueScale(), ilChartGrid\DATA_LINES, ilChart\getInstanceByType(), ilLPTableBaseGUI\getMonthsYear(), ilLPStatus\LP_STATUS_COMPLETED_NUM, ilLPStatus\LP_STATUS_FAILED_NUM, ilLPStatus\LP_STATUS_IN_PROGRESS_NUM, ilLPStatus\LP_STATUS_NOT_ATTEMPTED_NUM, and ilChart\TYPE_GRID.

480  {
481  global $lng;
482 
483  $a_graph_items = array(array_pop($a_graph_items));
484 
485  include_once "Services/Chart/classes/class.ilChart.php";
487  $chart->setsize(700, 500);
488 
489  $legend = new ilChartLegend();
490  $chart->setLegend($legend);
491 
492  // needed for correct stacking
493  $custom_order = array(
494  ilLPStatus::LP_STATUS_IN_PROGRESS_NUM => array("#f7d408", "#fffa00"),
495  ilLPStatus::LP_STATUS_FAILED_NUM => array("#cf0202", "#f15b5b"),
496  ilLPStatus::LP_STATUS_COMPLETED_NUM => array("#17aa0e", "#6ce148"),
497  ilLPStatus::LP_STATUS_NOT_ATTEMPTED_NUM => array("#a4a4a4", "#c4c4c4")
498  );
499 
500  $chart->setColors(array());
501 
502  $max_value = 0;
503  foreach($this->chart_data as $object_id => $days)
504  {
505  if(in_array($object_id, $a_graph_items))
506  {
507  $series = array();
508  foreach($custom_order as $status => $colors)
509  {
510  /*
511  if(strpos($this->filter["yearmonth"], "-") === false)
512  {
513  $series[$status] = new ilChartData("lines");
514  $series[$status]->setLineSteps(true);
515  }
516  else
517  {
518  $series[$status] = new ilChartData("bars");
519  $series[$status]->setBarOptions(0.75);
520  $series[$status]->setFill(true, $colors[1]);
521  }
522  $series[$status]->setStackingId($object_id);
523  */
524  $series[$status] = $chart->getDataInstance(ilChartGrid::DATA_LINES);
525 
527  $chart_colors[] = $colors[0];
528  }
529  $chart->setColors($chart_colors);
530 
531  if(strpos($this->filter["yearmonth"], "-") === false)
532  {
533  $x_axis = $this->lng->txt("month");
534 
535  $counter = 0;
536  foreach(array_keys($this->getMonthsYear($this->filter["yearmonth"])) as $month)
537  {
538  for($loop = 1; $loop<32; $loop++)
539  {
540  $item_day = $month."-".str_pad($loop, 2, "0", STR_PAD_LEFT);
541  foreach(array_keys($custom_order) as $status)
542  {
543  if(isset($days[$item_day]))
544  {
545  // as there is only 1 entry per day, avg == sum
546  $value = (int)$days[$item_day][$this->status_map[$status]."_avg"];
547  }
548  else
549  {
550  $value = 0;
551  }
552  $max_value = max($max_value, $value);
553  $value = $this->anonymizeValue($value, true);
554  $series[$status]->addPoint($counter, $value);
555  }
556  $counter++;
557  }
558  }
559  }
560  else
561  {
562  $x_axis = $this->lng->txt("day");
563  for($loop = 1; $loop<32; $loop++)
564  {
565  foreach(array_keys($custom_order) as $status)
566  {
567  if(isset($days[$loop]))
568  {
569  // as there is only 1 entry per day, avg == sum
570  $value = (int)$days[$loop][$this->status_map[$status]."_avg"];
571  }
572  else
573  {
574  $value = 0;
575  }
576  $max_value = max($max_value, $value);
577  $value = $this->anonymizeValue($value, true);
578  $series[$status]->addPoint($loop, $value);
579  }
580  }
581  }
582 
583  foreach(array_keys($custom_order) as $status)
584  {
585  $chart->addData($series[$status]);
586  }
587  }
588  }
589 
590  $value_ticks = $this->buildValueScale($max_value, true);
591 
592  $labels = array();
593  if(strpos($this->filter["yearmonth"], "-") === false)
594  {
595  $counter = 0;
596  foreach($this->getMonthsYear($this->filter["yearmonth"], true) as $caption)
597  {
598  $labels[$counter] = $caption;
599  $counter += 31;
600  }
601  }
602  else
603  {
604  for($loop = 1; $loop<32; $loop++)
605  {
606  $labels[$loop] = $loop.".";
607  }
608  }
609  $chart->setTicks($labels, $value_ticks, true);
610 
611  return $chart->getHTML();
612  }
const LP_STATUS_COMPLETED_NUM
anonymizeValue($a_value, $a_force_number=false)
Chart legend.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
getMonthsYear($a_year=null, $a_short=false)
const LP_STATUS_IN_PROGRESS_NUM
$counter
buildValueScale($a_max_value, $a_anonymize=false, $a_format_seconds=false)
Create styles array
The data for the language used.
const TYPE_GRID
const LP_STATUS_NOT_ATTEMPTED_NUM
global $lng
Definition: privfeed.php:17
static getInstanceByType($a_type, $a_id)
Get type instance.
const LP_STATUS_FAILED_NUM
+ Here is the call graph for this function:

◆ getItems()

ilLPObjectStatisticsLPTableGUI::getItems ( )

Definition at line 223 of file class.ilLPObjectStatisticsLPTableGUI.php.

References ilTableGUI\$data, $status, ilObject\_lookupTitle(), array, ilLPTableBaseGUI\getCurrentFilter(), ilLPTableBaseGUI\getMonthsYear(), ilTrQuery\getObjectLPStatistics(), initRow(), ilLPTableBaseGUI\searchObjects(), and ilTable2GUI\setData().

Referenced by __construct().

224  {
225  $data = array();
226  $all_status = array_merge(array("mem_cnt"), $this->status);
227 
228  $objects = $this->searchObjects(
229  $this->getCurrentFilter(true),
230  "read",
231  null,
232  false
233  );
234  if($objects)
235  {
236  $objects = array_keys($objects);
237 
238  include_once "Services/Tracking/classes/class.ilTrQuery.php";
239 
240  $yearmonth = explode("-", $this->filter["yearmonth"]);
241  if(sizeof($yearmonth) == 1)
242  {
243  foreach(ilTrQuery::getObjectLPStatistics($objects, $yearmonth[0]) as $item)
244  {
245  $obj_id = $item["obj_id"];
246  if(!isset($data[$obj_id]))
247  {
248  $data[$obj_id]["obj_id"] = $obj_id;
249  $data[$obj_id]["title"] = ilObject::_lookupTitle($obj_id);
250  }
251 
252  $measure_type = substr($this->filter["measure"], -3);
253  $measure_field = substr($this->filter["measure"], 0, -4);
254  $value = $item[$measure_field."_".$measure_type];
255  $idx = $item["yyyy"]."-".str_pad($item["mm"], 2, "0", STR_PAD_LEFT);
256  $data[$obj_id]["month_".$idx] = $value;
257  }
258 
259  if($this->is_chart)
260  {
261  // get data for single days (used in chart display)
262  foreach(array_keys($this->getMonthsYear($yearmonth[0])) as $num)
263  {
264  $num = (int)array_pop(explode("-", $num));
265  foreach(ilTrQuery::getObjectLPStatistics($objects, $yearmonth[0], $num, true) as $item)
266  {
267  $idx = $yearmonth[0].
268  "-".str_pad($num, 2, "0", STR_PAD_LEFT).
269  "-".str_pad($item["dd"], 2, "0", STR_PAD_LEFT);
270  $this->chart_data[$item["obj_id"]][$idx] = $item;
271  }
272  }
273  }
274  }
275  else
276  {
277  // get data aggregated for month
278  foreach(ilTrQuery::getObjectLPStatistics($objects, $yearmonth[0], (int)$yearmonth[1]) as $item)
279  {
280  $obj_id = $item["obj_id"];
281  if(!isset($data[$obj_id]))
282  {
283  $data[$obj_id]["obj_id"] = $obj_id;
284  $data[$obj_id]["title"] = ilObject::_lookupTitle($obj_id);
285  $this->initRow($data[$obj_id]);
286  }
287 
288  foreach($all_status as $status)
289  {
290  // status-id to field name
291  if(is_numeric($status))
292  {
293  $field = $this->status_map[$status];
294  }
295  else
296  {
297  $field = $status;
298  }
299 
300  // aggregated fields
301  foreach($this->types as $type)
302  {
303  $value = $item[$field."_".$type];
304  $data[$obj_id][$status."_".$type] = $value;
305  }
306  }
307  }
308 
309  if($this->is_chart)
310  {
311  // get data for single days (used in chart display)
312  foreach(ilTrQuery::getObjectLPStatistics($objects, $yearmonth[0], (int)$yearmonth[1], true) as $item)
313  {
314  $this->chart_data[$item["obj_id"]][$item["dd"]] = $item;
315  }
316  }
317  }
318 
319  // add objects with no usage data
320  foreach($objects as $obj_id)
321  {
322  if(!isset($data[$obj_id]))
323  {
324  $data[$obj_id]["obj_id"] = $obj_id;
325  $data[$obj_id]["title"] = ilObject::_lookupTitle($obj_id);
326  }
327  }
328  }
329 
330  $this->setData($data);
331 
332  include_once "./Services/Link/classes/class.ilLink.php";
333  }
static getObjectLPStatistics(array $a_obj_ids, $a_year, $a_month=null, $a_group_by_day=false)
getMonthsYear($a_year=null, $a_short=false)
searchObjects(array $filter, $permission, array $preset_obj_ids=null, $a_check_lp_activation=true)
Search objects that match current filters.
static _lookupTitle($a_id)
lookup object title
Create styles array
The data for the language used.
getCurrentFilter($as_query=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFilter()

ilLPObjectStatisticsLPTableGUI::initFilter ( )

Init filter.

Definition at line 153 of file class.ilLPObjectStatisticsLPTableGUI.php.

References $lng, $options, $si, ilLearningProgressBaseGUI\_getStatusText(), ilTable2GUI\addFilterItem(), array, date, ilLPTableBaseGUI\getMonthsFilter(), ilLPStatus\LP_STATUS_IN_PROGRESS_NUM, ilTable2GUI\setDisableFilterHiding(), and ilTextInputGUI\setMaxLength().

Referenced by __construct().

154  {
155  global $lng;
156 
157  $this->setDisableFilterHiding(true);
158 
159  // object type selection
160  include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
161  /*
162  $si = new ilSelectInputGUI($lng->txt("obj_type"), "type");
163  $options = $this->getPossibleTypes(true);
164  $si->setOptions($options);
165  $this->addFilterItem($si);
166  $si->readFromSession();
167  if(!$si->getValue())
168  {
169  $si->setValue("crs");
170  }
171  $this->filter["type"] = $si->getValue();
172 
173  $this->filter_captions[] = $options[$this->filter["type"]];
174  */
175  $this->filter["type"] = "crs";
176 
177 
178  // title/description
179  include_once("./Services/Form/classes/class.ilTextInputGUI.php");
180  $ti = new ilTextInputGUI($lng->txt("trac_title_description"), "query");
181  $ti->setMaxLength(64);
182  $ti->setSize(20);
183  $this->addFilterItem($ti);
184  $ti->readFromSession();
185  $this->filter["query"] = $ti->getValue();
186 
187  // year/month
188  $si = new ilSelectInputGUI($lng->txt("year")." / ".$lng->txt("month"), "yearmonth");
189  $si->setOptions($this->getMonthsFilter());
190  $this->addFilterItem($si);
191  $si->readFromSession();
192  if(!$si->getValue())
193  {
194  $si->setValue(date("Y-m"));
195  }
196  $this->filter["yearmonth"] = $si->getValue();
197 
198  if(!strpos($this->filter["yearmonth"], "-"))
199  {
200  $si = new ilSelectInputGUI($lng->txt("trac_figure"), "figure");
201  $options = array(
202  "mem_cnt_max" => $lng->txt("members")." ".$lng->txt("trac_object_stat_lp_max"),
203  "mem_cnt_avg" => $lng->txt("members")." &#216;",
204  // we are using the db column names here (not the lp constants)!
205  "in_progress_max" => ilLearningProgressBaseGUI::_getStatusText(ilLPStatus::LP_STATUS_IN_PROGRESS_NUM)." ".$lng->txt("trac_object_stat_lp_max"),
207  $si->setOptions($options);
208  $this->addFilterItem($si);
209  $si->readFromSession();
210  if(!$si->getValue())
211  {
212  $si->setValue("mem_cnt_max");
213  }
214  $this->filter["measure"] = $si->getValue();
215  }
216 
217  if($this->is_details)
218  {
219  $this->filters = array();
220  }
221  }
This class represents a selection list property in a property form.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
const LP_STATUS_IN_PROGRESS_NUM
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
if(!is_array($argv)) $options
setDisableFilterHiding($a_val=true)
Set disable filter hiding.
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
This class represents a text property in a property form.
setMaxLength($a_maxlength)
Set Max Length.
Create styles array
The data for the language used.
getMonthsFilter($a_short=false)
global $lng
Definition: privfeed.php:17
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initLearningProgressDetailsLayer()

ilLPObjectStatisticsLPTableGUI::initLearningProgressDetailsLayer ( )
protected

Definition at line 614 of file class.ilLPObjectStatisticsLPTableGUI.php.

References $tpl, iljQueryUtil\initjQuery(), and ilYuiUtil\initPanel().

Referenced by __construct().

615  {
616  global $tpl;
617 
618  include_once("./Services/YUI/classes/class.ilYuiUtil.php");
620  include_once("./Services/jQuery/classes/class.iljQueryUtil.php");
622 
623  $tpl->addJavascript("./Services/Tracking/js/ilObjStat.js");
624  }
global $tpl
Definition: ilias.php:8
static initPanel($a_resize=false)
Init yui panel.
static initjQuery($a_tpl=null)
Init jQuery.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initRow()

ilLPObjectStatisticsLPTableGUI::initRow ( $a_row)
protected

Definition at line 397 of file class.ilLPObjectStatisticsLPTableGUI.php.

References $status.

Referenced by getItems().

398  {
399  foreach($this->types as $type)
400  {
401  $a_row["mem_cnt_".$type] = null;
402  }
403  foreach($this->status as $status)
404  {
405  foreach($this->types as $type)
406  {
407  $a_row[$status."_".$type] = null;
408  }
409  }
410  }
+ Here is the caller graph for this function:

◆ numericOrdering()

ilLPObjectStatisticsLPTableGUI::numericOrdering (   $a_field)

Definition at line 141 of file class.ilLPObjectStatisticsLPTableGUI.php.

142  {
143  if($a_field != "title")
144  {
145  return true;
146  }
147  return false;
148  }

Field Documentation

◆ $chart_data

ilLPObjectStatisticsLPTableGUI::$chart_data = array()
protected

Definition at line 25 of file class.ilLPObjectStatisticsLPTableGUI.php.

◆ $is_chart

ilLPObjectStatisticsLPTableGUI::$is_chart = false
protected

Definition at line 23 of file class.ilLPObjectStatisticsLPTableGUI.php.

◆ $is_details

ilLPObjectStatisticsLPTableGUI::$is_details = false
protected

Definition at line 24 of file class.ilLPObjectStatisticsLPTableGUI.php.

◆ $status

◆ $types

ilLPObjectStatisticsLPTableGUI::$types = array("min", "avg", "max")
protected

Definition at line 18 of file class.ilLPObjectStatisticsLPTableGUI.php.


The documentation for this class was generated from the following file: