public function onContentPrepare($context, &$article, &$params, $page = 0) { if (!$article->text) { return; } $calendarids = $this->params->get('calendarids'); $results = GCalendarDBUtil::getCalendars($calendarids); if (empty($results)) { return; } $maxEvents = $this->params->get('max_events', 10); $filter = $this->params->get('find', ''); $values = array(); foreach ($results as $result) { $events = GCalendarZendHelper::getEvents($result, null, null, $maxEvents, $filter); if (!empty($events)) { foreach ($events as $event) { if (!$event instanceof GCalendar_Entry) { continue; } $values[] = $event; } } } usort($values, array("GCalendar_Entry", "compare")); $values = array_slice($values, 0, $maxEvents); $article->text = GCalendarUtil::renderEvents($values, $article->text, JComponentHelper::getParams('com_gcalendar')); }
public function onContentSearch($text, $phrase = '', $ordering = '', $areas = null) { $user = JFactory::getUser(); $text = trim($text); if ($text == '') { return array(); } if ($phrase == 'exact') { $text = "\"" . $text . "\""; } switch ($ordering) { case 'oldest': $orderasc = GCalendarZendHelper::SORT_ORDER_ASC; break; case 'newest': default: $orderasc = GCalendarZendHelper::SORT_ORDER_DESC; } if (is_array($areas)) { if (!array_intersect($areas, array_keys($this->onContentSearchAreas()))) { return array(); } } $pluginParams = $this->params; $limit = $pluginParams->def('search_limit', 50); $calendarids = $pluginParams->get('calendarids', NULL); $pastevents = $pluginParams->get('pastevents', 1) == 1; $results = GCalendarDBUtil::getCalendars($calendarids); if (empty($results)) { return array(); } $events = array(); foreach ($results as $result) { $tmp = GCalendarZendHelper::getEvents($result, null, null, $limit, $text, GCalendarZendHelper::ORDER_BY_START_TIME, $pastevents, $orderasc); foreach ($tmp as $event) { $events[] = $event; } } if ($orderasc == GCalendarZendHelper::SORT_ORDER_ASC) { usort($events, array("GCalendar_Entry", "compare")); } else { usort($events, array("GCalendar_Entry", "compareDesc")); } array_splice($events, $limit); $return = array(); foreach ($events as $event) { $params = clone JComponentHelper::getParams('com_gcalendar'); $title = GCalendarUtil::renderEvents(array($event), '{{#events}}{{date}} {{{title}}}{{/events}}', $params); $text = GCalendarUtil::renderEvents(array($event), '{{#events}}{{{description}}}{{/events}}', $params); $itemID = GCalendarUtil::getItemId($event->getParam('gcid')); if (!empty($itemID)) { $itemID = '&Itemid=' . $itemID; } $row->href = JRoute::_('index.php?option=com_gcalendar&view=event&eventID=' . $event->getGCalId() . '&gcid=' . $event->getParam('gcid') . $itemID); $row->title = $title; $row->text = $text; $row->section = JText::_('PLG_SEARCH_GCALENDAR_OUTPUT_CATEGORY'); $row->category = $event->getParam('gcid'); $row->created = $event->getStartDate()->format('U', true); $row->browsernav = ''; $return[] = $row; $row = null; } return $return; }
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GCalendar. If not, see <http://www.gnu.org/licenses/>. * * @author Allon Moritz * @copyright 2007-2011 Allon Moritz * @since 2.2.0 */ defined('_JEXEC') or die('Restricted access'); $tmp = clone JComponentHelper::getParams('com_gcalendar'); $tmp->set('event_date_format', $params->get('date_format', $tmp->get('event_date_format'))); $tmp->set('event_time_format', $params->get('time_format', $tmp->get('event_time_format'))); $tmp->set('grouping', $params->get('output_grouping', '')); $output = $params->get('output', '{{#events}} {{#header}}<p style="clear: both;"><strong>{{header}}</strong></p>{{/header}} <p style="clear: both;"/> <div style="float:left;margin-right:6px;width:42px;height:42px;background-image:url(\'modules/mod_gcalendar_upcoming/tmpl/images/calendar-icon.gif\')"> <div style="background-color: #{{calendarcolor}};width:32px;height:10px;margin-top:6px;margin-left:5px;"></div> <div style="color: #FFFFFF;padding:2px;font-weight:bold;font-size:10px;text-align:center;position:relative;margin-top:-16px;margin-bottom:-4px;">{{month}}</div> <div style="color: #{{calendarcolor}};font-weight:bold;font-size:1.3em;width:42px;text-align:center;">{{day}}</div> </div> <p>{{date}}<br/><a href="{{{backlink}}}">{{title}}</a></p> <p style="clear: both;"/> {{/events}} {{^events}} {{emptyText}} {{/events}}'); echo GCalendarUtil::renderEvents($events, $output, $tmp);
} foreach ($calendar as $event) { $dateformat = $params->get('description_date_format', 'm.d.Y'); $timeformat = $params->get('description_time_format', 'g:i a'); $params->set('event_date_format', $dateformat); $params->set('event_time_format', $timeformat); if (!empty($itemID)) { $itemID = '&Itemid=' . $itemID; } else { $menu = JFactory::getApplication()->getMenu(); $activemenu = $menu->getActive(); if ($activemenu != null) { $itemID = '&Itemid=' . $activemenu->id; } } $description = GCalendarUtil::renderEvents(array($event), $params->get('description_format', '{{#events}}<p>{{date}}<br/>{{{description}}}</p>{{/events}}'), $params); if (strlen($description) > 200) { $description = mb_substr($description, 0, 196) . ' ...'; } $allDayEvent = $event->getDayType() == GCalendar_Entry::SINGLE_WHOLE_DAY || $event->getDayType() == GCalendar_Entry::MULTIPLE_WHOLE_DAY; $end = $event->getEndDate(); if ($allDayEvent) { $end = clone $event->getEndDate(); $end->modify('-1 day'); } $eventData = array('id' => $event->getGCalId(), 'gcid' => $event->getParam('gcid'), 'title' => htmlspecialchars_decode($event->getTitle()), 'start' => $event->getStartDate()->format('Y-m-d\\TH:i:s', true), 'end' => $end->format('Y-m-d\\TH:i:s', true), 'url' => JRoute::_('index.php?option=com_gcalendar&view=event&eventID=' . $event->getGCalId() . '&gcid=' . $event->getParam('gcid') . (empty($itemID) ? '' : $itemID)), 'className' => "gcal-event_gccal_" . $event->getParam('gcid'), 'allDay' => $allDayEvent, 'description' => $description); $dispatcher->trigger('onGCEventBeforeLoad', array($event, &$eventData)); $data[] = $eventData; } } }
<td> <a target="_blank" href="{{copyGoogleUrl}}">{{copyGoogleLabel}}</a> </td> </tr> <tr> <td class="event_content_key"></td> <td> <a target="_blank" href="{{copyOutlookUrl}}">{{copyOutlookLabel}}</a> </td> </tr> </table> {{#description}} <h2>{{descriptionLabel}}</h2> {{{description}}} {{/description}} {{#pluginsAfter}} {{{.}}} {{/pluginsAfter}} </div> {{/events}} {{^events}} {{emptyText}} {{/events}} '; $plugins = array(); $plugins['pluginsBefore'] = array(); $plugins['pluginsAfter'] = array(); $dispatcher->trigger('onBeforeDisplayEvent', array($this->event, &$content, &$plugins['pluginsBefore'])); $dispatcher->trigger('onAfterDisplayEvent', array($this->event, &$content, &$plugins['pluginsAfter'])); echo GCalendarUtil::renderEvents(array($this->event), $content, JFactory::getApplication()->getParams(), $plugins); if (!JFile::exists(JPATH_ADMINISTRATOR . '/components/com_gcalendarap/gcalendarap.php')) { echo "<div style=\"text-align:center;margin-top:10px\" ><a href=\"http://g4j.digital-peak.com\">Powered by GCalendar</a></div>\n"; }
$date = $start->format('Y-m-d', true); if (!key_exists($date, $tmp)) { $tmp[$date] = array(); } $tmp[$date][] = $item; $start->modify("+1 day"); } while ($start < $end); } } } $params = clone JComponentHelper::getParams('com_gcalendar'); $params->set('show_event_title', 1); $data = array(); foreach ($tmp as $date => $events) { $linkIDs = array(); $itemId = ''; foreach ($events as $event) { $linkIDs[$event->getParam('gcid')] = $event->getParam('gcid'); $id = GCalendarUtil::getItemId($event->getParam('gcid'), true); if (!empty($id)) { $itemId = '&Itemid=' . $id; } } $parts = explode('-', $date); $day = $parts[2]; $month = $parts[1]; $year = $parts[0]; $url = JRoute::_('index.php?option=com_gcalendar&view=gcalendar&gcids=' . implode(',', $linkIDs) . $itemId . '#year=' . $year . '&month=' . $month . '&day=' . $day . '&view=agendaDay'); $data[] = array('id' => $date, 'title' => utf8_encode(chr(160)), 'start' => $date, 'url' => $url, 'allDay' => true, 'description' => GCalendarUtil::renderEvents($events, sprintf(JText::_('COM_GCALENDAR_JSON_VIEW_EVENT_TITLE'), count($events)) . '<ul>{{#events}}<li>{{title}}</li>{{/events}}</ul>', $params)); } echo json_encode($data);