Пример #1
0
  if (is_array($dates['irregular'])):
    foreach ($dates['irregular'] as $date) :
        if (in_array($date['typ'], $presence_types) !== false) :
            $irregular[] = $date;
            $irregular_strings[] = $date['tostring'];
            if ($date['resource_id']) :
                $irregular_rooms[$date['resource_id']]++;
            elseif ($date['raum']) :
                $freetext_rooms['('. $date['raum'] .')']++;
            endif;
        endif;
    endforeach;
    unset($irregular_rooms['']);
    echo sizeof($output) ? ", \n" : '';

    $rooms = array_merge(getPlainRooms($irregular_rooms, false), array_keys($freetext_rooms));

    if (is_array($irregular) && sizeof($irregular)) :
        echo _("Termine am") . implode(', ', shrink_dates($irregular));
        if (is_array($rooms) && sizeof($rooms) > 0) :
            if (sizeof($rooms) > 3) :
                $rooms = array_slice($rooms, sizeof($rooms) - 3, sizeof($rooms));
            endif;

            if ($show_room) :
                echo ', ' . _("Ort:") . ' ';
                echo implode(', ', $rooms);
            endif;
        endif;
    endif;
  endif;
Пример #2
0
<? $presence_types = getPresenceTypes(); ?>
<? if (is_array($dates['irregular'])) foreach ($dates['irregular'] as $date) : ?>
<raumzeit>
    <datum><?php 
echo date('d.m.Y', $date['start_time']);
?>
</datum>
    <wochentag><?php 
echo getWeekDay(date('w', $date['start_time']), false);
?>
</wochentag>
    <zeit><?php 
echo date('H:i', $date['start_time']);
?>
-<?php 
echo date('H:i', $date['end_time']);
?>
</zeit>
    <raum>
        <gebucht><?php 
echo htmlReady(implode(', ', getPlainRooms(array($date['resource_id'] => 1))));
?>
</gebucht>
        <freitext><?php 
echo htmlReady($date['raum']);
?>
</freitext>
    </raum>
</raumzeit>
<? endforeach ?>
Пример #3
0
<date><?
echo $date->toString();
if ($date->getResourceId()) :
    echo ', '. _("Ort:") .' ';
    echo htmlReady(implode(', ', getPlainRooms(array($date->getResourceId() => '1'))));
endif ?></date>
Пример #4
0
<?php

