/** * save * * @param string $a_mode values: create | edit */ public function save($a_mode = "create") { global $ilTabs; if (!ilObjDataCollection::_checkAccess($this->obj_id)) { $this->accessDenied(); return; } $ilTabs->activateTab("id_fields"); $this->initForm($a_mode); if ($this->checkInput($a_mode)) { if ($a_mode != "update") { $this->table = ilDataCollectionCache::getTableCache(); } elseif ($this->table_id) { $this->table = ilDataCollectionCache::getTableCache($this->table_id); } else { $this->ctrl->redirectByClass("ildatacollectionfieldeditgui", "listFields"); } $this->table->setTitle($this->form->getInput("title")); $this->table->setObjId($this->obj_id); $this->table->setIsVisible($this->form->getInput("is_visible")); $this->table->setAddPerm($this->form->getInput("add_perm")); $this->table->setEditPerm($this->form->getInput("edit_perm")); $this->table->setDeletePerm($this->form->getInput("delete_perm")); $this->table->setEditByOwner($this->form->getInput("edit_by_owner")); $this->table->setViewOwnRecordsPerm($this->form->getInput('view_own_records_perm')); $this->table->setExportEnabled($this->form->getInput("export_enabled")); $this->table->setDefaultSortField($this->form->getInput("default_sort_field")); $this->table->setDefaultSortFieldOrder($this->form->getInput("default_sort_field_order")); $this->table->setPublicCommentsEnabled($this->form->getInput('public_comments')); $this->table->setLimited($this->form->getInput("limited")); $this->table->setDescription($this->form->getInput('description')); $limit_start = $this->form->getInput("limit_start"); $limit_end = $this->form->getInput("limit_end"); $this->table->setLimitStart($limit_start["date"] . " " . $limit_start["time"]); $this->table->setLimitEnd($limit_end["date"] . " " . $limit_end["time"]); if (!$this->table->hasPermissionToAddTable($this->parent_object->ref_id)) { $this->accessDenied(); return; } if ($a_mode == "update") { $this->table->doUpdate(); ilUtil::sendSuccess($this->lng->txt("dcl_msg_table_edited"), true); $this->ctrl->redirectByClass("ildatacollectiontableeditgui", "edit"); } else { $this->table->doCreate(); ilUtil::sendSuccess($this->lng->txt("dcl_msg_table_created"), true); $this->ctrl->setParameterByClass("ildatacollectionfieldlistgui", "table_id", $this->table->getId()); $this->ctrl->redirectByClass("ildatacollectionfieldlistgui", "listFields"); } } else { $this->form->setValuesByPost(); $this->tpl->setContent($this->form->getHTML()); } }