function updateTimings() { include_once 'Services/Object/classes/class.ilObjectActivation.php'; global $ilAccess, $ilErr; if (!$ilAccess->checkAccess('write', '', $this->container_obj->getRefId())) { $ilErr->raiseError($this->lng->txt('msg_no_perm_write'), $ilErr->WARNING); } $this->failed = array(); // Validate $_POST['item'] = is_array($_POST['item']) ? $_POST['item'] : array(); $all_items = array(); foreach ($_POST['item'] as $ref_id => $data) { $item_obj = new ilObjectActivation(); $old_data = ilObjectActivation::getItem($ref_id); $item_obj->setTimingType($_POST['item_active'][$ref_id]['active'] ? ilObjectActivation::TIMINGS_PRESETTING : ilObjectActivation::TIMINGS_DEACTIVATED); $item_obj->setTimingStart($old_data['timing_start']); $item_obj->setTimingEnd($old_data['timing_end']); $item_obj->setSuggestionStart($this->__toUnix($data["sug_start"])); // add duration $data['sug_start']['d'] += abs($data['duration_a']); $item_obj->setSuggestionEnd($this->__toUnix($data['sug_start'], array('h' => 23, 'm' => 55))); $item_obj->setEarliestStart(time()); $item_obj->setLatestEnd($this->__toUnix($data['lim_end'], array('h' => 23, 'm' => 55))); $item_obj->toggleVisible($old_data['visible']); $item_obj->toggleChangeable($_POST['item_change'][$ref_id]['change']); if (!$item_obj->validateActivation()) { $this->failed[$ref_id] = $old_data['title']; } $all_items[$ref_id] =& $item_obj; unset($item_obj); } if (count($this->failed)) { $message = $this->lng->txt('crs_timings_update_error'); $message .= "<br />" . $this->lng->txt('crs_materials') . ': '; $message .= implode(',', $this->failed); ilUtil::sendFailure($message); $this->editTimings(); return false; } // No do update foreach ($all_items as $ref_id => $item_obj_new) { $item_obj_new->update($ref_id); } ilUtil::sendSuccess($this->lng->txt('settings_saved')); $this->editTimings(); return false; }
/** * update * * @access public * @return */ public function update() { global $ilErr, $ilAccess, $tpl, $ilUser; // #19997 - see ilObjectListGUI::insertTimingsCommand() if (!$ilAccess->checkAccess('write', '', $this->parent_ref_id) && !$ilAccess->checkAccess('write', '', $this->getItemId())) { $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->MESSAGE); } $this->initFormEdit(); if ($this->form->checkInput()) { include_once "Services/Object/classes/class.ilObjectActivation.php"; $activation = new ilObjectActivation(); $activation->setTimingType($this->form->getInput('timing_type')); $date = $this->form->getInput('timing_start'); $date = new ilDateTime($date['date'] . ' ' . $date['time'], IL_CAL_DATETIME, $ilUser->getTimeZone()); $activation->setTimingStart($date->get(IL_CAL_UNIX)); $date = $this->form->getInput('timing_end'); $date = new ilDateTime($date['date'] . ' ' . $date['time'], IL_CAL_DATETIME, $ilUser->getTimeZone()); $activation->setTimingEnd($date->get(IL_CAL_UNIX)); $date = $this->form->getInput('sug_start'); $date = new ilDate($date['date'], IL_CAL_DATE); $activation->setSuggestionStart($date->get(IL_CAL_UNIX)); $date = $this->form->getInput('sug_end'); $date = new ilDate($date['date'], IL_CAL_DATE); $activation->setSuggestionEnd($date->get(IL_CAL_UNIX)); $date = $this->form->getInput('early_start'); $date = new ilDate($date['date'], IL_CAL_DATE); $activation->setEarliestStart($date->get(IL_CAL_UNIX)); $date = $this->form->getInput('late_end'); $date = new ilDate($date['date'], IL_CAL_DATE); $activation->setLatestEnd($date->get(IL_CAL_UNIX)); $activation->toggleVisible((bool) $this->form->getInput('visible')); $activation->toggleChangeable((bool) $this->form->getInput('changeable')); if (!$activation->validateActivation()) { ilUtil::sendFailure($ilErr->getMessage()); $this->form->setValuesByPost(); $tpl->setContent($this->form->getHTML()); return false; } else { $activation->update($this->getItemId()); ilUtil::sendSuccess($this->lng->txt('settings_saved'), true); $this->ctrl->redirect($this, "edit"); } } else { $this->form->setValuesByPost(); $tpl->setContent($this->form->getHTML()); } }