Esempio n. 1
0
/**
 * @param	array
 * @return	array
 */
function GCalendarParseRoute($segments)
{
    // Get the active menu item
    $menu = JFactory::getApplication()->getMenu();
    $item = $menu->getActive();
    $vars = array();
    $view = $segments[0];
    //if the view is calendars it is a menu link
    if ($view == 'calendars') {
        $view = $item->query['view'];
    }
    $vars['view'] = $view;
    switch ($view) {
        case 'event':
            $vars['gcid'] = $segments[1];
            $vars['eventID'] = $segments[2];
            $vars['Itemid'] = GCalendarUtil::getItemId($segments[2]);
            break;
        case 'google':
        case 'gcalendar':
            // do nothing
            break;
    }
    return $vars;
}
Esempio n. 2
0
/**
 * @param	array
 * @return	array
 */
function GCalendarParseRoute($segments)
{
    // Get the active menu item
    $menu =& JSite::getMenu();
    $item =& $menu->getActive();
    $vars = array();
    $view = $segments[0];
    //if the view is calendars it is a menu link
    if ($view == 'calendars') {
        $view = $item->query['view'];
    }
    $vars['view'] = $view;
    switch ($view) {
        case 'event':
            $vars['eventID'] = $segments[1];
            $vars['gcid'] = $segments[2];
            $vars['Itemid'] = GCalendarUtil::getItemId($segments[2]);
            break;
        case 'day':
            $vars['gcids'] = explode("-", $segments[2]);
            $calids = $vars['gcids'];
            if (count($calids) > 0) {
                $itemid = GCalendarUtil::getItemId($calids[0]);
                foreach ($calids as $cal) {
                    $id = GCalendarUtil::getItemId($cal);
                    if ($id != $itemid) {
                        $itemid = null;
                        break;
                    }
                }
                if ($itemid != null) {
                    $vars['Itemid'] = $itemid;
                }
            }
            break;
        case 'google':
        case 'gcalendar':
            // do nothing
            break;
    }
    return $vars;
}
Esempio n. 3
0
 /**
  * The simplepie event is rendered for the given formats and
  * returned as HTML code.
  *
  * @param $event
  * @param $format
  * @param $dateformat
  * @param $timeformat
  * @return the HTML code of the efent
  */
 function renderEvent($event, $format, $dateformat, $timeformat)
 {
     $feed = $event->get_feed();
     $tz = GCalendarUtil::getComponentParameter('timezone');
     if ($tz == '') {
         $tz = $feed->get_timezone();
     }
     $itemID = GCalendarUtil::getItemId($feed->get('gcid'));
     if (!empty($itemID)) {
         $itemID = '&Itemid=' . $itemID;
     } else {
         $menu = JSite::getMenu();
         $activemenu = $menu->getActive();
         if ($activemenu != null) {
             $itemID = '&Itemid=' . $activemenu->id;
         }
     }
     // These are the dates we'll display
     $startDate = self::strftime($dateformat, $event->get_start_date());
     $startTime = self::strftime($timeformat, $event->get_start_date());
     $endDate = self::strftime($dateformat, $event->get_end_date());
     $endTime = self::strftime($timeformat, $event->get_end_date());
     $temp_event = $format;
     switch ($event->get_day_type()) {
         case $event->SINGLE_WHOLE_DAY:
             $temp_event = str_replace("{startdate}", $startDate, $temp_event);
             $temp_event = str_replace("{starttime}", "", $temp_event);
             $temp_event = str_replace("{dateseparator}", "", $temp_event);
             $temp_event = str_replace("{enddate}", "", $temp_event);
             $temp_event = str_replace("{endtime}", "", $temp_event);
             break;
         case $event->SINGLE_PART_DAY:
             $temp_event = str_replace("{startdate}", $startDate, $temp_event);
             $temp_event = str_replace("{starttime}", $startTime, $temp_event);
             $temp_event = str_replace("{dateseparator}", "-", $temp_event);
             $temp_event = str_replace("{enddate}", "", $temp_event);
             $temp_event = str_replace("{endtime}", $endTime, $temp_event);
             break;
         case $event->MULTIPLE_WHOLE_DAY:
             $SECSINDAY = 86400;
             $endDate = self::strftime($dateformat, $event->get_end_date() - $SECSINDAY);
             $temp_event = str_replace("{startdate}", $startDate, $temp_event);
             $temp_event = str_replace("{starttime}", "", $temp_event);
             $temp_event = str_replace("{dateseparator}", "-", $temp_event);
             $temp_event = str_replace("{enddate}", $endDate, $temp_event);
             $temp_event = str_replace("{endtime}", "", $temp_event);
             break;
         case $event->MULTIPLE_PART_DAY:
             $temp_event = str_replace("{startdate}", $startDate, $temp_event);
             $temp_event = str_replace("{starttime}", $startTime, $temp_event);
             $temp_event = str_replace("{dateseparator}", "-", $temp_event);
             $temp_event = str_replace("{enddate}", $endDate, $temp_event);
             $temp_event = str_replace("{endtime}", $endTime, $temp_event);
             break;
     }
     if (substr_count($temp_event, '"{description}"')) {
         // If description is in html attribute
         $desc = htmlspecialchars(str_replace('"', "'", $event->get_description()));
     } else {
         //Make any URLs used in the description also clickable
         $desc = preg_replace("@(src|href)=\"https?\\://@i", '\\1="', $event->get_description());
         $desc = preg_replace("@(((f|ht)tps?://)[^\"\\'\\>\\s]+)@", '<a href="\\1" target="_blank">\\1</a>', $desc);
         //or "¤(((f|ht)tp:\/\/)[\-a-zA-Z0-9@:%_\+\.~#\?,\/=&;]+)¤"
     }
     $temp_event = str_replace("{title}", $event->get_title(), $temp_event);
     $temp_event = str_replace("{description}", $desc, $temp_event);
     $temp_event = str_replace("{where}", $event->get_location(), $temp_event);
     $temp_event = str_replace("{backlink}", htmlentities(JRoute::_('index.php?option=com_gcalendar&view=event&eventID=' . $event->get_id() . '&start=' . $event->get_start_date() . '&end=' . $event->get_end_date() . '&gcid=' . $feed->get('gcid') . $itemID)), $temp_event);
     $temp_event = str_replace("{link}", $event->get_link() . '&ctz=' . $tz, $temp_event);
     $temp_event = str_replace("{maplink}", "http://maps.google.com/?q=" . urlencode($event->get_location()), $temp_event);
     $temp_event = str_replace("{calendarname}", $feed->get('gcname'), $temp_event);
     $temp_event = str_replace("{calendarcolor}", $feed->get('gccolor'), $temp_event);
     // Accept and translate HTML
     $temp_event = html_entity_decode($temp_event);
     return $temp_event;
 }
