public static function nextDate($evt, $i) { $eventTimeZone = null; $singledates = iCString::isSerialized($i->dates) ? unserialize($i->dates) : array(); // returns array $period = iCString::isSerialized($i->period) ? unserialize($i->period) : array(); // returns array $startdatetime = $i->startdatetime; $enddatetime = $i->enddatetime; $weekdays = $i->weekdays; $site_today_date = JHtml::date('now', 'Y-m-d'); $UTC_today_date = JHtml::date('now', 'Y-m-d', $eventTimeZone); $next_date = JHtml::date($evt, 'Y-m-d', $eventTimeZone); $next_datetime = JHtml::date($evt, 'Y-m-d H:i', $eventTimeZone); $start_date = JHtml::date($i->startdatetime, 'Y-m-d', $eventTimeZone); $end_date = JHtml::date($i->enddatetime, 'Y-m-d', $eventTimeZone); // Check if date from a period with weekdays has end time of the period set in next. // $time_next_datetime = JHtml::date($next_datetime, 'H:i', $eventTimeZone); $time_next_datetime = date('H:i', strtotime($next_datetime)); $time_startdate = JHtml::date($i->startdatetime, 'H:i', $eventTimeZone); $time_enddate = JHtml::date($i->enddatetime, 'H:i', $eventTimeZone); $data_next_datetime = date('Y-m-d H:i', strtotime($evt)); if ($next_date == $site_today_date && $time_next_datetime == $time_enddate) { $next_datetime = $next_date . ' ' . $time_startdate; } if ($period != NULL && in_array($data_next_datetime, $period)) { $next_is_in_period = true; } else { $next_is_in_period = false; } // Highlight event in progress if ($next_date == $site_today_date) { $start_span = '<span class="ic-next-today">'; $end_span = '</span>'; } else { $start_span = $end_span = ''; } $separator = '<span class="ic-datetime-separator"> - </span>'; // Format Next Date if ($next_is_in_period && ($start_date == $end_date || $weekdays != null)) { // Next in the period & (same start/end date OR one or more weekday selected) $nextDate = $start_span; $nextDate .= '<span class="ic-period-startdate">'; $nextDate .= self::formatDate($evt); $nextDate .= '</span>'; if ($i->displaytime == 1) { $nextDate .= ' <span class="ic-single-starttime">' . icagendaEvents::dateToTimeFormat($startdatetime) . '</span>'; if (icagendaEvents::dateToTimeFormat($startdatetime) != icagendaEvents::dateToTimeFormat($enddatetime)) { $nextDate .= $separator . '<span class="ic-single-endtime">' . icagendaEvents::dateToTimeFormat($enddatetime) . '</span>'; } } $nextDate .= $end_span; } elseif ($next_is_in_period && $weekdays == null) { // Next in the period & different start/end date & no weekday selected $start = '<span class="ic-period-startdate">'; $start .= self::formatDate($startdatetime); $start .= '</span>'; $end = '<span class="ic-period-enddate">'; $end .= self::formatDate($enddatetime); $end .= '</span>'; if ($i->displaytime == 1) { $start .= ' <span class="ic-period-starttime">' . icagendaEvents::dateToTimeFormat($startdatetime) . '</span>'; $end .= ' <span class="ic-period-endtime">' . icagendaEvents::dateToTimeFormat($enddatetime) . '</span>'; } $nextDate = $start_span . $start . $separator . $end . $end_span; } else { // Next is a single date $nextDate = $start_span; $nextDate .= '<span class="ic-single-next">'; $nextDate .= self::formatDate($evt); $nextDate .= '</span>'; if ($i->displaytime == 1) { $nextDate .= ' <span class="ic-single-starttime">' . icagendaEvents::dateToTimeFormat($evt) . '</span>'; } $nextDate .= $end_span; } return $nextDate; }
$period = unserialize($item->period); $period = is_array($period) ? $period : array(); $is_in_period = in_array($this_date, $period) ? true : false; if ($is_in_period && $item->weekdays == '' && strtotime($item->startdatetime) <= strtotime($date_today) && strtotime($item->enddatetime) >= strtotime($date_today)) { $ongoing = true; } else { $ongoing = false; } // Day in Date Box (list of events) $EVENT_DAY = $this->day_display_global ? icagendaEvents::day($evt, $item) : false; // Month in Date Box (list of events) $EVENT_MONTHSHORT = $this->month_display_global ? icagendaEvents::dateBox($this_date, 'monthshort', $ongoing) : false; // Year in Date Box (list of events) $EVENT_YEAR = $this->year_display_global ? icagendaEvents::dateBox($evt, 'year', $ongoing) : false; // Time in Date Box (list of events) $EVENT_TIME = $this->time_display_global && $item->displaytime == 1 ? icagendaEvents::dateToTimeFormat($evt) : false; // Load Event Data $EVENT_DATE = iCModeliChelper::nextDate($evt, $item); $EVENT_SET_DATE = iCModeliChelper::eventUrlDate($evt); $READ_MORE = $this->shortdesc_display_global == '' && !$item->shortdesc ? iCModeliChelper::readMore($item->url, $item->desc, '[...]') : false; // URL to event details view (list of events) if ($datesDisplay == 1) { $date_var = $isSef == '1' ? '?date=' : '&date='; $set_url_date = $date_var . $EVENT_SET_DATE; $date_url = $only_startdate && in_array($this_date, $period) ? '' : $date_var . $EVENT_SET_DATE; $EVENT_URL = $item->url . $date_url; } else { $EVENT_URL = $item->url; } } else { $EVENT_URL = $item->url;
protected function evenTime($i) { if ($this->displaytime($i) == 1) { return icagendaEvents::dateToTimeFormat($i->next); } else { return NULL; } }