URLHelper::getLink('?view=search&quick_view_mode=' . $view_mode . '&search_only_rooms=1'), URLHelper::getLink('?view=search&quick_view_mode=' . $view_mode . '&search_only_rooms=0')); $sidebar->addWidget($widget); break; //Reiter "Listen" case 'lists': PageLayout::setTitle(_('Bearbeiten und ausgeben von Listen')); Navigation::activateItem('/resources/lists/show'); if ($_SESSION['resources_data']['list_open']) { // tlx: What is this line good for? $title.=" - "._("Ebene").": ".getResourceObjectName($_SESSION['resources_data']["list_open"]); $helpbar->setVariables(array( 'name' => getResourceObjectName($_SESSION['resources_data']['list_open']) )); $widget = new OptionsWidget(); $widget->addCheckbox(_('Untergeordnete Ebenen ausgeben'), $_SESSION['resources_data']['list_recurse'], URLHelper::getLink('?recurse_list=TRUE'), URLHelper::getLink('?nrecurse_list=TRUE')); $sidebar->addWidget($widget); } break; //Reiter "Objekt" case 'objects': case 'edit_object_assign': PageLayout::setTitle(_("Belegungen anzeigen/bearbeiten").$currentObjectTitelAdd);
function showScheduleGraphical($print_view = false) { global $RELATIVE_PATH_RESOURCES, $cssSw, $view_mode, $ActualObjectPerms; $categories["na"] = 4; $categories["sd"] = 4; $categories["y"] = 3; $categories["m"] = 3; $categories["w"] = 0; $categories["d"] = 2; //an assign for a date corresponding to a (seminar-)metadate $categories["meta"] = 1; //select view to jump from the schedule if ($this->used_view == "openobject_schedule") $view = "openobject_assign"; else $view = "edit_object_assign"; $start_time = $this->start_time; $end_time = $this->end_time; if ($_SESSION['resources_data']["schedule_time_range"] == -1) { $start_hour = 0; $end_hour = 12; } elseif ($_SESSION['resources_data']["schedule_time_range"] == 1) { $start_hour = 12; $end_hour = 23; } else { $start_hour = 8; $end_hour = 22; } $room_group = RoomGroups::GetInstance(); if ($room_group->getGroupCount($this->group_id)){ $schedule=new SemGroupScheduleDayOfWeek($start_hour, $end_hour,$room_group->getGroupContent($this->group_id), $start_time, $this->dow); $schedule->add_link = "resources.php?cancel_edit_assign=1&quick_view=$view&quick_view_mode=".$view_mode."&add_ts="; $num_rep_events = 0; $num_single_events = 0; $num = 1; foreach ($room_group->getGroupContent($this->group_id) as $room_to_show_id => $room_id){ if ($_SESSION['resources_data']["show_repeat_mode"] == 'repeated' || $_SESSION['resources_data']["show_repeat_mode"] == 'all'){ $events = createNormalizedAssigns($room_id, $start_time, $end_time,get_config('RESOURCES_SCHEDULE_EXPLAIN_USER_NAME'), $this->dow); foreach($events as $id => $event){ $repeat_mode = $event['repeat_mode']; $add_info = ($event['sem_doz_names'] ? '('.$event['sem_doz_names'].') ' : ''); $add_info .= ($repeat_mode == 'w' && $event['repeat_interval'] == 1 ? '('._("wöchentlich").')' : ''); $add_info .= ($repeat_mode == 'w' && $event['repeat_interval'] > 1 ? '('.$event['repeat_interval'].'-'._("wöchentlich").')' : ''); $name = $event['name']; $schedule->addEvent($room_to_show_id, $name, $event['begin'], $event['end'], URLHelper::getLink('?show_object='.$room_id.'&cancel_edit_assign=1&quick_view='.$view.'&quick_view_mode='.$view_mode.'&edit_assign_object='.$event['assign_id']), $add_info, $categories[$repeat_mode]); ++$num_rep_events; } } // nur zukünftige Einzelbelegungen if ( ($end_time > time()) && ($_SESSION['resources_data']["show_repeat_mode"] == 'single' || $_SESSION['resources_data']["show_repeat_mode"] == 'all')){ $a_start_time = ($start_time > time() ? $start_time : time()); $a_end_time = $end_time; $assign_events = new AssignEventList ($a_start_time, $a_end_time, $room_id, '', '', TRUE, 'semschedulesingle', $this->dow); while ($event = $assign_events->nextEvent()) { //mehrtägige nur am passenden Tag anzeigen if ($event->repeat_mode == 'sd' && date('N', $event->begin) != $this->dow) continue; if(in_array($event->repeat_mode, array('w','d','m','y'))){ if(strftime('%u', $event->getBegin()) != $this->dow) continue; $assign = AssignObject::Factory($event->getAssignId()); switch($event->repeat_mode){ case 'd': $add_info = '('.sprintf(_("täglich, %s bis %s"), strftime('%x',$assign->getBegin()), strftime('%x',$assign->getRepeatEnd())).')'; break; case 'w': if($assign->getRepeatInterval() == 1) $add_info = '('._("wöchentlich").')'; else $add_info = '('.$assign->getRepeatInterval().'-'._("wöchentlich").')'; break; case 'm': if($assign->getRepeatInterval() == 1) $add_info = '('._("monatlich").')'; else $add_info = '('.$assign->getRepeatInterval().'-'._("monatlich").')'; break; case 'y': if($assign->getRepeatInterval() == 1) $add_info = '('._("jährlich").')'; else $add_info = '('.$assign->getRepeatInterval().'-'._("jährlich").')'; break; } } else { $add_info = ''; } $schedule->addEvent($room_to_show_id, 'EB'.$num++.':' . $event->getName(get_config('RESOURCES_SCHEDULE_EXPLAIN_USER_NAME')), $event->getBegin(), $event->getEnd(), URLHelper::getLink('?show_object='.$room_id.'&cancel_edit_assign=1&quick_view='.$view.'&quick_view_mode='.$view_mode.'&edit_assign_object='.$event->getAssignId()), $add_info, $categories[$event->repeat_mode]); ++$num_single_events; $single_assigns[] = $event; } } } } else { return; } if(!$print_view){ ?> <table border=0 celpadding=2 cellspacing=0 width="99%" align="center"> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" width="10%" align="left"> <a href="<?= URLHelper::getLink('?quick_view='.$this->used_view.'&quick_view_mode='.$view_mode.'&previous_day=1') ?>"> <?= Icon::create('arr_2left', 'clickable')->asImg(['class' => "middle", 'alt' => "Vorherigen Tag anzeigen", 'title' => "Vorherigen Tag anzeigen"]) ?> </a> </td> <td class="<? echo $cssSw->getClass() ?>" width="76%" align="center"> <b> <? printf(_("Wochentag: %s"), htmlReady(strftime('%A', $schedule->base_date))); echo '<br>' . htmlReady($this->semester['name']) . ' - ' . date ("d.m.Y", $start_time), " - ", date ("d.m.Y", $end_time); ?> </b> <br> </td> <td class="<? echo $cssSw->getClass() ?>" width="10%" align="center"> <a href="<?= URLHelper::getLink('?quick_view='.$this->used_view.'&quick_view_mode='.$view_mode.'&next_day=1') ?>"> <?= Icon::create('arr_2right', 'clickable')->asImg(['class' => "middle", 'alt' => _("Nächsten Tag anzeigen"), 'title' => _("Nächsten Tag anzeigen")]) ?> </td> </tr> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%" align="center" valign="bottom"> <? if ((!$_SESSION['resources_data']["schedule_time_range"]) || ($_SESSION['resources_data']["schedule_time_range"] == 1)): ?> <a href="<?= URLHelper::getLink('', array('quick_view' => $this->used_view, 'quick_view_mode' => $view_mode, 'time_range' => $_SESSION['resources_data']['schedule_time_range'] ? 'FALSE' : -1)) ?>"> <?= Icon::create('arr_2up', 'clickable', ['title' => _('Frühere Belegungen anzeigen')])->asImg(['class' => 'middle']) ?> </a> <? endif; ?> </td> <td class="<? echo $cssSw->getClass() ?>" width="76%" colspan="2"> <? if ($_SESSION['resources_data']["show_repeat_mode"] == 'repeated' || $_SESSION['resources_data']["show_repeat_mode"] == 'all'){ echo " <font size=-1>"._("Anzahl der regelmäßigen Belegungen in diesem Zeitraum:")." ".$num_rep_events."</font><br>"; } if ($_SESSION['resources_data']["show_repeat_mode"] == 'single' || $_SESSION['resources_data']["show_repeat_mode"] == 'all'){ echo " <font size=-1>"._("Anzahl der Einzelbelegungen in diesem Zeitraum:")." ".$num_single_events."</font><br>"; } ?> </td> <td class="<? echo $cssSw->getClass() ?>" width="20%" nowrap> <? print "<select style=\"font-size:10px;\" name=\"show_repeat_mode\">"; printf ("<option style=\"font-size:10px;\" %s value=\"all\">"._("alle Belegungen")."</option>", ($_SESSION['resources_data']["show_repeat_mode"] == "all") ? "selected" : ""); printf ("<option %s style=\"font-size:10px;\" value=\"single\">"._("nur Einzeltermine")."</option>", ($_SESSION['resources_data']["show_repeat_mode"] == "single") ? "selected" : ""); printf ("<option %s style=\"font-size:10px;\" value=\"repeated\">"._("nur Wiederholungstermine")."</option>", ($_SESSION['resources_data']["show_repeat_mode"] == "repeated") ? "selected" : ""); print "</select>"; print " ".Icon::create('accept', 'accept', ['title' => _('Ansicht umschalten')])->asInput(["type" => "image", "class" => "middle", "name" => "send_schedule_repeat_mode"]); ?> </td> </tr> <tr> <td class="<? echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" width="96%" colspan="3"> <? $schedule->showSchedule("html"); ?> </td> </tr> <tr> <td class="<? echo $cssSw->getClass() ?>" width="4%" align="center" valign="bottom"> <? if ((!$_SESSION['resources_data']['schedule_time_range']) || ($_SESSION['resources_data']['schedule_time_range'] == -1)): ?> <a href="<?= URLHelper::getLink('', array('quick_view' => $this->used_view, 'quick_view_mode' => $view_mode, 'time_range' => $_SESSION['resources_data']['schedule_time_range'] ? 'FALSE' : 1)) ?>"> <?= Icon::create('arr_2down', 'clickable', ['title' => _('Frühere Belegungen anzeigen')])->asImg(['class' => 'middle']) ?> </a> <? endif; ?> </td> <td class="<? echo $cssSw->getClass() ?>" width="20%" nowrap colspan="3"> </td> </tr> <?php if (($_SESSION['resources_data']["show_repeat_mode"] == 'single' || $_SESSION['resources_data']["show_repeat_mode"] == 'all') && $num_single_events ){ ?> <tr> <td class="<? echo $cssSw->getClass() ?>" width="4%" align="center" valign="bottom"> </td> <td class="<? echo $cssSw->getClass() ?>" colspan="3"> <strong><?=_("Einzelbelegungen:")?></strong> <br> <?php $num = 1; foreach($single_assigns as $event) { echo LinkButton::create(_('Eigenschaften'), URLHelper::getURL('?show_object=' . $event->getResourceId() . '&quick_view=' . $view . '&quick_view_mode=' . $quick_view_mode . '&edit_assign_object=' . $event->getAssignId())); printf (" <font size=-1>"._("%s ist von <b>%s</b> bis <b>%s</b>, belegt von <b>%s</b>")."</font><br>",'EB'.$num++.': ' . htmlReady(getResourceObjectName($event->getResourceId())), strftime("%A, %d.%m.%Y %H:%M", $event->getBegin()), strftime("%A, %d.%m.%Y %H:%M", $event->getEnd()), $event->getName()); } ?> </tr> <?php } ?> </table> </form> <? } else { ?> <table border="0" cellpadding="0" cellspacing="0" width="100%" align="center"> <tr> <td align="center"> <div style="font-size:150%;font-weight:bold;"> <?=htmlReady($room_group->getGroupName($this->group_id) . ' - ' . $this->semester['name'])?> <br> <? printf(_("Wochentag: %s"), htmlReady(strftime('%A', $schedule->base_date))); ?> </div> <div style="font-size:100%;font-weight:bold;margin-bottom:10px;"> <?=date ("d.m.Y", $start_time). " - ". date ("d.m.Y", $end_time)?> (<?=($this->timespan == 'course_time' ? _("Vorlesungszeit") : _("vorlesungsfreie Zeit"))?>) </div> </td> </tr> <tr> <td> <? $schedule->showSchedule("html", true); ?> </td> </tr> <? if (($_SESSION['resources_data']["show_repeat_mode"] == 'single' || $_SESSION['resources_data']["show_repeat_mode"] == 'all') && $num_single_events ){ ?> <tr> <td> <strong> <?=_("Einzelbelegungen:")?> (<?=strftime("%d.%m.%Y",$a_start_time) . ' - ' . strftime("%d.%m.%Y",$a_end_time)?>) </strong> <br> <? $num = 1; foreach($single_assigns as $event) { printf ("<font size=-1>"._("%s ist von <b>%s</b> bis <b>%s</b>, belegt von <b>%s</b>")."</font><br>",'EB'.$num++.': ' . htmlReady(getResourceObjectName($event->getResourceId())), strftime("%A, %d.%m.%Y %H:%M", $event->getBegin()), strftime("%A, %d.%m.%Y %H:%M", $event->getEnd()), htmlready($event->getName())); } ?> </td> </tr> <?}?> </table> <? } }