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());
     }
 }