/** * save new calendar * * @access protected */ protected function save() { global $ilUser; include_once './Services/Calendar/classes/class.ilCalendarCategory.php'; $category = new ilCalendarCategory(0); $category->setTitle(ilUtil::stripSlashes($_POST['title'])); $category->setColor('#' . ilUtil::stripSlashes($_POST['color'])); $category->setLocationType((int) $_POST['type_rl']); $category->setRemoteUrl(ilUtil::stripSlashes($_POST['remote_url'])); $category->setRemoteUser(ilUtil::stripSlashes($_POST['remote_user'])); $category->setRemotePass(ilUtil::stripSlashes($_POST['remote_pass'])); if (isset($_POST['type']) and $_POST['type'] == ilCalendarCategory::TYPE_GLOBAL) { $category->setType((int) $_POST['type']); $category->setObjId(0); } else { $category->setType(ilCalendarCategory::TYPE_USR); $category->setObjId($ilUser->getId()); } if (!$category->validate()) { ilUtil::sendFailure($this->lng->txt('err_check_input')); $this->add(); return false; } $category->add(); try { if ($category->getLocationType() == ilCalendarCategory::LTYPE_REMOTE) { $this->doSynchronisation($category); } } catch (Exception $e) { // Delete calendar if creation failed $category->delete(); ilUtil::sendFailure($e->getMessage()); $this->manage(); return true; } ilUtil::sendSuccess($this->lng->txt('settings_saved'), true); // $this->ctrl->returnToParent($this); $this->manage(true); }