function &_getTimings($a_ref_id) { static $cache = array(); if (isset($cache[$a_ref_id])) { return $cache[$a_ref_id]; } $cache[$a_ref_id]['item'] = ilObjectActivation::getItem($a_ref_id); $cache[$a_ref_id]['user'] = ilTimingPlaned::_getPlanedTimingsByItem($a_ref_id); return $cache[$a_ref_id]; }
function updateUserTimings() { global $ilUser, $ilObjDataCache; include_once 'Modules/Course/classes/Timings/class.ilTimingPlaned.php'; // Validate $this->invalid = array(); foreach ($_POST['item'] as $ref_id => $data) { $tmp_planed = new ilTimingPlaned($ref_id, $ilUser->getId()); $tmp_planed->setPlanedStartingTime($this->__toUnix($data['own_start'])); if (isset($data['duration'])) { $data['own_start']['d'] += $data['duration']; $tmp_planed->setPlanedEndingTime($this->__toUnix($data['own_start'], array('h' => 23, 'm' => 55))); } else { $tmp_planed->setPlanedEndingTime($this->__toUnix($data['own_start']), array('h' => 23, 'm' => 55)); } if (!$tmp_planed->validate()) { $this->invalid[$ref_id] = $ilObjDataCache->lookupTitle($ilObjDataCache->lookupObjId($ref_id)); } $all_items[] = $tmp_planed; } if (count($this->invalid)) { $message = $this->lng->txt('crs_timings_update_error'); $message .= "<br />" . $this->lng->txt('crs_materials') . ': '; $message .= implode(',', $this->invalid); ilUtil::sendFailure($message); $this->editUserTimings(); return false; } foreach ($all_items as $new_item_obj) { $new_item_obj->update(); } ilUtil::sendSuccess($this->lng->txt('settings_saved')); $this->editUserTimings(); return true; }
/** * Parse item data for list entries * * @param array &$a_item */ public static function addAdditionalSubItemInformation(array &$a_item) { global $ilUser; $item = self::getItem($a_item['ref_id']); $a_item['obj_id'] = $a_item['obj_id'] > 0 ? $a_item['obj_id'] : ilObject::_lookupObjId($a_item['ref_id']); $a_item['type'] = $a_item['type'] != '' ? $a_item['type'] : ilObject::_lookupType($a_item['obj_id']); $a_item['timing_type'] = $item['timing_type']; if ($item['changeable'] && $item['timing_type'] == self::TIMINGS_PRESETTING) { include_once 'Modules/Course/classes/Timings/class.ilTimingPlaned.php'; $user_data = ilTimingPlaned::_getPlanedTimings($ilUser->getId(), $a_item['ref_id']); if ($user_data['planed_start']) { $a_item['start'] = $user_data['planed_start']; $a_item['end'] = $user_data['planed_end']; $a_item['activation_info'] = 'crs_timings_planed_info'; } else { $a_item['start'] = $item['suggestion_start']; $a_item['end'] = $item['suggestion_end']; $a_item['activation_info'] = 'crs_timings_suggested_info'; } } elseif ($item['timing_type'] == self::TIMINGS_PRESETTING) { $a_item['start'] = $item['suggestion_start']; $a_item['end'] = $item['suggestion_end']; $a_item['activation_info'] = 'crs_timings_suggested_info'; } elseif ($item['timing_type'] == self::TIMINGS_ACTIVATION) { $a_item['start'] = $item['timing_start']; $a_item['end'] = $item['timing_end']; $a_item['activation_info'] = 'obj_activation_list_gui'; } else { $a_item['start'] = 'abc'; } // #7359 - session sorting should always base on appointment date if ($a_item['type'] == 'sess') { include_once './Modules/Session/classes/class.ilSessionAppointment.php'; $info = ilSessionAppointment::_lookupAppointment($a_item['obj_id']); // #11987 $a_item['masked_start'] = $a_item['start']; $a_item['masked_end'] = $a_item['end']; $a_item['start'] = $info['start']; $a_item['end'] = $info['end']; } }
function delete() { return ilTimingPlaned::_delete($this->getItemId(), $this->getUserId()); }