static function _getStandardFields($table_id)
 {
     $stdFields = array();
     foreach (self::_getStandardFieldsAsArray() as $array) {
         $array["table_id"] = $table_id;
         $array["datatype_id"] = self::_getDatatypeForId($array["id"]);
         $field = new ilDataCollectionStandardField();
         $field->buildFromDBRecord($array);
         array_push($stdFields, $field);
     }
     return $stdFields;
 }
 /**
  * Get datatype_id
  *
  * @return int
  */
 public function getDatatypeId()
 {
     if ($this->isStandardField()) {
         return ilDataCollectionStandardField::_getDatatypeForId($this->getId());
     }
     return $this->datatypeId;
 }
 /**
  * @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 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;
 }
 public function getRecordFieldFormInput($field_id)
 {
     $this->loadRecordFields();
     if (ilDataCollectionStandardField::_isStandardField($field_id)) {
         return $this->getStandardField($field_id);
     } else {
         return $this->recordfields[$field_id]->getFormInput();
     }
 }
 /**
  * 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;
 }