ILIAS  Release_5_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilLPTableBaseGUI Class Reference

TableGUI class for learning progress. More...

+ Inheritance diagram for ilLPTableBaseGUI:
+ Collaboration diagram for ilLPTableBaseGUI:

Public Member Functions

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

Protected Member Functions

 searchObjects (array $filter, $permission, array $preset_obj_ids=null)
 Search objects that match current filters.
 buildPath ($ref_ids)
 Build path with deep-link.
 getPossibleTypes ($a_split_learning_resources=false, $a_include_digilib=false, $a_allow_undefined_lp=false)
 Get possible subtypes.
 parseValue ($id, $value, $type)
 isPercentageAvailable ($a_obj_id)
 parseTitle ($a_obj_id, $action, $a_user_id=false)
 getExportMeta ()
 Build export meta data.
 fillMetaExcel ($worksheet, &$a_row)
 Add meta information to excel export.
 fillMetaCSV ($a_csv)
 Add meta information to csv export.
 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)
- Protected Member Functions inherited from ilTable2GUI
 prepareOutput ()
 Anything that must be done before HTML is generated.
 fillRow ($a_set)
 Standard Version of Fill Row.
 getFilterValue (ilFormPropertyGUI $a_item)
 Get current filter value.
 SetFilterValue (ilFormPropertyGUI $a_item, $a_value)
 Set current filter value.
 fillHeaderExcel ($worksheet, &$a_row)
 Excel Version of Fill Header.
 fillRowExcel ($a_worksheet, &$a_row, $a_set)
 Excel Version of Fill Row.
 fillHeaderCSV ($a_csv)
 CSV Version of Fill Header.
 fillRowCSV ($a_csv, $a_set)
 CSV Version of Fill Row.

Protected Attributes

 $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
 $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
 $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.
- 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

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$

Definition at line 15 of file class.ilLPTableBaseGUI.php.

Constructor & Destructor Documentation

ilLPTableBaseGUI::__construct (   $a_parent_obj,
  $a_parent_cmd = "",
  $a_template_context = "" 
)

Constructor.

Reimplemented from ilTable2GUI.

Reimplemented in ilTrMatrixTableGUI.

Definition at line 20 of file class.ilLPTableBaseGUI.php.

References ilObjUserTracking\_enabledUserRelatedData(), and ilObjectLP\getInstance().

{
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();
}
}

+ Here is the call graph for this function:

Member Function Documentation

ilLPTableBaseGUI::anonymizeValue (   $a_value,
  $a_force_number = false 
)
protected
ilLPTableBaseGUI::buildPath (   $ref_ids)
protected

Build path with deep-link.

Parameters
array$ref_ids
Returns
array

Definition at line 288 of file class.ilLPTableBaseGUI.php.

References ilTableGUI\$data, $ilCtrl, $path, $ref_id, $result, and ilLink\_getLink().

Referenced by ilLPProgressTableGUI\fillRow(), and ilTrSummaryTableGUI\fillRow().

