/** * Add a database to the knowledgebase */ public function updateDatabaseAction() { $id = $this->request->getParam('id'); $title = $this->request->requireParam('title', 'You must specify a title'); $link = $this->request->requireParam('link', 'You must specify a link'); $description = $this->request->getParam('description'); $type = $this->request->getParam('type'); $coverage = $this->request->getParam('coverage'); $active = (bool) $this->request->getParam('active', false, false); $proxy = (bool) $this->request->getParam('proxy', false, false); $date_new_expiry = $this->request->getParam('date_new_expiry'); $date_trial_expiry = $this->request->getParam('date_trial_expiry'); $keywords = $this->request->getParam('keywords'); $creator = $this->request->getParam('creator'); $publisher = $this->request->getParam('publisher'); $search_hints = $this->request->getParam('search_hints'); $link_guide = $this->request->getParam('link_guide'); $link_copyright = $this->request->getParam('link_copyright'); $language = $this->request->getParam('language'); $notes = $this->request->getParam('notes'); $alternate_titles = $this->request->getParam('alternate_titles'); // if an id came in, then we are editing // rather than adding, so fetch the database $database = null; if ($id != "") { $database = $this->knowledgebase->getDatabase($id); } else { $database = new Database(); } $database->setType($type); $database->setCoverage($coverage); $database->setCreator($creator); $database->setDescription($description); $database->setLanguage($language); $database->setLink($link); $database->setLinkGuide($link_guide); $database->setNotes($notes); $database->setPublisher($publisher); $database->setSearchHints($search_hints); $database->setTitle($title); $database->setAlternateTitles($alternate_titles); $database->setKeywords($keywords); if ($date_new_expiry != null) { $date_time = new \DateTime($date_new_expiry); $database->setDateNewExpiry($date_time); } if ($date_trial_expiry != null) { $date_time = new \DateTime($date_trial_expiry); $database->setDateTrialExpiry($date_time); } else { $database->removeDateTrialExpiry(); } $database->setProxy($proxy); $database->setActive($active); $this->knowledgebase->updateDatabase($database); $this->clearDatabaseCache(); $params = array('controller' => $this->request->getParam('controller'), 'action' => 'database', 'id' => $database->getId()); return $this->redirectTo($params); }