Пример #1
0
/**
*   Display fields for the RSVP admin list
*
*   @param  string  $fieldname      Name of field
*   @param  mixed   $fieldvalue     Value of field
*   @param  array   $A              Array of all fields ($name=>$value)
*   @param  array   $icon_arr       Handy array of icon images
*   @return string                  Field value formatted for display
*/
function EVLIST_getField_rsvp($fieldname, $fieldvalue, $A, $icon_arr)
{
    global $_CONF, $LANG_ACCESS, $LANG_ADMIN;
    USES_class_date();
    $retval = '';
    switch ($fieldname) {
        case 'tic_count':
            if ($fieldvalue <= $A['max_rsvp']) {
                $retval = '';
            } else {
                $retval = 'Yes';
            }
            break;
        case 'uid':
            $retval = COM_getDisplayName($fieldvalue);
            break;
        case 'rank':
            if ($fieldvalue > $A['max_signups']) {
                $retval = 'Yes';
            } else {
                $retval = 'No';
            }
            break;
        case 'dt':
        case 'used':
            if ($fieldvalue > 0) {
                $d = new Date($fieldvalue, $_CONF['timezone']);
                $retval = $d->format($_CONF['shortdate'] . ' ' . $_CONF['timeformat'], false);
            } else {
                $retval = '';
            }
            break;
        default:
            $retval = $fieldvalue;
            break;
    }
    return $retval;
}
Пример #2
0
/**
*   Create a weekly view.
*
*   @param  integer $year   Year to display, default is current year
*   @param  integer $month  Starting month
*   @param  integer $day    Starting day
*   @param  integer $cat    Event category
*   @param  integer $cal    Calendar to show
*   @return string          HTML for calendar page
*/
function EVLIST_weekview($year = 0, $month = 0, $day = 0, $cat = 0, $cal = 0, $opt = '')
{
    global $_CONF, $_EV_CONF, $LANG_MONTH, $LANG_EVLIST;
    USES_class_date();
    EVLIST_setViewSession('week', $year, $month, $day);
    $retval = '';
    list($currentyear, $currentmonth, $currentday) = explode('-', $_EV_CONF['_today']);
    // Default to the current month
    if ($year == 0) {
        $year = $currentyear;
    }
    if ($month == 0) {
        $month = $currentmonth;
    }
    if ($day == 0) {
        $day = $currentday;
    }
    $cat = (int) $cat;
    $cal = (int) $cal;
    // Get the events
    $calendarView = Date_Calc::getCalendarWeek($day, $month, $year, '%Y-%m-%d');
    $start_date = $calendarView[0];
    $end_date = $calendarView[6];
    $calendars_used = array();
    $dtStart = new Date(strtotime($start_date), $_CONF['timezone']);
    $dtToday = $dtStart;
    // used to update date strings each day
    $week_secs = 86400 * 7;
    $dtPrev = new Date($dtStart->toUnix() - $week_secs, $_CONF['timezone']);
    $dtNext = new Date($dtStart->toUnix() + $week_secs, $_CONF['timezone']);
    // Set up next and previous week links
    list($sYear, $sMonth, $sDay) = explode('-', $start_date);
    $tpl = 'weekview';
    $T = new Template(EVLIST_PI_PATH . '/templates/weekview');
    if ($opt == 'print') {
        $tpl .= '_print';
    } elseif ($_EV_CONF['cal_tmpl'] == 'json') {
        $tpl .= '_json';
    }
    $T->set_file(array('week' => $tpl . '.thtml'));
    $daynames = EVLIST_getDayNames();
    $events = EVLIST_getEvents($start_date, $end_date, array('cat' => $cat, 'cal' => $cal));
    $start_mname = $LANG_MONTH[(int) $sMonth];
    $last_date = getdate($dtStart->toUnix() + 86400 * 6);
    $end_mname = $LANG_MONTH[$last_date['mon']];
    $end_ynum = $last_date['year'];
    $end_dnum = sprintf('%02d', $last_date['mday']);
    $date_range = $start_mname . ' ' . $sDay;
    if ($year != $end_ynum) {
        $date_range .= ', ' . $year . ' - ';
    } else {
        $date_range .= ' - ';
    }
    if ($start_mname != $end_mname) {
        $date_range .= $end_mname . ' ';
    }
    $date_range .= "{$end_dnum}, {$end_ynum}";
    $T->set_var('date_range', $date_range);
    $T->set_block('week', 'dayBlock', 'dBlk');
    foreach ($calendarView as $idx => $weekData) {
        list($curyear, $curmonth, $curday) = explode('-', $weekData);
        $dtToday->setDateTimestamp($curyear, $curmonth, $curday, 0, 0, 0);
        $T->clear_var('eBlk');
        if ($weekData == $_EV_CONF['_today']) {
            $T->set_var('dayclass', 'weekview-curday');
        } else {
            $T->set_var('dayclass', 'weekview-offday');
        }
        $monthname = $LANG_MONTH[(int) $curmonth];
        $T->set_var('dayinfo', $daynames[$idx] . ', ' . COM_createLink($dtToday->format($_CONF['shortdate']), EVLIST_URL . "/index.php?view=day&amp;day={$curday}" . "&amp;cat={$cat}&amp;cal={$cal}" . "&amp;month={$curmonth}&amp;year={$curyear}"));
        if ($_EV_CONF['_can_add']) {
            $T->set_var(array('can_add' => 'true', 'curday' => $curday, 'curmonth' => $curmonth, 'curyear' => $curyear));
        }
        if (!isset($events[$weekData])) {
            // Make sure it's a valid but empty array if no events today
            $events[$weekData] = array();
        }
        $T->set_block('week', 'eventBlock', 'eBlk');
        foreach ($events[$weekData] as $A) {
            //$fgstyle = 'color:' . $A['fgcolor'].';';
            if ($A['allday'] == 1 || $A['rp_date_start'] < $weekData && $A['rp_date_end'] > $weekData) {
                $event_time = $LANG_EVLIST['allday'];
                /*$event_div = '<div class="monthview_allday" 
                  style="background-color:'. $event['bgcolor'].';">';*/
            } else {
                if ($A['rp_date_start'] == $weekData) {
                    $startstamp = strtotime($weekData . ' ' . $A['rp_time_start1']);
                    $starttime = date('g:i a', $startstamp);
                } else {
                    $starttime = ' ... ';
                }
                if ($A['rp_date_end'] == $weekData) {
                    $endstamp = strtotime($weekData . ' ' . $A['rp_time_end1']);
                    $endtime = date('g:i a', $endstamp);
                } else {
                    $endtime = ' ... ';
                }
                $event_time = $starttime . ' - ' . $endtime;
                if ($A['split'] == 1 && !empty($A['rp_time_start2'])) {
                    $startstamp2 = strtotime($weekData . ' ' . $A['rp_time_start2']);
                    $starttime2 = date('g:i a', $startstamp2);
                    $endstamp2 = strtotime($weekData . ' ' . $A['rp_time_end2']);
                    $endtime2 = date('g:i a', $endstamp2);
                    $event_time .= ' & ' . $starttime2 . ' - ' . $endtime2;
                }
            }
            $calendars_used[$A['cal_id']] = array('cal_name' => $A['cal_name'], 'cal_ena_ical' => $A['cal_ena_ical'], 'cal_id' => $event['cal_id'], 'fgcolor' => $A['fgcolor'], 'bgcolor' => $A['bgcolor']);
            /*$eventlink = '<a class="cal-event" style="' .
              $fgstyle . '" href="' .
              EVLIST_URL . '/event.php?eid=' .
              $A['rp_id'] . '">' . stripslashes($A['title']) .
              '</a>';*/
            $T->set_var(array('event_times' => $event_time, 'event_title' => htmlspecialchars($A['title']), 'event_id' => $A['rp_id'], 'cal_id' => $A['cal_id'], 'delete_imagelink' => EVLIST_deleteImageLink($A, $token), 'pi_url' => EVLIST_URL, 'fgcolor' => $A['fgcolor']));
            $T->parse('eBlk', 'eventBlock', true);
        }
        $T->parse('dBlk', 'dayBlock', true);
    }
    $T->set_var(array('pi_url' => EVLIST_URL, 'cal_header' => EVLIST_calHeader($year, $month, $day, 'week', $cat, $cal), 'cal_footer' => EVLIST_calFooter($calendars_used), 'prevmonth' => $dtPrev->format('n', false), 'prevday' => $dtPrev->format('j', false), 'prevyear' => $dtPrev->format('Y', false), 'nextmonth' => $dtNext->format('n', false), 'nextday' => $dtNext->format('j', false), 'nextyear' => $dtNext->format('Y', false), 'urlfilt_cat' => $cat, 'urlfilt_cal' => $cal, 'cal_checkboxes' => EVLIST_cal_checkboxes($calendars_used), 'site_name' => $_CONF['site_name'], 'site_slogan' => $_CONF['site_slogan'], 'year' => $year, 'month' => $month, 'day' => $day));
    $T->parse('output', 'week');
    return $T->finish($T->get_var('output'));
}