コード例 #1
0
 /**
  * getFieldValues
  */
 public function getValues()
 {
     $values = array('title' => $this->table->getTitle(), 'add_perm' => $this->table->getAddPerm(), 'edit_perm' => $this->table->getEditPerm(), 'delete_perm' => $this->table->getDeletePerm(), 'edit_by_owner' => $this->table->getEditByOwner(), 'export_enabled' => $this->table->getExportEnabled(), 'limited' => $this->table->getLimited(), 'limit_start' => array("date" => substr($this->table->getLimitStart(), 0, 10), "time" => substr($this->table->getLimitStart(), -8)), 'limit_end' => array("date" => substr($this->table->getLimitEnd(), 0, 10), "time" => substr($this->table->getLimitEnd(), -8)), 'is_visible' => $this->table->getIsVisible(), 'default_sort_field' => $this->table->getDefaultSortField(), 'default_sort_field_order' => $this->table->getDefaultSortFieldOrder(), 'description' => $this->table->getDescription(), 'public_comments' => $this->table->getPublicCommentsEnabled(), 'view_own_records_perm' => $this->table->getViewOwnRecordsPerm());
     if (!$this->table->getLimitStart()) {
         $values['limit_start'] = NULL;
     }
     if (!$this->table->getLimitEnd()) {
         $values['limit_end'] = NULL;
     }
     $this->form->setValuesByArray($values);
 }
コード例 #2
0
 /**
  * @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();
     }
 }