static function getDayDates($user_id, $weekday) { //get current semester $semdata = new \SemesterData(); $current_semester = $semdata->getCurrentSemesterData(); $current_semester_id = $current_semester['semester_id']; return \CalendarScheduleModel::getEntries($user_id, $current_semester, 00, 2000, array($weekday - 1), false); }
/** * this action is the main action of the schedule-controller, setting the environment for the timetable, * accepting a comma-separated list of days. * * @param string a list of an arbitrary mix of the numbers 0-6, separated with a comma (e.g. 1,2,3,4,5 (for Monday to Friday, the default)) */ function index_action($days = false) { if ($GLOBALS['perm']->have_perm('admin')) { $inst_mode = true; } $my_schedule_settings = $GLOBALS['user']->cfg->SCHEDULE_SETTINGS; // set the days to be displayed if ($days === false) { if (Request::getArray('days')) { $this->days = array_keys(Request::getArray('days')); } else { $this->days = array(0, 1, 2, 3, 4, 5, 6); } } else { $this->days = explode(',', $days); } // try to find the correct institute-id $institute_id = Request::option('institute_id', $SessSemName[1] ? $SessSemName[1] : Request::option('cid', false)); if (!$institute_id) { $institute_id = $GLOBALS['user']->cfg->MY_INSTITUTES_DEFAULT; } if (!$institute_id || in_array(get_object_type($institute_id), words('inst fak')) === false) { throw new Exception(sprintf(_('Kann Einrichtungskalendar nicht anzeigen!' . 'Es wurde eine ungültige Instituts-Id übergeben (%s)!', $institute_id))); } // load semester-data and current semester $semdata = new SemesterData(); $this->semesters = $semdata->getAllSemesterData(); if (Request::option('semester_id')) { $this->current_semester = $semdata->getSemesterData(Request::option('semester_id')); } else { $this->current_semester = $semdata->getCurrentSemesterData(); } $this->entries = (array) CalendarInstscheduleModel::getInstituteEntries($GLOBALS['user']->id, $this->current_semester, 8, 20, $institute_id, $this->days); Navigation::activateItem('/course/main/schedule'); PageLayout::setHelpKeyword('Basis.TerminkalenderStundenplan'); PageLayout::setTitle($GLOBALS['SessSemName']['header_line'] . ' - ' . _('Veranstaltungs-Stundenplan')); $zoom = Request::int('zoom', 0); $this->controller = $this; $this->calendar_view = new CalendarWeekView($this->entries, 'instschedule'); $this->calendar_view->setHeight(40 + 20 * $zoom); $this->calendar_view->setRange($my_schedule_settings['glb_start_time'], $my_schedule_settings['glb_end_time']); $this->calendar_view->groupEntries(); // if enabled, group entries with same start- and end-date URLHelper::addLinkParam('zoom', $zoom); URLHelper::addLinkParam('semester_id', $this->current_semester['semester_id']); $style_parameters = array('whole_height' => $this->calendar_view->getOverallHeight(), 'entry_height' => $this->calendar_view->getHeight()); $factory = new Flexi_TemplateFactory($this->dispatcher->trails_root . '/views'); PageLayout::addStyle($factory->render('calendar/stylesheet', $style_parameters)); if (Request::option('printview')) { PageLayout::addStylesheet('print.css'); } else { PageLayout::addStylesheet('print.css', array('media' => 'print')); } }
function ShowSemSchedules ($resource_id, $semester_id = null, $timespan = 'sem_time') { $sem = new SemesterData(); if (!$semester_id){ $this->semester = $sem->getCurrentSemesterData(); } else { $this->semester = $sem->getSemesterData($semester_id); } $this->timespan = $timespan; if ($this->timespan == 'sem_time'){ $next_sem = $sem->getNextSemesterData($this->semester['vorles_ende']); $this->start_time = $this->semester['vorles_ende']; $this->end_time = is_array($next_sem) ? $next_sem['vorles_beginn'] : $this->semester['ende']; } else { $this->start_time = $this->semester['vorles_beginn']; $this->end_time = $this->semester['vorles_ende']; } parent::ShowSchedules($resource_id); }
/** * returns schedule for a given user and semester * * @get /user/:user_id/schedule/:semester_id * @get /user/:user_id/schedule */ public function getSchedule($user_id, $semester_id = NULL) { if ($user_id !== $GLOBALS['user']->id) { $this->error(401); } $semdata = new \SemesterData(); $current_semester = isset($semester_id) ? $semdata->getSemesterData($semester_id) : $semdata->getCurrentSemesterData(); if (!$current_semester) { $this->notFound('No such semester.'); } $schedule_settings = \UserConfig::get($user_id)->SCHEDULE_SETTINGS; $days = $schedule_settings['glb_days']; $entries = \CalendarScheduleModel::getEntries($user_id, $current_semester, $schedule_settings['glb_start_time'], $schedule_settings['glb_end_time'], $days, $visible = false); $json = array(); foreach ($entries as $number_of_day => $schedule_of_day) { $entries = array(); foreach ($schedule_of_day->entries as $entry) { $entries[$entry['id']] = self::entryToJson($entry); } $json[$number_of_day + 1] = $entries; } $this->etag(md5(serialize($json))); return $json; }
* @package resources */ $view = Request::option('view'); $view_mode = Request::option('view_mode'); $quick_view_mode = Request::option('quick_view_mode'); /***************************************************************************** Requires & Registers /*****************************************************************************/ require_once 'lib/msg.inc.php'; require_once $GLOBALS['RELATIVE_PATH_RESOURCES'] . '/views/Msg.class.php'; $_SESSION['resources_data'] = @unserialize($_SESSION['resources_data']); if (empty($_SESSION['resources_data'])) { $temp_semester = SemesterData::getCurrentSemesterData() ?: end(SemesterData::getAllSemesterData()); $_SESSION['resources_data'] = array( 'view' => 'search', 'view_mode' => false, 'sem_schedule_semester_id' => $temp_semester['semester_id'], 'sem_schedule_timespan' => 'course_time' ); } $globalPerm = getGlobalPerms($user->id); $msg = new Msg; /***************************************************************************** empfangene Werte auswerten und Befehle ausfuehren /*****************************************************************************/
/** * this action is the main action of the schedule-controller, setting the environment * for the timetable, accepting a comma-separated list of days. * * @param string $days a list of an arbitrary mix of the numbers 0-6, separated * with a comma (e.g. 1,2,3,4,5 (for Monday to Friday, the default)) * @return void */ function index_action($days = false) { global $user; $schedule_settings = CalendarScheduleModel::getScheduleSettings(); if ($GLOBALS['perm']->have_perm('admin')) { $inst_mode = true; } if ($inst_mode) { // try to find the correct institute-id $institute_id = Request::option('institute_id', $SessSemName[1] ? $SessSemName[1] : Request::option('cid', false)); if (!$institute_id) { $institute_id = UserConfig::get($user->id)->MY_INSTITUTES_DEFAULT; } if (!$institute_id || !in_array(get_object_type($institute_id), words('fak inst'))) { throw new Exception('Cannot display institute-calender. No valid ID given!'); } Navigation::activateItem('/browse/my_courses/schedule'); } else { Navigation::activateItem('/calendar/schedule'); } // check, if the hidden seminar-entries shall be shown $show_hidden = Request::int('show_hidden', 0); // load semester-data and current semester $semdata = new SemesterData(); $this->semesters = array_reverse($semdata->getAllSemesterData()); if (Request::option('semester_id')) { $this->current_semester = $semdata->getSemesterData(Request::option('semester_id')); } else { $this->current_semester = $semdata->getCurrentSemesterData(); } // check type-safe if days is false otherwise sunday (0) cannot be chosen if ($days === false) { if (Request::getArray('days')) { $this->days = array_keys(Request::getArray('days')); } else { $this->days = $schedule_settings['glb_days']; foreach ($this->days as $key => $day_number) { $this->days[$key] = ($day_number + 6) % 7; } } } else { $this->days = explode(',', $days); } $this->controller = $this; $this->calendar_view = $inst_mode ? CalendarScheduleModel::getInstCalendarView($institute_id, $show_hidden, $this->current_semester, $this->days) : CalendarScheduleModel::getUserCalendarView($GLOBALS['user']->id, $show_hidden, $this->current_semester, $this->days); // have we chosen an entry to display? if ($this->flash['entry']) { if ($inst_mode) { $this->show_entry = $this->flash['entry']; } else { if ($this->flash['entry']['id'] == null) { $this->show_entry = $this->flash['entry']; } else { foreach ($this->calendar_view->getColumns() as $entry_days) { foreach ($entry_days->getEntries() as $entry) { if ($this->flash['entry']['cycle_id']) { if ($this->flash['entry']['id'] . '-' . $this->flash['entry']['cycle_id'] == $entry['id']) { $this->show_entry = $entry; $this->show_entry['id'] = reset(explode('-', $this->show_entry['id'])); } } else { if ($entry['id'] == $this->flash['entry']['id']) { $this->show_entry = $entry; } } } } } } } $style_parameters = array('whole_height' => $this->calendar_view->getOverallHeight(), 'entry_height' => $this->calendar_view->getHeight()); $factory = new Flexi_TemplateFactory($this->dispatcher->trails_root . '/views'); PageLayout::addStyle($factory->render('calendar/stylesheet', $style_parameters), 'screen, print'); if (Request::option('printview')) { $this->calendar_view->setReadOnly(); PageLayout::addStylesheet('print.css'); } else { PageLayout::addStylesheet('print.css', array('media' => 'print')); } $this->show_hidden = $show_hidden; $inst = get_object_name($institute_id, 'inst'); $this->inst_mode = $inst_mode; $this->institute_name = $inst['name']; $this->institute_id = $institute_id; if (Request::get('show_settings')) { $this->show_settings = true; } }
static function get_next_courses($user_id) { /* $items = array(); $db = \DBManager::get(); $semester = \SemesterData::getCurrentSemesterData(); $semester_begin = $semester["beginn"]; $semester_ende = $semester["ende"]; $today =date("N"); // !!! bisher ohne cycling, kein Dozent // !! bisher die ersten 5 in der woche // was ist cycle bzw weekoffset inseminar seminar_cycle_dates $fields= "seminar_user.Seminar_id AS Seminar_id, seminar_user.user_id, seminar_user.visible, seminare.Seminar_id, seminare.start_time, seminare.Name AS name, seminar_cycle_dates.start_time AS beginn, seminar_cycle_dates.end_time AS ende, seminar_cycle_dates.start_time, seminar_cycle_dates.weekday AS weekday, seminar_cycle_dates.seminar_id, seminar_cycle_dates.description AS description "; $query = "SELECT $fields FROM seminar_user JOIN seminare ON seminar_user.Seminar_id = seminare.Seminar_id JOIN seminar_cycle_dates ON seminar_user.Seminar_id = seminar_cycle_dates.seminar_id WHERE seminar_user.user_id = '$user_id' AND seminar_user.visible = 'yes' AND seminare.start_time >= '$semester_begin' ORDER BY seminar_cycle_dates.weekday, seminar_cycle_dates.start_time "; $result = $db->query($query); $i = 0; foreach($result as $row) { $i++; $items[$i] = array( 'id' => $row['Seminar_id'], 'title' => $row['name'], 'beginn' => substr($row['beginn'], 0, 5), 'ende' => substr($row['ende'], 0, 5), 'weekday' => $row['weekday'], 'description' => $row['description'] ); } */ //get current semester $semdata = new \SemesterData(); $current_semester = $semdata->getCurrentSemesterData(); $current_semester_id = $current_semester['semester_id']; $entries = \CalendarScheduleModel::getEntries($user_id, $current_semester, 00, 2000, array(0, 1, 2, 3, 4, 5, 6), false); $output = array(); $counter = 0; $currentWeekDay = date("N") - 1; $currentTime = date("Gi"); if (!empty($entries)) { for ($i = 0; $i <= 6; $i++) { $currentWeekDay += $i; if ($currentWeekDay > 6) { $currentWeekDay = 0; } $currentDayObject = $entries[$currentWeekDay]; if (!empty($currentDayObject)) { //sortieren der einträge des tages $arrayObject = new \ArrayObject($currentDayObject->getEntries()); $arrayObject->uasort('Helper::cmpEarlier'); foreach ($arrayObject->getArrayCopy() as $entry) { if ($counter >= 3) { break; $i = 7; } if ($entry["start"] > $currentTime || $i != 0) { $output[$counter] = array("title" => $entry["title"], "description" => $entry["content"], "beginn" => $entry["start_formatted"], "ende" => $entry["end_formatted"], "weekday" => $currentWeekDay + 1, "id" => substr($entry["id"], 0, 32)); $counter++; } } } } } else { return null; } return $output; /* //var_dump($output); //nur die nächsten 3 sollen auftauchen $currentWeekDay =date("N"); $i = 0; if (!empty($items)) { $ausgabe = array(); //suchen des nächsten Cycles for ($i = 0; $i <= 6; $i++) { $currentWeekDay +=$i; if($currentWeekDay > 7) $currentWeekDay = 1; foreach($items AS $item) { //an dem gesuchten wochentag event .... if ($item['weekday'] == $currentWeekDay) { //nächstes event gefunden //Auffinden der nächsten beiden $ausgabe[1] = $item; $nextitemID = $item['weekday']; if (isset($items[ $nextitemID ])) { //zweites gefunden $ausgabe[2] = $items[ 1 ]; $nextitemID++; } else { $ausgabe[2] = $items[ 1 ]; $nextitemID = 2; } if (isset($items[ $nextitemID ])) { //zweites gefunden $ausgabe[3] = $items[ 1 ]; } else { $ausgabe[3] = $items[ 1 ]; } //fertig $i=8; break; } } } } else { return null; } return $ausgabe; */ }
function showTimeRange() { $colspan = $this->mode == 'browse' ? ' colspan="2" ' : ''; ?> <tr> <td <? $this->cssSw->switchClass(); echo $this->cssSw->getFullClass() ?> > <?=_("gefundene Ressourcen sollen zu folgender Zeit <u>nicht</u> belegt sein:")?> <br> </td> </tr> <tr> <td <? $this->cssSw->switchClass(); echo $this->cssSw->getFullClass() ?> > <br> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tr> <td width="120"> <b><?= _('Einzeltermin:') ?></b> </td> <td> <?=_("Beginn")?>: <input type="text" style="font-size:8pt;" name="search_begin_hour" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_begin"]) ? date("H", $this->searchArray["search_assign_begin"]) : _("ss")?>"> <input type="text" style="font-size:8pt;" name="search_begin_minute" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_begin"]) ? date("i", $this->searchArray["search_assign_begin"]) : _("mm")?>"> <?=_("Uhr")?> <?=_("Ende")?>: <input type="text" style="font-size:8pt;" name="search_end_hour" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_end"]) ? date("H", $this->searchArray["search_assign_end"]) : _("ss")?>"> <input type="text" style="font-size:8pt;" name="search_end_minute" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_end"]) ? date("i", $this->searchArray["search_assign_end"]) : _("mm")?>"> <?=_("Uhr")?> <br> <?=_("Datum")?>: <input name="searchDate" id="searchDate" size="10" value="<?=($this->searchArray["search_assign_begin"]) ? date("j.n.Y", $this->searchArray["search_assign_begin"]) : date('j.n.Y', time())?>"> <script> jQuery('#searchDate').datepicker(); </script> <!-- <input type="text" style="font-size:8pt;" name="search_day" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_begin"]) ? date("d", $this->searchArray["search_assign_begin"]) : _("tt")?>"> .<input type="text" style="font-size:8pt;" name="search_month" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_begin"]) ? date("m", $this->searchArray["search_assign_begin"]) : _("mm")?>"> .<input type="text" style="font-size:8pt;" name="search_year" size="4" maxlength="4" value="<?=($this->searchArray["search_assign_begin"]) ? date("Y", $this->searchArray["search_assign_begin"]) : _("jjjj")?>"> --> <input type="checkbox" style="font-size:8pt;" name="search_repeating" value="1" <?=($this->searchArray["search_repeating"]==1) ? "checked=checked" : ""?>> <?= _('für restliches Semester prüfen') ?> <br> </td> </tr> </table> </td> </tr> <tr> <td <? $this->cssSw->switchClass(); echo $this->cssSw->getFullClass() ?> > <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tr> <td width="120"> <b><?= _('Semestertermin:') ?></b> </td> <td> <br> <?=_("Beginn")?>: <input type="text" style="font-size:8pt;" name="search_begin_hour_2" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_begin"]) ? date("H", $this->searchArray["search_assign_begin"]) : _("ss")?>"> <input type="text" style="font-size:8pt;" name="search_begin_minute_2" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_begin"]) ? date("i", $this->searchArray["search_assign_begin"]) : _("mm")?>"> <?=_("Uhr")?> <?=_("Ende")?>: <input type="text" style="font-size:8pt;" name="search_end_hour_2" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_end"]) ? date("H", $this->searchArray["search_assign_end"]) : _("ss")?>"> <input type="text" style="font-size:8pt;" name="search_end_minute_2" size="2" maxlength="2" value="<?=($this->searchArray["search_assign_end"]) ? date("i", $this->searchArray["search_assign_end"]) : _("mm")?>"> <?=_("Uhr")?> <br> <?=_("Tag der Woche")?>: <select name = 'search_day_of_week'> <option value=-1 <?=$this->searchArray["search_day_of_week"]==-1? "selected=selected":""?>><?=_("--")?> </option> <option value='Monday' <?=$this->searchArray["search_day_of_week"]=='Monday'? "selected=selected":""?>><?=_("Montag")?> </option> <option value='Tuesday' <?=$this->searchArray["search_day_of_week"]=='Tuesday'? "selected=selected":""?>><?=_("Dienstag")?> </option> <option value='Wednesday' <?=$this->searchArray["search_day_of_week"]=='Wednesday'? "selected=selected":""?>><?=_("Mittwoch")?> </option> <option value='Thursday' <?=$this->searchArray["search_day_of_week"]=='Thursday'? "selected=selected":""?>><?=_("Donnerstag")?> </option> <option value='Friday' <?=$this->searchArray["search_day_of_week"]=='Friday'? "selected=selected":""?>><?=_("Freitag")?> </option> <option value='Saturday' <?=$this->searchArray["search_day_of_week"]=='Saturday'? "selected=selected":""?>><?=_("Samstag")?> </option> <option value='Sunday' <?=$this->searchArray["search_day_of_week"]=='Sunday'? "selected=selected":""?>><?=_("Sonntag")?> </option> </select> <?=_("Semester")?>: <select name = 'search_semester'> <? $semesterData = new SemesterData(); $all_semester = $semesterData->getAllSemesterData(); if (!$this->searchArray["search_semester"]) { $current_semester = $semesterData->getCurrentSemesterData(); $selected_semester = $semesterData->getSemesterDataByDate(strtotime("+1 Day",$current_semester["ende"])); } else { $selected_semester["semester_id"] = $this->searchArray["search_semester"]; } $this_sem = false; foreach($all_semester as $semester) { $this_sem = $selected_semester["semester_id"] == $semester["semester_id"]; echo "<option value='".$semester["semester_id"]."' ".($this_sem?" selected=selected ":"").">".$semester["name"]."</option>"; } ?> </select> </td> </tr> </table> <br> </td> </tr> <? }
/** * Return the semester-entry for the current semester * * @return mixed the current semester */ static function getCurrentSemester() { $semdata = new SemesterData(); return $semdata->getCurrentSemesterData(); }