Esempio n. 4
0
 * 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-2009 Allon Moritz
 * @version $Revision: 2.1.2 $
 */
defined('_JEXEC') or die('Restricted access');
require_once 'daycalendar.php';
$model =& $this->getModel();
$gcids = $model->getState('gcids');
$itemID = null;
if (!empty($gcids)) {
    $itemID = GCalendarUtil::getItemId($gcids[0]);
    foreach ($gcids as $cal) {
        $id = GCalendarUtil::getItemId($cal);
        if ($id != $itemID) {
            $itemID = null;
            break;
        }
    }
    if ($itemID != null) {
        $component =& JComponentHelper::getComponent('com_gcalendar');
        $menu =& JSite::getMenu();
        $item = $menu->getItem($itemID);
        $backLinkView = $item->query['view'];
        echo "<table><tr><td valign=\"middle\">\n";
        echo '<a href="' . JRoute::_('index.php?option=com_gcalendar&view=' . $backLinkView . '&Itemid=' . $itemID) . "\">\n";
        echo "<img id=\"prevBtn_img\" height=\"16\" border=\"0\" width=\"16\" alt=\"backlink\" src=\"components/com_gcalendar/hiddenviews/day/tmpl/back.png\"/>\n";
        echo "</a></td><td valign=\"middle\">\n";
        echo '<a href="' . JRoute::_('index.php?option=com_gcalendar&view=' . $backLinkView . '&Itemid=' . $itemID) . '">' . JText::_('CALENDAR_BACK_LINK') . "</a>\n";
Esempio n. 5
0
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * 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-2010 Allon Moritz
 * @since 2.2.0
 */
defined('_JEXEC') or die('Restricted access');
$params = new JParameter('');
$itemID = null;
foreach ($this->calendars as $calendar) {
    $itemID = GCalendarUtil::getItemId($calendar->id);
}
if (!empty($itemID)) {
    $component =& JComponentHelper::getComponent('com_gcalendar');
    $menu =& JSite::getMenu();
    $params = $menu->getParams($itemID);
    echo "<table><tr><td valign=\"middle\">\n";
    echo '<a href="' . JRoute::_('index.php?option=com_gcalendar&Itemid=' . $itemID) . "\">\n";
    echo "<img id=\"prevBtn_img\" height=\"16\" border=\"0\" width=\"16\" alt=\"backlink\" src=\"components/com_gcalendar/images/back.png\"/>\n";
    echo "</a></td><td valign=\"middle\">\n";
    echo '<a href="' . JRoute::_('index.php?option=com_gcalendar&Itemid=' . $itemID) . '">' . JText::_('CALENDAR_BACK_LINK') . "</a>\n";
    echo "</td></tr></table>\n";
}
JHTML::_('behavior.mootools');
GCalendarUtil::loadJQuery();
$document =& JFactory::getDocument();
Esempio n. 6
0
 /**
  * Returns a Simplepie feed for the calendar according
  * to the parameter gcid.
  * If there is a menu available for this calendar the
  * cache is used and configured from the menu parameters.
  */
 function getGoogleCalendarFeeds()
 {
     GCalendarUtil::ensureSPIsLoaded();
     $startDate = JRequest::getVar('start', null);
     $endDate = JRequest::getVar('end', null);
     $browserTz = JRequest::getInt('browserTimezone', null);
     if (!empty($browserTz)) {
         $browserTz = $browserTz * 60;
     } else {
         $browserTz = 0;
     }
     $serverOffset = date('Z', $startDate);
     $startDate = $startDate - $browserTz - $serverOffset - GCalendarModelJSONFeed::getGCalendarTZOffset($startDate);
     $endDate = $endDate - $browserTz - $serverOffset - GCalendarModelJSONFeed::getGCalendarTZOffset($endDate);
     $calendarids = '';
     if (JRequest::getVar('gcids', null) != null) {
         if (is_array(JRequest::getVar('gcids', null))) {
             $calendarids = JRequest::getVar('gcids', null);
         } else {
             $calendarids = explode(',', JRequest::getVar('gcids', null));
         }
     } else {
         $calendarids = JRequest::getVar('gcid', null);
     }
     $results = GCalendarDBUtil::getCalendars($calendarids);
     if (empty($results)) {
         return null;
     }
     $calendars = array();
     foreach ($results as $result) {
         if (empty($result->calendar_id)) {
             continue;
         }
         $feed = new SimplePie_GCalendar();
         if (JRequest::getCmd('layout', null) == 'module') {
             $cacheTime = JRequest::getInt('ctime', -1);
             if ($cacheTime > -1) {
                 // check if cache directory exists and is writeable
                 $cacheDir = JPATH_BASE . DS . 'cache' . DS . 'mod_gcalendar';
                 $cache_exists = true;
                 JFolder::create($cacheDir, 0755);
                 if (!is_writable($cacheDir)) {
                     JError::raiseWarning(500, "Created cache at " . $cacheDir . " is not writable, disabling cache.");
                     $cache_exists = false;
                 } else {
                     $cache_exists = true;
                 }
                 $feed->enable_cache($cache_exists);
                 if ($cache_exists) {
                     $feed->set_cache_location($cacheDir);
                     $feed->set_cache_duration($cacheTime);
                 }
             } else {
                 $feed->enable_cache(false);
                 $feed->set_cache_duration(-1);
             }
         } else {
             $linkID = GCalendarUtil::getItemId($result->id);
             $menus =& JSite::getMenu();
             $params = $menus->getParams($linkID);
             $conf =& JFactory::getConfig();
             if ($params != null && ($params->get('gccache', 0) == 2 || $params->get('gccache', 0) == 1 && $conf->getValue('config.caching'))) {
                 $cacheTime = $params->get('gccache_time', $conf->getValue('config.cachetime') * 60);
                 // check if cache directory exists and is writeable
                 $cacheDir = JPATH_BASE . DS . 'cache' . DS . 'com_gcalendar';
                 JFolder::create($cacheDir, 0755);
                 if (!is_writable($cacheDir)) {
                     JError::raiseWarning(500, "Created cache at " . $cacheDir . " is not writable, disabling cache.");
                     $cache_exists = false;
                 } else {
                     $cache_exists = true;
                 }
                 //check and set caching
                 $feed->enable_cache($cache_exists);
                 if ($cache_exists) {
                     $feed->set_cache_location($cacheDir);
                     $feed->set_cache_duration($cacheTime);
                 }
             } else {
                 $feed->enable_cache(false);
                 $feed->set_cache_duration(-1);
             }
         }
         $feed->set_show_past_events(FALSE);
         $feed->set_sort_ascending(TRUE);
         $feed->set_orderby_by_start_date(TRUE);
         $feed->set_expand_single_events(TRUE);
         $feed->enable_order_by_date(FALSE);
         $feed->set_start_date($startDate);
         $feed->set_end_date($endDate);
         $feed->set_max_events(1000);
         $feed->put('gcid', $result->id);
         $feed->put('gccolor', $result->color);
         $feed->put('gcname', $result->name);
         $feed->set_cal_language(GCalendarUtil::getFrLanguage());
         $feed->set_timezone(GCalendarUtil::getComponentParameter('timezone'));
         $url = SimplePie_GCalendar::create_feed_url($result->calendar_id, $result->magic_cookie);
         $feed->set_feed_url($url);
         $feed->init();
         //echo $feed->feed_url;
         if ($feed->error()) {
             JError::raiseWarning(500, 'Simplepie detected an error for the calendar ' . $result->calendar_id . '. Please run the <a href="administrator/components/com_gcalendar/libraries/sp-gcalendar/sp_compatibility_test.php">compatibility utility</a>.<br>The following Simplepie error occurred:<br>' . $feed->error());
         }
         $feed->handle_content_type();
         $calendars[] = $feed;
     }
     return $calendars;
 }
Esempio n. 7
0
 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;
 }
Esempio n. 8
0
 public static function renderEvents(array $events = null, $output, $params = null, $eventParams = array())
 {
     if ($events === null) {
         $events = array();
     }
     JFactory::getLanguage()->load('com_gcalendar', JPATH_ADMINISTRATOR . '/components/com_gcalendar');
     $lastHeading = '';
     $configuration = $eventParams;
     $configuration['events'] = array();
     foreach ($events as $event) {
         if (!is_object($event)) {
             continue;
         }
         $variables = array();
         $itemID = GCalendarUtil::getItemId($event->getParam('gcid', null));
         if (!empty($itemID) && JRequest::getVar('tmpl', null) != 'component' && $event != null) {
             $component = JComponentHelper::getComponent('com_gcalendar');
             $menu = JFactory::getApplication()->getMenu();
             $item = $menu->getItem($itemID);
             if ($item != null) {
                 $backLinkView = $item->query['view'];
                 $dateHash = '';
                 if ($backLinkView == 'gcalendar') {
                     $day = $event->getStartDate()->format('d', true);
                     $month = $event->getStartDate()->format('m', true);
                     $year = $event->getStartDate()->format('Y', true);
                     $dateHash = '#year=' . $year . '&month=' . $month . '&day=' . $day;
                 }
             }
             $variables['calendarLink'] = JRoute::_('index.php?option=com_gcalendar&Itemid=' . $itemID . $dateHash);
         }
         $itemID = GCalendarUtil::getItemId($event->getParam('gcid'));
         if (!empty($itemID)) {
             $itemID = '&Itemid=' . $itemID;
         } else {
             $menu = JFactory::getApplication()->getMenu();
             $activemenu = $menu->getActive();
             if ($activemenu != null) {
                 $itemID = '&Itemid=' . $activemenu->id;
             }
         }
         $variables['backlink'] = JRoute::_('index.php?option=com_gcalendar&view=event&eventID=' . $event->getGCalId() . '&gcid=' . $event->getParam('gcid') . $itemID);
         $variables['link'] = $event->getLink('alternate')->getHref();
         $variables['calendarcolor'] = $event->getParam('gccolor');
         // the date formats from http://php.net/date
         $dateformat = $params->get('event_date_format', 'm.d.Y');
         $timeformat = $params->get('event_time_format', 'g:i a');
         // These are the dates we'll display
         $startDate = $event->getStartDate()->format($dateformat, true);
         $startTime = $event->getStartDate()->format($timeformat, true);
         $endDate = $event->getEndDate()->format($dateformat, true);
         $endTime = $event->getEndDate()->format($timeformat, true);
         $dateSeparator = '-';
         $timeString = $startTime . ' ' . $startDate . ' ' . $dateSeparator . ' ' . $endTime . ' ' . $endDate;
         $copyDateTimeFormat = 'Ymd';
         switch ($event->getDayType()) {
             case GCalendar_Entry::SINGLE_WHOLE_DAY:
                 $timeString = $startDate;
                 $copyDateTimeFormat = 'Ymd';
                 $startTime = '';
                 $endTime = '';
                 $dateSeparator = '';
                 break;
             case GCalendar_Entry::SINGLE_PART_DAY:
                 $timeString = $startDate . ' ' . $startTime . ' ' . $dateSeparator . ' ' . $endTime;
                 $copyDateTimeFormat = 'Ymd\\THis';
                 break;
             case GCalendar_Entry::MULTIPLE_WHOLE_DAY:
                 $tmp = clone $event->getEndDate();
                 $tmp->modify('-1 day');
                 $endDate = $tmp->format($dateformat, true);
                 $timeString = $startDate . ' ' . $dateSeparator . ' ' . $endDate;
                 $copyDateTimeFormat = 'Ymd';
                 $startTime = '';
                 $endTime = '';
                 break;
             case GCalendar_Entry::MULTIPLE_PART_DAY:
                 $timeString = $startTime . ' ' . $startDate . ' ' . $dateSeparator . ' ' . $endTime . ' ' . $endDate;
                 $copyDateTimeFormat = 'Ymd\\THis';
                 break;
         }
         $variables['calendarName'] = $event->getParam('gcname');
         $variables['title'] = (string) $event->getTitle();
         if ($params->get('show_event_date', 1) == 1) {
             $variables['date'] = $timeString;
             $variables['startDate'] = $startDate;
             $variables['startTime'] = $startTime;
             $variables['endDate'] = $endDate;
             $variables['endTime'] = $endTime;
             $variables['dateseparator'] = $dateSeparator;
             $variables['month'] = strtoupper($event->getStartDate()->format('M', true));
             $variables['day'] = $event->getStartDate()->format('j', true);
         }
         $variables['modifieddate'] = $event->getModifiedDate()->format($timeformat, true) . ' ' . $event->getModifiedDate()->format($dateformat, true);
         if (count($event->getWho()) > 0) {
             $variables['hasAttendees'] = true;
             $variables['attendees'] = array();
             foreach ($event->getWho() as $a) {
                 $variables['attendees'][] = array('name' => (string) $a->getValueString(), 'email' => base64_encode(str_replace('@', '#', $a->getEmail())));
             }
         }
         $location = $event->getLocation();
         $variables['location'] = $location;
         if (!empty($location)) {
             $variables['maplink'] = (JBrowser::getInstance()->isSSLConnection() ? 'https' : 'http') . "://maps.google.com/?q=" . urlencode($location) . '&hl=' . substr(GCalendarUtil::getFrLanguage(), 0, 2) . '&output=embed';
         }
         $variables['description'] = (string) $event->getContent();
         if ($params->get('event_description_format', 1) == 1) {
             $variables['description'] = preg_replace("@(src|href)=\"https?://@i", '\\1="', $event->getContent());
             $variables['description'] = nl2br(preg_replace("@(((f|ht)tp:\\/\\/)[^\"\\'\\>\\s]+)@", '<a href="\\1" target="_blank">\\1</a>', $variables['description']));
         }
         $variables['hasAuthor'] = count($event->getAuthor()) > 0;
         $variables['author'] = array();
         foreach ($event->getAuthor() as $author) {
             $variables['author'][] = array('name' => (string) $author->getName(), 'email' => base64_encode(str_replace('@', '#', $author->getEmail())));
         }
         $variables['copyGoogleUrl'] = 'http://www.google.com/calendar/render?action=TEMPLATE&text=' . urlencode($event->getTitle());
         $variables['copyGoogleUrl'] .= '&dates=' . $event->getStartDate()->format($copyDateTimeFormat) . '%2F' . $event->getEndDate()->format($copyDateTimeFormat);
         $variables['copyGoogleUrl'] .= '&location=' . urlencode($event->getLocation());
         $variables['copyGoogleUrl'] .= '&details=' . urlencode($event->getContent());
         $variables['copyGoogleUrl'] .= '&hl=' . GCalendarUtil::getFrLanguage() . '&ctz=Etc/GMT';
         $variables['copyGoogleUrl'] .= '&sf=true&output=xml';
         $ical_timeString_start = $startTime . ' ' . $startDate;
         $ical_timeString_start = strtotime($ical_timeString_start);
         $ical_timeString_end = $endTime . ' ' . $endDate;
         $ical_timeString_end = strtotime($ical_timeString_end);
         $loc = $event->getLocation();
         $variables['copyOutlookUrl'] = JRoute::_("index.php?option=com_gcalendar&view=ical&format=raw&eventID=" . $event->getGCalId() . '&gcid=' . $event->getParam('gcid'));
         $groupHeading = $event->getStartDate()->format($params->get('grouping', ''), true);
         if ($groupHeading != $lastHeading) {
             $lastHeading = $groupHeading;
             $variables['header'] = $groupHeading;
         }
         $configuration['events'][] = $variables;
     }
     $configuration['eventLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL');
     $configuration['calendarLinkLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_CALENDAR_BACK_LINK');
     $configuration['calendarNameLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_CALENDAR_NAME');
     $configuration['titleLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_EVENT_TITLE');
     $configuration['dateLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_WHEN');
     $configuration['attendeesLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_ATTENDEES');
     $configuration['locationLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_LOCATION');
     $configuration['descriptionLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_DESCRIPTION');
     $configuration['authorLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_AUTHOR');
     $configuration['copyLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_COPY');
     $configuration['copyGoogleLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_COPY_TO_MY_CALENDAR');
     $configuration['copyOutlookLabel'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_COPY_TO_MY_CALENDAR_ICS');
     $configuration['language'] = substr(GCalendarUtil::getFrLanguage(), 0, 2);
     $configuration['emptyText'] = JText::_('COM_GCALENDAR_FIELD_CONFIG_EVENT_LABEL_NO_EVENT_TEXT');
     try {
         $m = new Mustache();
         return $m->render($output, $configuration);
     } catch (Exception $e) {
         echo $e->getMessage();
     }
 }
Esempio n. 9
0
 * 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-2010 Allon Moritz
 * @since 2.2.0
 */
defined('_JEXEC') or die('Restricted access');
$data = array();
$SECSINDAY = 86400;
if (!empty($this->calendars)) {
    foreach ($this->calendars as $calendar) {
        $itemID = GCalendarUtil::getItemId($calendar->get('gcid'));
        $menus =& JSite::getMenu();
        $params = $menus->getParams($itemID);
        if (empty($params)) {
            $params = new JParameter('');
        }
        $dateformat = $params->get('description_date_format', '%d.%m.%Y');
        $timeformat = $params->get('description_time_format', '%H:%M');
        $event_display = $params->get('description_format', '<p>{startdate} {starttime} {dateseparator} {enddate} {endtime}<br/>{description}</p>');
        if (!empty($itemID)) {
            $itemID = '&Itemid=' . $itemID;
        } else {
            $menu = JSite::getMenu();
            $activemenu = $menu->getActive();
            if ($activemenu != null) {
                $itemID = '&Itemid=' . $activemenu->id;
Esempio n. 10
0
 * @copyright 2007-2009 Allon Moritz
 * @version $Revision: 2.1.2 $
 */
defined('_JEXEC') or die('Restricted access');
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_gcalendar' . DS . 'util.php';
$tz = GCalendarUtil::getComponentParameter('timezone');
if (!empty($tz)) {
    $tz = '&ctz=' . $tz;
}
$lg = '&hl=' . GCalendarUtil::getFrLanguage();
$url = 'http://www.google.com/calendar/event?eid=' . $this->eventID . $tz . $lg;
$domain = GCalendarUtil::getComponentParameter('google_apps_domain');
if (!empty($domain)) {
    $url = 'http://www.google.com/calendar/hosted/' . $domain . '/event?eid=' . $this->eventID . $tz . $lg;
}
$itemID = GCalendarUtil::getItemId(JRequest::getVar('gcid', null));
if (!empty($itemID) && JRequest::getVar('tmpl', null) != 'component') {
    $component =& JComponentHelper::getComponent('com_gcalendar');
    $menu =& JSite::getMenu();
    $item = $menu->getItem($itemID);
    if ($item != null) {
        $backLinkView = $item->query['view'];
        echo "<table><tr><td valign=\"middle\">\n";
        echo '<a href="' . JRoute::_('index.php?option=com_gcalendar&view=' . $backLinkView . '&Itemid=' . $itemID) . "\">\n";
        echo "<img id=\"prevBtn_img\" height=\"16\" border=\"0\" width=\"16\" alt=\"backlink\" src=\"components/com_gcalendar/hiddenviews/event/tmpl/back.png\"/>\n";
        echo "</a></td><td valign=\"middle\">\n";
        echo '<a href="' . JRoute::_('index.php?option=com_gcalendar&view=' . $backLinkView . '&Itemid=' . $itemID) . '">' . JText::_('CALENDAR_BACK_LINK') . "</a>\n";
        echo "</td></tr></table>\n";
    }
}
echo "<iframe id=\"gcalendarEvent\" name=\"iframe\" src=\"" . $url . "\" ";
Esempio n. 11
0
                $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);
Esempio n. 12
0
 /**
  * This is an internal helper method and should not be called from outside of the class
  * otherwise you know what you do.
  *
  */
 function getIdString($calids)
 {
     $calendars = '';
     $itemid = null;
     if (!empty($calids)) {
         $calendars = '&gcids=' . implode(',', $calids);
         $itemid = GCalendarUtil::getItemId($calids[0]);
         foreach ($calids as $cal) {
             $id = GCalendarUtil::getItemId($cal);
             if ($id != $itemid) {
                 $itemid = null;
                 break;
             }
         }
     }
     if ($itemid != null) {
         return $calendars . '&Itemid=' . $itemid;
     }
     return $calendars;
 }