{
global $tree, $ilCtrl;
include_once './Services/Link/classes/class.ilLink.php';
if(!count($ref_ids))
{
return false;
}
foreach($ref_ids as $ref_id)
{
$path = "...";
$counter = 0;
$path_full = $tree->getPathFull($ref_id);
foreach($path_full as $data)
{
if(++$counter < (count($path_full)-1))
{
continue;
}
$path .= " &raquo; ";
if($ref_id != $data['ref_id'])
{
$path .= $data['title'];
}
else
{
$path .= ('<a target="_top" href="'.
ilLink::_getLink($data['ref_id'],$data['type']).'">'.
$data['title'].'</a>');
}
}
}
return $result;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::buildValueScale (   $a_max_value,
  $a_anonymize = false,
  $a_format_seconds = false 
)
protected

Definition at line 756 of file class.ilLPTableBaseGUI.php.

References ilTableGUI\$base, anonymizeValue(), and formatSeconds().

Referenced by ilLPObjectStatisticsDailyTableGUI\getGraph(), ilLPObjectStatisticsTableGUI\getGraph(), and ilLPObjectStatisticsLPTableGUI\getGraph().

{
$step = 0;
if($a_max_value)
{
$step = $a_max_value / 10;
$base = ceil(log($step, 10));
$fac = ceil($step / pow(10, ($base - 1)));
$step = pow(10, $base - 1) * $fac;
}
if ($step <= 1)
{
$step = 1;
}
$ticks = range(0, $a_max_value+$step, $step);
$value_ticks = array(0 => 0);
foreach($ticks as $tick)
{
$value = $tvalue = $tick;
if($a_anonymize)
{
$value = $this->anonymizeValue($value, true);
$tvalue = $this->anonymizeValue($tvalue);
}
if($a_format_seconds)
{
$tvalue = $this->formatSeconds($value);
}
$value_ticks[$value] = $tvalue;
}
return $value_ticks;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::executeCommand ( )

Execute command.

Reimplemented from ilTable2GUI.

Definition at line 38 of file class.ilLPTableBaseGUI.php.

References $_GET, $_POST, $_REQUEST, $ilCtrl, ilTable2GUI\determineOffsetAndOrder(), ilTable2GUI\determineSelectedFilters(), ilTable2GUI\getFilterItemByPostVar(), ilTable2GUI\resetFilter(), ilTable2GUI\resetOffset(), ilTable2GUI\storeNavParameter(), and ilTable2GUI\writeFilterToSession().

{
global $ilCtrl;
if(!$ilCtrl->getNextClass($this))
{
$to_hide = false;
switch($ilCtrl->getCmd())
{
case "applyFilter":
$this->resetOffset();
break;
case "resetFilter":
$this->resetOffset();
$this->resetFilter();
break;
case "hideSelected":
$to_hide = $_POST["item_id"];
break;
case "hide":
$to_hide = array((int)$_GET["hide"]);
break;
// page selector
default:
break;
}
if($to_hide)
{
$obj = $this->getFilterItemByPostVar("hide");
$value = array_unique(array_merge((array)$obj->getValue(), $to_hide));
$obj->setValue($value);
$obj->writeToSession();
}
if(isset($_REQUEST["tbltplcrt"]))
{
$ilCtrl->setParameter($this->parent_obj, "tbltplcrt", $_REQUEST["tbltplcrt"]);
}
if(isset($_REQUEST["tbltpldel"]))
{
$ilCtrl->setParameter($this->parent_obj, "tbltpldel", $_REQUEST["tbltpldel"]);
}
$ilCtrl->redirect($this->parent_obj, $this->parent_cmd);
}
else
{
// e.g. repository selector
}
}

+ Here is the call graph for this function:

ilLPTableBaseGUI::fillMetaCSV (   $a_csv)
protected

Add meta information to csv export.

Likely to be overwritten by derived class.

Parameters
object$a_csvcurrent file

Reimplemented from ilTable2GUI.

Definition at line 677 of file class.ilLPTableBaseGUI.php.

References getExportMeta().

{
foreach($this->getExportMeta() as $caption => $value)
{
$a_csv->addColumn(strip_tags($caption));
$a_csv->addColumn(strip_tags($value));
$a_csv->addRow();
}
$a_csv->addRow();
}

+ Here is the call graph for this function:

ilLPTableBaseGUI::fillMetaExcel (   $worksheet,
$a_row 
)
protected

Add meta information to excel export.

Likely to be overwritten by derived class.

Parameters
object$a_worksheetcurrent sheet
int$a_rowrow counter

Reimplemented from ilTable2GUI.

Definition at line 666 of file class.ilLPTableBaseGUI.php.

References getExportMeta().

{
foreach($this->getExportMeta() as $caption => $value)
{
$worksheet->write($a_row, 0, $caption);
$worksheet->write($a_row, 1, $value);
$a_row++;
}
$a_row++;
}

+ Here is the call graph for this function:

ilLPTableBaseGUI::formatSeconds (   $seconds,
  $a_shorten_zero = false 
)
protected

Definition at line 710 of file class.ilLPTableBaseGUI.php.

References $rest.

Referenced by buildValueScale(), ilLPObjectStatisticsDailyTableGUI\fillRow(), and ilLPObjectStatisticsTableGUI\fillRow().

{
$seconds = ((int)$seconds > 0) ? $seconds : 0;
if($a_shorten_zero && !$seconds)
{
return "-";
}
$hours = floor($seconds / 3600);
$rest = $seconds % 3600;
$minutes = floor($rest / 60);
$rest = $rest % 60;
if($rest)
{
$minutes++;
}
return sprintf("%dh%02dm",$hours,$minutes);
}

+ Here is the caller graph for this function:

ilLPTableBaseGUI::getCurrentFilter (   $as_query = false)

Definition at line 485 of file class.ilLPTableBaseGUI.php.

References $result, ilTable2GUI\getFilterItemByPostVar(), and IL_CAL_DATETIME.

Referenced by ilTrObjectUsersPropsTableGUI\getItems(), ilLPObjectStatisticsDailyTableGUI\getItems(), ilLPObjectStatisticsTableGUI\getItems(), ilLPProgressTableGUI\getItems(), ilLPObjectStatisticsLPTableGUI\getItems(), ilTrSummaryTableGUI\getItems(), and initFilter().

{
$result = array();
foreach($this->filter as $id => $value)
{
$item = $this->getFilterItemByPostVar($id);
switch($id)
{
case "title":
case "country":
case "gender":
case "city":
case "language":
case "login":
case "firstname":
case "lastname":
case "mark":
case "u_comment":
case "institution":
case "department":
case "title":
case "street":
case "zipcode":
case "email":
case "matriculation":
case "sel_country":
case "query":
case "type":
case "area":
if($value)
{
$result[$id] = $value;
}
break;
case "status":
if($value !== false)
{
$result[$id] = $value;
}
break;
case "user_total":
case "read_count":
case "percentage":
case "hide":
case "spent_seconds":
if(is_array($value) && implode("", $value))
{
$result[$id] = $value;
}
break;
case "registration":
case "create_date":
case "first_access":
case "last_access":
case 'status_changed':
if($value)
{
if($value["from"])
{
$result[$id]["from"] = $value["from"]->get(IL_CAL_DATETIME);
}
if($value["to"])
{
$result[$id]["to"] = $value["to"]->get(IL_CAL_DATETIME);
}
}
break;
case "birthday":
if($value)
{
if($value["from"])
{
$result[$id]["from"] = $value["from"]->get(IL_CAL_DATETIME);
$result[$id]["from"] = substr($result[$id]["from"], 0, -8)."00:00:00";
}
if($value["to"])
{
$result[$id]["to"] = $value["to"]->get(IL_CAL_DATETIME);
$result[$id]["to"] = substr($result[$id]["to"], 0, -8)."23:59:59";
}
}
break;
}
}
return $result;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::getExportMeta ( )
protected

Build export meta data.

Returns
array

Definition at line 629 of file class.ilLPTableBaseGUI.php.

References ilTableGUI\$data, $ilUser, $lng, ilLink\_getLink(), ilObjUser\_lookupFullname(), ilObject\_lookupOwner(), ilObject\_lookupType(), ilDatePresentation\formatDate(), IL_CAL_DATETIME, IL_CAL_UNIX, and ilDatePresentation\setUseRelativeDates().

Referenced by fillMetaCSV(), and fillMetaExcel().

{
global $lng, $ilObjDataCache, $ilUser, $ilClientIniFile;
/* see spec
Name of installation
Name of the course
Permalink to course
Owner of course object
Date of report generation
Reporting period
Name of person who generated the report.
*/
include_once './Services/Link/classes/class.ilLink.php';
$data = array();
$data[$lng->txt("trac_name_of_installation")] = $ilClientIniFile->readVariable('client', 'name');
if($this->obj_id)
{
$data[$lng->txt("trac_object_name")] = $ilObjDataCache->lookupTitle($this->obj_id);
if($this->ref_id)
{
$data[$lng->txt("trac_object_link")] = ilLink::_getLink($this->ref_id, ilObject::_lookupType($this->obj_id));
}
$data[$lng->txt("trac_object_owner")] = ilObjUser::_lookupFullname(ilObject::_lookupOwner($this->obj_id));
}
$data[$lng->txt("trac_report_date")] =
$data[$lng->txt("trac_report_owner")] = $ilUser->getFullName();
return $data;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::getMonthsFilter (   $a_short = false)
protected

Definition at line 791 of file class.ilLPTableBaseGUI.php.

References $lng, and $options.

Referenced by ilLPObjectStatisticsDailyTableGUI\initFilter(), ilLPObjectStatisticsTableGUI\initFilter(), and ilLPObjectStatisticsLPTableGUI\initFilter().

{
global $lng;
$options = array();
for($loop = 0; $loop < 10; $loop++)
{
$year = date("Y")-$loop;
$options[$year] = $year;
for($loop2 = 12; $loop2 > 0; $loop2--)
{
$month = str_pad($loop2, 2, "0", STR_PAD_LEFT);
if($year.$month <= date("Ym"))
{
if(!$a_short)
{
$caption = $year." / ".$lng->txt("month_".$month."_long");
}
else
{
$caption = $year."/".$month;
}
$options[$year."-".$month] = $caption;
}
}
}
return $options;
}

+ Here is the caller graph for this function:

ilLPTableBaseGUI::getMonthsYear (   $a_year = null,
  $a_short = false 
)
protected

Definition at line 820 of file class.ilLPTableBaseGUI.php.

References $lng.

Referenced by ilLPObjectStatisticsTableGUI\__construct(), ilLPObjectStatisticsTypesTableGUI\__construct(), ilLPObjectStatisticsLPTableGUI\__construct(), ilLPObjectStatisticsTableGUI\fillRow(), ilLPObjectStatisticsTypesTableGUI\fillRow(), ilLPObjectStatisticsLPTableGUI\fillRow(), ilLPObjectStatisticsTypesTableGUI\fillRowCSV(), ilLPObjectStatisticsTableGUI\fillRowCSV(), ilLPObjectStatisticsTypesTableGUI\fillRowExcel(), ilLPObjectStatisticsTableGUI\fillRowExcel(), ilLPObjectStatisticsTableGUI\getGraph(), ilLPObjectStatisticsTypesTableGUI\getGraph(), ilLPObjectStatisticsLPTableGUI\getGraph(), and ilLPObjectStatisticsLPTableGUI\getItems().

{
global $lng;
if(!$a_year)
{
$a_year = date("Y");
}
$all = array();
for($loop = 1; $loop<13; $loop++)
{
$month = str_pad($loop, 2, "0", STR_PAD_LEFT);
if($a_year."-".$month <= date("Y-m"))
{
if(!$a_short)
{
$caption = $lng->txt("month_".$month."_long");
}
else
{
$caption = $lng->txt("month_".$month."_short");
}
$all[$a_year."-".$month] = $caption;
}
}
return $all;
}

+ Here is the caller graph for this function:

ilLPTableBaseGUI::getPossibleTypes (   $a_split_learning_resources = false,
  $a_include_digilib = false,
  $a_allow_undefined_lp = false 
)
protected

Get possible subtypes.

Parameters
bool$a_split_learning_resources
bool$a_include_digilib
bool$a_allow_undefined_lp

Definition at line 334 of file class.ilLPTableBaseGUI.php.

References $lng, $options, IL_COMP_SERVICE, ilRepositoryObjectPluginSlot\isTypePluginWithLP(), and ilPlugin\lookupTxt().

Referenced by ilLPObjectStatisticsDailyTableGUI\initFilter(), ilLPObjectStatisticsTableGUI\initFilter(), and initFilter().

{
global $lng, $ilPluginAdmin;
$options = array();
if($a_split_learning_resources)
{
$options['lm'] = $lng->txt('objs_lm');
$options['sahs'] = $lng->txt('objs_sahs');
$options['htlm'] = $lng->txt('objs_htlm');
if($a_include_digilib)
{
$options['dbk'] = $lng->txt('objs_dbk');
}
}
else
{
$options['lres'] = $lng->txt('learning_resources');
}
$options['crs'] = $lng->txt('objs_crs');
$options['grp'] = $lng->txt('objs_grp');
$options['exc'] = $lng->txt('objs_exc');
$options['tst'] = $lng->txt('objs_tst');
if($a_allow_undefined_lp)
{
$options["file"] = $lng->txt("objs_file");
$options["webr"] = $lng->txt("objs_webr");
$options["wiki"] = $lng->txt("objs_wiki");
}
// repository plugins (currently only active)
include_once 'Services/Repository/classes/class.ilRepositoryObjectPluginSlot.php';
$pl_names = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, "Repository", "robj");
foreach ($pl_names as $pl)
{
$pl_id = $ilPluginAdmin->getId(IL_COMP_SERVICE, "Repository", "robj", $pl);
{
$options[$pl_id] = ilPlugin::lookupTxt("rep_robj", $pl_id, "objs_".$pl_id);
}
}
asort($options);
return $options;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::getSelectableUserColumns (   $a_in_course = false,
  $a_in_group = false 
)
protected

Definition at line 849 of file class.ilLPTableBaseGUI.php.

References $ilSetting, $lng, ilUserDefinedFields\_getInstance(), ilPrivacySettings\_getInstance(), ilObjUserTracking\EXTENDED_DATA_LAST_ACCESS, ilObjUserTracking\EXTENDED_DATA_READ_COUNT, ilObjUserTracking\EXTENDED_DATA_SPENT_SECONDS, ilObjectLP\getInstance(), isPercentageAvailable(), and UDF_TYPE_WYSIWYG.

Referenced by ilTrObjectUsersPropsTableGUI\getSelectableColumns(), and ilTrMatrixTableGUI\getSelectableColumns().

{
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);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::initFilter (   $a_split_learning_resources = false,
  $a_include_no_status_filter = true 
)

Init filter.

Parameters
bool$a_split_learning_resources

Definition at line 206 of file class.ilLPTableBaseGUI.php.

References $lng, $options, $si, ilTable2GUI\addFilterItem(), getCurrentFilter(), getPossibleTypes(), ilTable2GUI\setDisableFilterHiding(), ilTextInputGUI\setMaxLength(), and ilRepositorySelectorInputGUI\setSelectText().

{
global $lng, $ilObjDataCache;
$this->setDisableFilterHiding(true);
// object type selection
include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
$si = new ilSelectInputGUI($this->lng->txt("obj_type"), "type");
$si->setOptions($this->getPossibleTypes($a_split_learning_resources));
$this->addFilterItem($si);
$si->readFromSession();
if(!$si->getValue())
{
$si->setValue("crs");
}
$this->filter["type"] = $si->getValue();
// hidden items
include_once("./Services/Form/classes/class.ilMultiSelectInputGUI.php");
$msi = new ilMultiSelectInputGUI($lng->txt("trac_filter_hidden"), "hide");
$this->addFilterItem($msi);
$msi->readFromSession();
$this->filter["hide"] = $msi->getValue();
if($this->filter["hide"])
{
// create options from current value
$types = $this->getCurrentFilter(true);
$type = $types["type"];
$options = array();
if($type == 'lres')
{
$type = array('lm','sahs','htlm','dbk');
}
else
{
$type = array($type);
}
foreach($this->filter["hide"] as $obj_id)
{
if(in_array($ilObjDataCache->lookupType($obj_id), $type))
{
$options[$obj_id] = $ilObjDataCache->lookupTitle($obj_id);
}
}
$msi->setOptions($options);
}
// title/description
include_once("./Services/Form/classes/class.ilTextInputGUI.php");
$ti = new ilTextInputGUI($lng->txt("trac_title_description"), "query");
$ti->setMaxLength(64);
$ti->setSize(20);
$this->addFilterItem($ti);
$ti->readFromSession();
$this->filter["query"] = $ti->getValue();
// repository area selection
include_once("./Services/Form/classes/class.ilRepositorySelectorInputGUI.php");
$rs = new ilRepositorySelectorInputGUI($lng->txt("trac_filter_area"), "area");
$rs->setSelectText($lng->txt("trac_select_area"));
$this->addFilterItem($rs);
$rs->readFromSession();
$this->filter["area"] = $rs->getValue();
// hide "not started yet"
if($a_include_no_status_filter)
{
include_once("./Services/Form/classes/class.ilCheckboxInputGUI.php");
$cb = new ilCheckboxInputGUI($lng->txt("trac_filter_has_status"), "status");
$this->addFilterItem($cb);
$cb->readFromSession();
$this->filter["status"] = $cb->getChecked();
}
}

+ Here is the call graph for this function:

ilLPTableBaseGUI::isPercentageAvailable (   $a_obj_id)
protected

Definition at line 577 of file class.ilLPTableBaseGUI.php.

References ilObjectLP\getInstance(), ilLPObjSettings\LP_MODE_SCORM, ilLPObjSettings\LP_MODE_TEST_PASSED, ilLPObjSettings\LP_MODE_TLT, and ilLPObjSettings\LP_MODE_VISITS.

Referenced by ilLPProgressTableGUI\fillRow(), ilTrUserObjectsPropsTableGUI\fillRow(), ilTrSummaryTableGUI\fillRow(), ilTrSummaryTableGUI\getItems(), and getSelectableUserColumns().

{
// :TODO:
$olp = ilObjectLP::getInstance($a_obj_id);
$mode = $olp->getCurrentMode();
if(in_array($mode, array(ilLPObjSettings::LP_MODE_TLT,
// ilLPObjSettings::LP_MODE_OBJECTIVES,
{
return true;
}
return false;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::parseTitle (   $a_obj_id,
  $action,
  $a_user_id = false 
)
protected

Definition at line 593 of file class.ilLPTableBaseGUI.php.

References $ilUser, $lng, ilObjectLP\getInstance(), ilObjectFactory\getInstanceByObjId(), ilTable2GUI\setDescription(), and ilTable2GUI\setTitle().

Referenced by ilTrSummaryTableGUI\__construct(), ilTrUserObjectsPropsTableGUI\__construct(), ilTrMatrixTableGUI\__construct(), and ilTrObjectUsersPropsTableGUI\__construct().

{
global $lng, $ilObjDataCache, $ilUser;
$user = "";
if($a_user_id)
{
if($a_user_id != $ilUser->getId())
{
$a_user = ilObjectFactory::getInstanceByObjId($a_user_id);
}
else
{
$a_user = $ilUser;
}
$user .= ", ".$a_user->getFullName(); // " [".$a_user->getLogin()."]";
}
if($a_obj_id != ROOT_FOLDER_ID)
{
$this->setTitle($lng->txt($action).": ".$ilObjDataCache->lookupTitle($a_obj_id).$user);
$olp = ilObjectLP::getInstance($a_obj_id);
$this->setDescription($this->lng->txt('trac_mode').": ".$olp->getModeText($olp->getCurrentMode()));
}
else
{
$this->setTitle($lng->txt($action));
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::parseValue (   $id,
  $value,
  $type 
)
protected

Reimplemented in ilTrSummaryTableGUI.

Definition at line 384 of file class.ilLPTableBaseGUI.php.

References $lng, $path, ilLearningProgressBaseGUI\_getImagePathForStatus(), ilLearningProgressBaseGUI\_getStatusText(), ilFormat\_secondsToString(), ilDatePresentation\formatDate(), IL_CAL_DATE, IL_CAL_DATETIME, IL_CAL_UNIX, and ilUtil\img().

Referenced by ilTrObjectUsersPropsTableGUI\fillRow(), ilTrMatrixTableGUI\fillRow(), ilTrObjectUsersPropsTableGUI\fillRowCSV(), ilTrUserObjectsPropsTableGUI\fillRowCSV(), ilTrMatrixTableGUI\fillRowCSV(), ilTrObjectUsersPropsTableGUI\fillRowExcel(), ilTrUserObjectsPropsTableGUI\fillRowExcel(), and ilTrMatrixTableGUI\fillRowExcel().

{
global $lng;
// get rid of aggregation
$pos = strrpos($id, "_");
if($pos !== false)
{
$function = strtoupper(substr($id, $pos+1));
if(in_array($function, array("MIN", "MAX", "SUM", "AVG", "COUNT")))
{
$id = substr($id, 0, $pos);
}
}
if(trim($value) == "" && $id != "status")
{
if($id == "title" &&
get_class($this) != "ilTrObjectUsersPropsTableGUI" &&
get_class($this) != "ilTrMatrixTableGUI")
{
return "--".$lng->txt("none")."--";
}
return " ";
}
switch($id)
{
case "first_access":
case "create_date":
case 'status_changed':
break;
case "last_access":
break;
case "birthday":
break;
case "spent_seconds":
if(in_array($type, array("exc")))
{
$value = "-";
}
else
{
include_once("./Services/Utilities/classes/class.ilFormat.php");
$value = ilFormat::_secondsToString($value, ($value < 3600 ? true : false)); // #14858
}
break;
case "percentage":
/* :TODO:
if(in_array(strtolower($this->status_class),
array("illpstatusmanual", "illpstatusscormpackage", "illpstatustestfinished")) ||
$type == "exc"))
*/
if(false)
{
$value = "-";
}
else
{
$value = $value."%";
}
break;
case "mark":
if(in_array($type, array("lm", "dbk")))
{
$value = "-";
}
break;
case "gender":
$value = $lng->txt("gender_".$value);
break;
case "status":
include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
$value = ilUtil::img($path, $text);
break;
case "language":
$lng->loadLanguageModule("meta");
$value = $lng->txt("meta_l_".$value);
break;
case "sel_country":
$value = $lng->txt("meta_c_".$value);
break;
}
return $value;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::searchFilterListener (   $a_ref_id,
  $a_data 
)

Listener for SearchResultFilter Checks wheather the object is hidden and mode is not LP_MODE_DEACTIVATED public.

Definition at line 186 of file class.ilLPTableBaseGUI.php.

References ilObjectLP\getInstance().

{
if(is_array($this->filter["hide"]) && in_array($a_data["obj_id"], $this->filter["hide"]))
{
return false;
}
$olp = ilObjectLP::getInstance($a_data["obj_id"]);
if(get_class($olp) != "ilObjectLP" && // #13654 - LP could be unsupported
!$olp->isActive())
{
return false;
}
return true;
}

+ Here is the call graph for this function:

ilLPTableBaseGUI::searchObjects ( array  $filter,
  $permission,
array  $preset_obj_ids = null 
)
protected

Search objects that match current filters.

Parameters
array$filter
string$permission
Returns
array

Definition at line 108 of file class.ilLPTableBaseGUI.php.

References $res, QP_COMBINATION_AND, and ilUtil\sendFailure().

Referenced by ilLPObjectStatisticsDailyTableGUI\getItems(), ilLPObjectStatisticsTableGUI\getItems(), ilLPProgressTableGUI\getItems(), ilLPObjectStatisticsLPTableGUI\getItems(), and ilTrSummaryTableGUI\getItems().

{
global $ilObjDataCache;
/* for performance issues: fast search WITHOUT any permission checks
include_once "Services/Tracking/classes/class.ilTrQuery.php";
return ilTrQuery::searchObjects($filter["type"], $filter["query"],
$filter["area"], $filter["hide"], $preset_obj_ids);
*/
include_once './Services/Search/classes/class.ilQueryParser.php';
$query_parser =& new ilQueryParser($filter["query"]);
$query_parser->setMinWordLength(0);
$query_parser->setCombination(QP_COMBINATION_AND);
$query_parser->parse();
if(!$query_parser->validate())
{
// echo $query_parser->getMessage();
return false;
}
if($filter["type"] == "lres")
{
$filter["type"] = array('lm','sahs','htlm','dbk');
}
else
{
$filter["type"] = array($filter["type"]);
}
include_once 'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
$object_search =& new ilLikeObjectSearch($query_parser);
$object_search->setFilter($filter["type"]);
if($preset_obj_ids)
{
$object_search->setIdFilter($preset_obj_ids);
}
$res =& $object_search->performSearch();
if($permission)
{
$res->setRequiredPermission($permission);
}
$res->setMaxHits(1000);
$res->addObserver($this, "searchFilterListener");
if(!$this->filter["area"])
{
$res->filter(ROOT_FOLDER_ID, false);
}
else
{
$res->filter($this->filter["area"], false);
}
$objects = array();
foreach($res->getResults() as $obj_data)
{
$objects[$obj_data['obj_id']][] = $obj_data['ref_id'];
}
// Check if search max hits is reached
if($res->isLimitReached())
{
$this->lng->loadLanguageModule("search");
ilUtil::sendFailure(sprintf($this->lng->txt("search_limit_reached"), 1000));
}
return $objects ? $objects : array();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilLPTableBaseGUI::showTimingsWarning (   $a_ref_id,
  $a_user_id 
)
protected

Definition at line 688 of file class.ilLPTableBaseGUI.php.

References ilTimingCache\_getTimings(), and ilTimingCache\_showWarning().

Referenced by ilLPProgressTableGUI\fillRow(), ilTrUserObjectsPropsTableGUI\fillRow(), ilTrObjectUsersPropsTableGUI\fillRow(), and ilTrMatrixTableGUI\fillRow().

{
include_once 'Modules/Course/classes/Timings/class.ilTimingCache.php';
if(ilTimingCache::_showWarning($a_ref_id, $a_user_id))
{
$timings = ilTimingCache::_getTimings($a_ref_id);
if($timings['item']['changeable'] && $timings['user'][$a_user_id]['end'])
{
$end = $timings['user'][$a_user_id]['end'];
}
else if ($timings['item']['suggestion_end'])
{
$end = $timings['item']['suggestion_end'];
}
else
{
$end = true;
}
return $end;
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Field Documentation

ilLPTableBaseGUI::$anonymized
protected

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

ilLPTableBaseGUI::$filter
protected

Definition at line 17 of file class.ilLPTableBaseGUI.php.

Referenced by ilTrSummaryTableGUI\getItems().


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