/** * Returns all fields of this table including the standard fields * @return ilDataCollectionField[] */ public function getFields() { $this->loadFields(); if ($this->stdFields == NULL) { $this->stdFields = ilDataCollectionStandardField::_getStandardFields($this->id); } $fields = array_merge($this->fields, $this->stdFields); $this->sortByOrder($fields); return $fields; }
/** * @param ilDataCollectionRecordListGUI $a_parent_obj * @param string $a_parent_cmd * @param ilDataCollectionTable $table * @param int $mode */ public function __construct(ilDataCollectionRecordListGUI $a_parent_obj, $a_parent_cmd, ilDataCollectionTable $table, $mode = ilDataCollectionRecordListGUI::MODE_VIEW) { global $lng, $ilCtrl; $identifier = 'dcl_rl' . $table->getId(); $this->setPrefix($identifier); $this->setFormName($identifier); $this->setId($identifier); parent::__construct($a_parent_obj, $a_parent_cmd); $this->table = $table; $this->parent_obj = $a_parent_obj; $this->setRowTemplate("tpl.record_list_row.html", "Modules/DataCollection"); $this->mode = $mode; // Setup columns and sorting columns if ($this->mode == ilDataCollectionRecordListGUI::MODE_MANAGE) { // Add checkbox columns $this->addColumn("", "", "1", true); $this->setSelectAllCheckbox("record_ids[]"); $this->addMultiCommand("confirmDeleteRecords", $lng->txt('dcl_delete_records')); } if (ilDataCollectionRecordViewGUI::hasTableValidViewDefinition($this->table)) { $this->addColumn("", "_front", '15px'); } $this->numeric_fields = array(); foreach ($this->table->getVisibleFields() as $field) { $title = $field->getTitle(); $sort_field = $title; if ($field->getId() == 'comments') { $sort_field = 'n_comments'; $this->numeric_fields[] = $title; } $this->addColumn($title, $sort_field); if ($field->getLearningProgress()) { $this->addColumn($lng->txt("dcl_status"), "_status_" . $field->getTitle()); } if ($field->getDatatypeId() == ilDataCollectionDatatype::INPUTFORMAT_NUMBER) { $this->numeric_fields[] = $title; } } $this->addColumn($lng->txt("actions"), "", "30px"); $this->setTopCommands(true); $this->setEnableHeader(true); $this->setShowRowsSelector(true); $this->setShowTemplates(true); $this->setEnableHeader(true); $this->setEnableTitle(true); $this->setDefaultOrderDirection($this->table->getDefaultSortFieldOrder()); // Set a default sorting? $default_sort_title = 'id'; if ($fieldId = $this->table->getDefaultSortField()) { if (ilDataCollectionStandardField::_isStandardField($fieldId)) { /** @var $stdField ilDataCollectionStandardField */ foreach (ilDataCollectionStandardField::_getStandardFields($this->table->getId()) as $stdField) { if ($stdField->getId() == $fieldId) { $default_sort_title = $stdField->getTitle(); break; } } } else { $default_sort_title = ilDataCollectionCache::getFieldCache($fieldId)->getTitle(); } $this->setDefaultOrderField($default_sort_title); } $this->setFormAction($ilCtrl->getFormAction($a_parent_obj, "applyFilter")); $this->initFilter(); $this->setStyle('table', $this->getStyle('table') . ' ' . 'dcl_record_list'); }
/** * Returns the fields all datacollections have by default. * * @return ilDataCollectionStandardField[] */ public function getStandardFields() { if ($this->stdFields == NULL) { $this->stdFields = ilDataCollectionStandardField::_getStandardFields($this->id); // Don't return comments as field if this feature is not activated in the settings if (!$this->getPublicCommentsEnabled()) { /** @var $field ilDataCollectionStandardField */ foreach ($this->stdFields as $k => $field) { if ($field->getId() == 'comments') { unset($this->stdFields[$k]); break; } } } } return $this->stdFields; }