'event_calendar:error_event_edit' => "Error: there is no such event or you do not have permission to edit it.",
'event_calendar:add' => "Add",
+ 'feed:ical' => "iCal feed for this page",
+
/**
* Event calendar river
**/
// pages
function event_calendar_get_page_content_list($page_type,$group_guid,$start_date,$display_mode,$filter,$region='-') {
+ global $autofeed;
+ $autofeed = true;
if ($page_type == 'group') {
if (!event_calendar_activated_for_group($group_guid)) {
forward();
}
}
}
+
+ $url = full_url();
+ if (substr_count($url, '?')) {
+ $url .= "&view=ical";
+ } else {
+ $url .= "?view=ical";
+ }
$params = event_calendar_generate_listing_params($page_type,$group_guid,$start_date,$display_mode,$filter,$region);
+
+ $url = elgg_format_url($url);
+ $menu_options = array(
+ 'name' => 'ical',
+ 'text' => '<img src="'.elgg_get_site_url().'mod/event_calendar/images/ics.png" />',
+ 'href' => $url,
+ 'title' => elgg_echo('feed:ical'),
+ 'priority' => 800,
+ );
+ $menu_item = ElggMenuItem::factory($menu_options);
+ elgg_register_menu_item('extras', $menu_item);
$body = elgg_view_layout("content", $params);
$user_guid = elgg_get_logged_in_user_guid();
$offset = get_input('offset');
+ $limit = get_input('limit',15);
- $limit = 15;
if ($event_calendar_spots_display == 'yes') {
if (!$filter) {
$filter = 'open';
);
$content = elgg_view('event_calendar/show_events', $vars);
+
$filter_override = elgg_view('event_calendar/filter_menu',$vars);
if ($event_calendar_listing_format == 'paged') {
--- /dev/null
+<?php
+if ($vars['events']) {
+ foreach ($vars['events'] as $entity) {
+ echo elgg_view_entity($entity);
+ }
+ //echo elgg_view_entity_list($vars['events'], $vars['count'], $vars['offset'], $vars['limit'], false, false);
+}
--- /dev/null
+<?php
+$event = $vars['entity'];
+if ($event->organizer) {
+ $organizer = "\nORGANIZER;CN={$event->organizer}\n";
+} else {
+ $organizer = '';
+}
+
+if ($event->description) {
+ // make sure that we are using Unix line endings
+ $description = str_replace("\r\n","\n",$event->description);
+ $description = str_replace("\r","\n",$description);
+
+ // now convert to icalendar format
+ $description = str_replace("\n",'\n',$description);
+ $description = wordwrap($description,75,"\r\n ",TRUE);
+} else {
+ $description = '';
+}
+?>
+BEGIN:VEVENT
+UID:<?php echo elgg_get_site_url().'event_calendar/view/'.$event->guid; ?>
+
+URL:<?php echo elgg_get_site_url().'event_calendar/view/'.$event->guid; ?>
+
+DTSTAMP:<?php echo date("Ymd\THis\Z", $event->getTimeUpdated())?>
+
+CREATED:<?php echo date("Ymd\THis\Z", $event->getTimeCreated())?>
+
+LAST-MODIFIED:<?php echo date("Ymd\THis\Z", $event->getTimeUpdated()) ?>
+
+DTSTART:<?php echo date("Ymd\THis\Z", $event->start_date); ?>
+
+DTEND:<?php echo date("Ymd\THis\Z", $event->real_end_time); ?>
+
+SUMMARY:<?php echo $event->title; ?>
+
+DESCRIPTION:<?php echo $description; ?>
+
+LOCATION:<?php echo $event->venue; ?><?php echo $organizer; ?>
+
+CATEGORIES:<?php implode(",",$event->tags); ?>
+
+END:VEVENT
--- /dev/null
+<?php
+/**
+ * Elgg ICAL output pageshell
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ */
+
+header("Content-Type: text/calendar");
+header("Content-Disposition: attachment; filename=\"calendar.ics\"");
+?>
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Curverider Ltd//NONSGML Elgg <?php echo get_version(true); ?>//EN
+<?php echo $vars['body']; ?>
+END:VCALENDAR
--- /dev/null
+<?php
+echo $vars['content'];
\ No newline at end of file
* @link http://radagast.biz/
*
*/
-
if ($vars['events']) {
echo elgg_view_entity_list($vars['events'], $vars['count'], $vars['offset'], $vars['limit'], false, false);
}