# Lifter010: TODO
unset($freetext['']);
if (!isset($link)) {
    $link = false;
}
if ($assigned && sizeof($assigned) || sizeof($freetext)) {
    if ($assigned) {
        $rooms = $plain ? getPlainRooms($assigned) : getFormattedRooms($assigned, $link);
    }
    if ($freetext) {
        foreach ($freetext as $name => $count) {
            if ($name) {
                $rooms[] = '(' . ($plain ? $name : htmlReady($name)) . ')';
            }
        }
    }
    $ort .= ', ' . _('Ort') . ': ';
    $ort .= implode(', ', array_slice($rooms, 0, 3));
} else {
    $ort = ' ' . _('k.A.');
}
echo $ort;
Пример #5
0
 /**
  * Return an entry for the specified course.
  *
  * @param string  $seminar_id  the ID of the course
  * @param string  $user_id     the ID of the user
  * @param mixed   $cycle_id    either false or the ID of the cycle
  * @param mixed   $semester    filter for this semester
  *
  * @return array  the course's entry
  */
 static function getSeminarEntry($seminar_id, $user_id, $cycle_id = false, $semester = false)
 {
     $ret = array();
     $filterStart = 0;
     $filterEnd = 0;
     // filter dates (and their rooms) if semester is passed
     if ($semester) {
         $filterStart = $semester['vorles_beginn'];
         $filterEnd = $semester['vorles_ende'];
     }
     $sem = new Seminar($seminar_id);
     foreach ($sem->getCycles() as $cycle) {
         if (!$cycle_id || $cycle->getMetaDateID() == $cycle_id) {
             $entry = array();
             $entry['id'] = $seminar_id . '-' . $cycle->getMetaDateId();
             $entry['cycle_id'] = $cycle->getMetaDateId();
             $entry['start_formatted'] = sprintf("%02d", $cycle->getStartStunde()) . ':' . sprintf("%02d", $cycle->getStartMinute());
             $entry['end_formatted'] = sprintf("%02d", $cycle->getEndStunde()) . ':' . sprintf("%02d", $cycle->getEndMinute());
             $entry['start'] = (int) $cycle->getStartStunde() * 100 + $cycle->getStartMinute();
             $entry['end'] = (int) $cycle->getEndStunde() * 100 + $cycle->getEndMinute();
             $entry['day'] = $cycle->getDay();
             $entry['content'] = $sem->getNumber() . ' ' . $sem->getName();
             $entry['title'] = $cycle->getDescription();
             // check, if the date is assigned to a room
             if ($rooms = $cycle->getPredominantRoom($filterStart, $filterEnd)) {
                 $entry['title'] .= implode('', getPlainRooms(array_slice($rooms, 0, 1))) . (sizeof($rooms) > 1 ? ', u.a.' : '');
             } else {
                 if ($rooms = $cycle->getFreeTextPredominantRoom($filterStart, $filterEnd)) {
                     unset($rooms['']);
                     if (!empty($rooms)) {
                         $entry['title'] .= '(' . implode('), (', array_slice(array_keys($rooms), 0, 3)) . ')';
                     }
                 }
             }
             // add the lecturer
             $lecturers = array();
             $members = $sem->getMembers('dozent');
             foreach ($members as $member) {
                 $lecturers[] = $member['Nachname'];
             }
             $entry['content'] .= " (" . implode(', ', array_slice($lecturers, 0, 3)) . (sizeof($members) > 3 ? ' et al.' : '') . ')';
             $entry['url'] = URLHelper::getLink('dispatch.php/calendar/schedule/entry/' . $seminar_id . '/' . $cycle->getMetaDateId());
             $entry['onClick'] = "function (id) {\n                    var ids = id.split('-');\n                    STUDIP.Schedule.showSeminarDetails(ids[0], ids[1]);\n                }";
             // check the settings for this entry
             $stmt2 = DBManager::get()->prepare("SELECT sc.*, IF(su.user_id IS NULL, 'virtual', 'sem') as type\n                    FROM schedule_seminare as sc\n                    LEFT JOIN seminar_user as su ON (su.user_id = sc.user_id AND su.Seminar_id = sc.seminar_id)\n                    WHERE sc.seminar_id = ? AND sc.user_id = ? AND sc.metadate_id = ?");
             $stmt2->execute(array($sem->getId(), $user_id, $cycle->getMetaDateId()));
             if ($details = $stmt2->fetch()) {
                 if ($details['type'] == 'virtual') {
                     $entry['color'] = $details['color'] ? $details['color'] : DEFAULT_COLOR_VIRTUAL;
                     $entry['icons'][] = array('image' => 'virtual.png', 'title' => _("Dies ist eine vorgemerkte Veranstaltung"));
                 } else {
                     $entry['color'] = $details['color'] ? $details['color'] : DEFAULT_COLOR_SEM;
                 }
                 $entry['type'] = $details['type'];
                 $entry['visible'] = $details['visible'];
             } else {
                 $entry['type'] = 'sem';
                 $entry['color'] = DEFAULT_COLOR_SEM;
                 $entry['visible'] = 1;
             }
             // show an unhide icon if entry is invisible
             if (!$entry['visible']) {
                 $entry['url'] .= '/?show_hidden=1';
                 $bind_url = URLHelper::getLink('dispatch.php/calendar/schedule/bind/' . $seminar_id . '/' . $cycle->getMetaDateId() . '/?show_hidden=1');
                 $entry['icons'][] = array('url' => $bind_url, 'image' => Icon::create('visibility-invisible', 'info_alt')->asImagePath(16), 'onClick' => "function(id) { window.location = '" . $bind_url . "'; }", 'title' => _("Diesen Eintrag wieder einblenden"));
             } else {
                 if ($entry['type'] != 'virtual') {
                     $unbind_url = URLHelper::getLink('dispatch.php/calendar/schedule/unbind/' . $seminar_id . '/' . $cycle->getMetaDateId());
                     $entry['icons'][] = array('url' => $unbind_url, 'image' => Icon::create('visibility-visible', 'info_alt')->asImagePath(16), 'onClick' => "function(id) { window.location = '" . $unbind_url . "'; }", 'title' => _("Diesen Eintrag ausblenden"));
                 }
             }
             $ret[] = $entry;
         }
     }
     return $ret;
 }