/** * @param object $worksheet * @param int $row * @param array $record */ public function fillRowExcel($worksheet, &$row, $record) { $col = 0; foreach ($this->table->getFields() as $field) { if ($field->getExportable()) { $worksheet->writeString($row, $col, $record["_record"]->getRecordFieldExportValue($field->getId())); $col++; } } }
public function passThroughFilter(array $filter) { $pass = true; $this->loadTable(); foreach ($this->table->getFields() as $field) { if (!ilDataCollectionDatatype::passThroughFilter($this, $field, $filter["filter_" . $field->getId()])) { $pass = false; } } return $pass; }
/** * Set values from object to form * * @return bool */ public function setFormValues() { //Get Record-Values $record_obj = ilDataCollectionCache::getRecordCache($this->record_id); //Get Table Field Definitions $allFields = $this->table->getFields(); $values = array(); foreach ($allFields as $field) { $value = $record_obj->getRecordFieldFormInput($field->getId()); $values['field_' . $field->getId()] = $value; } $values['record_id'] = $record_obj->getId(); $this->form->setValuesByArray($values); return true; }
/** * @param ilDataCollectionTable $original */ public function cloneStructure(ilDataCollectionTable $original) { $this->setTitle($original->getTitle()); $this->setDescription($original->getDescription()); $this->setIsVisible($original->getIsVisible()); $this->setEditByOwner($original->getEditByOwner()); $this->setAddPerm($original->getAddPerm()); $this->setEditPerm($original->getEditPerm()); $this->setDeletePerm($original->getDeletePerm()); $this->setLimited($original->getLimited()); $this->setLimitStart($original->getLimitStart()); $this->setLimitEnd($original->getLimitEnd()); $this->setViewOwnRecordsPerm($original->getViewOwnRecordsPerm()); $this->setExportEnabled($original->getExportEnabled()); $this->setPublicCommentsEnabled($original->getPublicCommentsEnabled()); $this->setDefaultSortFieldOrder($original->getDefaultSortFieldOrder()); $this->doCreate(); // reset stdFields to get new for the created object $default_sort_field = 0; // Clone standard-fields $org_std_fields = $original->getStandardFields(); foreach ($this->getStandardFields() as $element_key => $std_field) { $std_field->cloneStructure($org_std_fields[$element_key]); if ($std_field->getId() == $original->getDefaultSortField()) { $default_sort_field = $std_field->getId(); } } // Clone fields $new_fields = array(); foreach ($original->getFields() as $orig_field) { if (!$orig_field->isStandardField()) { $new_field = new ilDataCollectionField(); $new_field->setTableId($this->getId()); $new_field->cloneStructure($orig_field->getId()); $new_fields[$orig_field->getId()] = $new_field; if ($orig_field->getId() == $original->getDefaultSortField()) { $default_sort_field = $new_field->getId(); } } } $this->setDefaultSortField($default_sort_field); $this->doUpdate(); //TODO: Find better way to copy data (include referenced data) // Clone Records with recordfields /*foreach($original->getRecords() as $orig_record){ $new_record = new ilDataCollectionRecord(); $new_record->setTableId($this->getId()); $new_record->cloneStructure($orig_record->getId(), $new_fields); }*/ if ($old_view_id = ilDataCollectionRecordViewViewdefinition::getIdByTableId($original->getId())) { $old_view = new ilDataCollectionRecordViewViewdefinition($old_view_id); $old_view->setTableId($original->getId()); $viewdef = new ilDataCollectionRecordViewViewdefinition(); $viewdef->setTableId($this->id); $viewdef->setXMLContent($old_view->getXMLContent(false)); $viewdef->create(); } }