Exemple #1
0
			<?php 
    echo $this->params->get('introtext');
    ?>
		</div>
		<p> </p>
	<?php 
}
?>

	<?php 
$countcatevents = array();
$countperday = array();
$limit = $this->params->get('daylimit', 10);
$catinfo = array();
foreach ($this->rows as $row) {
    if (!JemHelper::isValidDate($row->dates)) {
        continue;
        // skip, open date !
    }
    //get event date
    $year = strftime('%Y', strtotime($row->dates));
    $month = strftime('%m', strtotime($row->dates));
    $day = strftime('%d', strtotime($row->dates));
    @$countperday[$year . $month . $day]++;
    if ($countperday[$year . $month . $day] == $limit + 1) {
        $var1a = JRoute::_('index.php?view=day&id=' . $year . $month . $day);
        $var1b = JText::_('COM_JEM_AND_MORE');
        $var1c = "<a href=\"" . $var1a . "\">" . $var1b . "</a>";
        $id = 'eventandmore';
        $this->cal->setEventContent($year, $month, $day, $var1c, null, $id);
        continue;
Exemple #2
0
 static function eventDateTime($row, $dateStart = false, $timeStart = false, $dateEnd = false, $timeEnd = false)
 {
     # @todo add support for suffix time
     # @todo replace strftime by date
     if (!$row) {
         return false;
     }
     if (!JemHelper::isValidDate($row->dates)) {
         # for the date function we need at least a valid startdate
         return false;
     }
     $result = "";
     $settings = JemHelper::config();
     $timeFormat = $settings->formattime;
     $dateFormat = $settings->formatdate;
     if ($timeFormat) {
         # mapping of time values
         # incoming values are in strftime format
         # output is in date format
         $timeFormat = str_replace('%H', 'H', $timeFormat);
         $timeFormat = str_replace('%M', 'i', $timeFormat);
         $timeFormat = str_replace('%p', 'A', $timeFormat);
         $timeFormat = str_replace('%P', 'a', $timeFormat);
         $timeFormat = str_replace('%I', 'h', $timeFormat);
         $timeFormat = str_replace('%l', 'g', $timeFormat);
     } else {
         $timeFormat = "H:i";
     }
     if (!$dateFormat) {
         $dateFormat = "D, M. j, Y";
     }
     # we have a row so let's combine the date+time and retrieve the date parts
     ########################
     ## COMBINE DATE/TIMES ##
     ########################
     # -- date/time Start --
     # at this point we have a startddate
     # but we've to see if we have a starttime
     $rowtime = $row->times;
     if ($row->times == null || $row->times == '00:00:00') {
         $rowtime = null;
         $row->times = '00:00:00';
     }
     $datetimeStart = new JDate($row->dates . ' ' . $row->times);
     $otimeStart = $datetimeStart->format('H:i');
     $odateStart = $datetimeStart->format($dateFormat);
     if ($otimeStart == '00.00' || $otimeStart == '00:00') {
         if ($rowtime == null) {
             $otimeStart = "";
         } else {
             $otimeStart = $datetimeStart->format($timeFormat);
         }
     } else {
         $otimeStart = $datetimeStart->format($timeFormat);
     }
     # -- date/time End --
     # - no enddate + no endtime = blank both variables
     # - no enddate + endtime = the time will be combined with the startdate
     # - enddate + endtime = the time + enddate will be filled
     # - enddate + no endtime = the time will be blanked, but the date will be outputted
     $rowendtime = $row->endtimes;
     if ($row->endtimes == null || $row->endtimes == '00:00:00') {
         $rowendtime = null;
         $row->endtimes = '00:00:00';
     }
     if (!($row->enddates == null || $row->enddates == '0000-00-00')) {
         # we have a enddate
         $datetimeEnd = new JDate($row->enddates . ' ' . $row->endtimes);
         $odateEnd = $datetimeEnd->format($dateFormat);
         $otimeEnd = $datetimeEnd->format('H:i');
         if ($otimeEnd == '00.00' || $otimeEnd == '00:00') {
             if ($rowendtime == null) {
                 $otimeEnd = "";
             } else {
                 $otimeEnd = $datetimeEnd->format($timeFormat);
             }
         } else {
             $otimeEnd = $datetimeEnd->format($timeFormat);
         }
     }
     if ($row->enddates == null || $row->enddates == '0000-00-00') {
         # we don't have a enddate, but do we have a endtime?
         $odateEnd = "";
         if ($rowendtime == null) {
             $otimeEnd = "";
         } else {
             # we do have a endtime but no enddate so let's combine it with the startddate
             $datetimeEnd = new JDate($row->dates . ' ' . $row->endtimes);
             //$odateEnd		= $datetimeEnd->format($dateFormat);
             $otimeEnd = $datetimeEnd->format($timeFormat);
         }
     }
     # outputting
     $result = array();
     if ($dateStart) {
         $result['dateStart'] = $odateStart;
     }
     if ($timeStart) {
         $lang = JFactory::getLanguage();
         if ($lang->getTag() == 'zh-TW') {
         }
         $result['timeStart'] = $otimeStart;
     }
     if ($dateStart && $timeStart) {
         # we like to output both values so let's combine the values
         if ($odateStart && $otimeStart) {
             $value = $odateStart . ' ' . $otimeStart;
         }
         if (!$odateStart && $otimeStart) {
             $value = $otimeStart;
         }
         if ($odateStart && !$otimeStart) {
             $value = $odateStart;
         }
         if (!$odateStart && !$otimeStart) {
             $value = "";
         }
         $result['startDateTime'] = $value;
     }
     if ($dateEnd) {
         $result['dateEnd'] = $odateEnd;
     }
     if ($timeEnd) {
         $lang = JFactory::getLanguage();
         if ($lang->getTag() == 'zh-TW') {
         }
         $result['timeEnd'] = $otimeEnd;
     }
     if ($dateEnd && $timeEnd) {
         # we like to output both values so let's combine the values
         if ($odateEnd && $otimeEnd) {
             $value = $odateEnd . ' ' . $otimeEnd;
         }
         if (!$odateEnd && $otimeEnd) {
             # let's check if we have a startdate
             if ($odateStart) {
                 $value = $odateStart . ' ' . $otimeEnd;
             } else {
                 $value = $otimeEnd;
             }
         }
         if ($odateEnd && !$otimeEnd) {
             $value = $odateEnd;
         }
         if (!$odateEnd && !$otimeEnd) {
             $value = "";
         }
         $result['endDateTime'] = $value;
     }
     if ($result['startDateTime'] && $result['endDateTime']) {
         # check if the dates are the same
         # if so we will define a new value called "combinedDateTime"
         $start_day = $datetimeStart->format('m-d-Y');
         $end_day = $datetimeEnd->format('m-d-Y');
         if ($start_day == $end_day) {
             $value = '';
             $value .= $odateStart . ' ';
             if ($otimeStart & $otimeEnd) {
                 $value .= $otimeStart . '-' . $otimeEnd;
             }
             if (!$otimeStart & $otimeEnd) {
                 $value .= $otimeEnd;
             }
             if ($otimeStart & !$otimeEnd) {
                 $value .= $otimeStart;
             }
             if (!$otimeStart & !$otimeEnd) {
                 $value .= '';
             }
             $result['combinedDateTime'] = $value;
         }
     }
     return $result;
 }
Exemple #3
0
	static function formatSchemaOrgDateTime($dateStart, $timeStart, $dateEnd = "", $timeEnd = "")
	{
		$settings = JemHelper::globalattribs();
		$output = "";
		$formatD = "Y-m-d";
		$formatT = "%H:%M";

		if(JemHelper::isValidDate($dateStart)) {
			$content = self::formatdate($dateStart, $formatD);

			if($settings->get('global_show_timedetails','1') && $timeStart) {
				$content .= 'T'.self::formattime($timeStart, $formatT, false);
			}
			$output .= '<meta itemprop="startDate" content="'.$content.'" />';

			if(JemHelper::isValidDate($dateEnd)) {
				$content = self::formatdate($dateEnd, $formatD);

				if($settings->get('global_show_timedetails','1') && $timeEnd) {
					$content .= 'T'.self::formattime($timeEnd, $formatT, false);
				}
				$output .= '<meta itemprop="endDate" content="'.$content.'" />';
			}
		} else {
			// Open date

			if($settings->get('global_show_timedetails','1')) {
				if($timeStart) {
					$content = self::formattime($timeStart, $formatT, false);
					$output .= '<meta itemprop="startDate" content="'.$content.'" />';
				}
				// Display end time only when both times are set
				if($timeStart && $timeEnd) {
					$content .= self::formattime($timeEnd, $formatT, false);
					$output .= '<meta itemprop="endDate" content="'.$content.'" />';
				}
			}
		}
		return $output;
	}
Exemple #4
0
 static function icalAddEvent(&$calendartool, $event, $rows)
 {
     require_once JPATH_SITE . '/components/com_jem/classes/iCalcreator.class.php';
     $jemsettings = JemHelper::config();
     $settings = JemHelper::globalattribs();
     $config = JFactory::getConfig();
     $sitename = $config->get('sitename');
     # retrieve TimezoneName
     # if we have a timezone for the venue then that info will be used for the output
     if ($event->timezone) {
         # venue - timeZone
         $timezone_name = $event->timezone;
     } else {
         # global - TimeZone
         $timezone_name = JemHelper::getTimeZoneName();
     }
     // get categories names
     $categories = array();
     foreach ($event->categories as $c) {
         $categories[] = $c->catname;
     }
     // no start date...
     $validdate = JemHelper::isValidDate($event->dates);
     if (!$event->dates || !$validdate) {
         return false;
     }
     // make end date same as start date if not set
     if (!$event->enddates) {
         $event->enddates = $event->dates;
     }
     // start
     if (!preg_match('/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/', $event->dates, $start_date)) {
         JError::raiseError(0, JText::_('COM_JEM_ICAL_EXPORT_WRONG_STARTDATE_FORMAT'));
     }
     $date = array('year' => (int) $start_date[1], 'month' => (int) $start_date[2], 'day' => (int) $start_date[3]);
     // all day event if start time is not set
     if (!$event->times) {
         $dateparam = array('VALUE' => 'DATE');
         // for ical all day events, dtend must be send to the next day
         $event->enddates = strftime('%Y-%m-%d', strtotime($event->enddates . ' +1 day'));
         if (!preg_match('/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/', $event->enddates, $end_date)) {
             JError::raiseError(0, JText::_('COM_JEM_ICAL_EXPORT_WRONG_ENDDATE_FORMAT'));
         }
         $date_end = array('year' => $end_date[1], 'month' => $end_date[2], 'day' => $end_date[3]);
         $dateendparam = array('VALUE' => 'DATE');
     } else {
         if (!preg_match('/([0-9]{2}):([0-9]{2}):([0-9]{2})/', $event->times, $start_time)) {
             JError::raiseError(0, JText::_('COM_JEM_ICAL_EXPORT_WRONG_STARTTIME_FORMAT'));
         }
         $date['hour'] = $start_time[1];
         $date['min'] = $start_time[2];
         $date['sec'] = $start_time[3];
         $dateparam = array('VALUE' => 'DATE-TIME');
         if ($settings->get('ical_tz', 0) == 1) {
             $dateparam['TZID'] = $timezone_name;
         }
         if (!$event->endtimes || $event->endtimes == '00:00:00') {
             $event->endtimes = $event->times;
         }
         // if same day but end time < start time, change end date to +1 day
         if ($event->enddates == $event->dates && strtotime($event->dates . ' ' . $event->endtimes) < strtotime($event->dates . ' ' . $event->times)) {
             $event->enddates = strftime('%Y-%m-%d', strtotime($event->enddates . ' +1 day'));
         }
         if (!preg_match('/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/', $event->enddates, $end_date)) {
             JError::raiseError(0, JText::_('COM_JEM_ICAL_EXPORT_WRONG_ENDDATE_FORMAT'));
         }
         $date_end = array('year' => $end_date[1], 'month' => $end_date[2], 'day' => $end_date[3]);
         if (!preg_match('/([0-9]{2}):([0-9]{2}):([0-9]{2})/', $event->endtimes, $end_time)) {
             JError::raiseError(0, JText::_('COM_JEM_ICAL_EXPORT_WRONG_STARTTIME_FORMAT'));
         }
         $date_end['hour'] = $end_time[1];
         $date_end['min'] = $end_time[2];
         $date_end['sec'] = $end_time[3];
         $dateendparam = array('VALUE' => 'DATE-TIME');
         if ($settings->get('ical_tz') == 1) {
             $dateendparam['TZID'] = $timezone_name;
         }
     }
     // item description text
     $description = $event->title . '\\n';
     $description .= JText::_('COM_JEM_CATEGORY') . ': ' . implode(', ', $categories) . '\\n';
     $link = JURI::root() . JemHelperRoute::getEventRoute($event->slug);
     $link = JRoute::_($link);
     $description .= JText::_('COM_JEM_ICS_LINK') . ': ' . $link . '\\n';
     // location
     $location = array($event->venue);
     if (isset($event->street) && !empty($event->street)) {
         $location[] = $event->street;
     }
     if (isset($event->postalCode) && !empty($event->postalCode) && isset($event->city) && !empty($event->city)) {
         $location[] = $event->postalCode . ' ' . $event->city;
     } else {
         if (isset($event->postalCode) && !empty($event->postalCode)) {
             $location[] = $event->postalCode;
         }
         if (isset($event->city) && !empty($event->city)) {
             $location[] = $event->city;
         }
     }
     if (isset($event->countryname) && !empty($event->countryname)) {
         $exp = explode(",", $event->countryname);
         $location[] = $exp[0];
     }
     $location = implode(",", $location);
     $e = new vevent();
     $e->setProperty('summary', $event->title);
     $e->setProperty('categories', implode(', ', $categories));
     $e->setProperty('dtstart', $date, $dateparam);
     if (count($date_end)) {
         $e->setProperty('dtend', $date_end, $dateendparam);
     }
     $e->setProperty('description', $description);
     if ($location != '') {
         $e->setProperty('location', $location);
     }
     $e->setProperty('url', $link);
     $e->setProperty('uid', 'event' . $event->id . '@' . $sitename);
     $calendartool->addComponent($e);
     // add component to calendar
     return true;
 }