]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
iCalendar fixes.
authorKevin Jardine <kevinjardine@yahoo.com>
Tue, 8 Nov 2011 11:47:41 +0000 (12:47 +0100)
committerKevin Jardine <kevinjardine@yahoo.com>
Tue, 8 Nov 2011 11:47:41 +0000 (12:47 +0100)
languages/en.php
models/model.php
start.php
views/default/js/event_calendar/event_calendar.php
views/ical/object/event_calendar.php
views/ical/page/default.php

index 1155d76ed7ef9cb5b37c05280c60c0c0ae2ba5ec..285392e62e0747238e76b1b864d8c733263d94e9 100644 (file)
@@ -213,6 +213,7 @@ You can manage calendar requests for this event here:
        'event_calendar:add' => "Add",
                
        'feed:ical' => "iCal feed for this page",
+       'event_calendar:ical_popup_message' => "You can use the following URL to get an iCalendar feed of the public events from this listing page: ",
        'event_calendar:ical_auth_file_name:title' => "Location of iCal authentication file on local file system (experimental - not needed for public feeds)",
 
        'event_calendar:owner:permissions_error' => "You do not have permission to view that page.",
index 7f6c3d39d9a076e11c8e21a75b8fae92a818e1ed..db2bdf95dfbbcbfa73c047883782eddb594da67a 100644 (file)
@@ -160,11 +160,11 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) {
 
 function event_calendar_get_events_between($start_date,$end_date,$is_count,$limit=10,$offset=0,$container_guid=0,$region='-') {
        if ($is_count) {
-               $count = event_calendar_get_entities_from_metadata_between('start_date','end_date',
+               $count = event_calendar_get_entities_from_metadata_between2('start_date','end_date',
                $start_date, $end_date, "object", "event_calendar", 0, $container_guid, $limit,$offset,"",0,false,true,$region);
                return $count;
        } else {
-               $events = event_calendar_get_entities_from_metadata_between('start_date','end_date',
+               $events = event_calendar_get_entities_from_metadata_between2('start_date','end_date',
                $start_date, $end_date, "object", "event_calendar", 0, $container_guid, $limit,$offset,"",0,false,false,$region);
                //return event_calendar_vsort($events,'start_date');
                return $events;
@@ -1096,6 +1096,7 @@ function event_calendar_send_event_request($event,$user_guid) {
 // pages
 
 function event_calendar_get_page_content_list($page_type,$container_guid,$start_date,$display_mode,$filter,$region='-') {
+       elgg_load_js('elgg.event_calendar');
        global $autofeed;
        $autofeed = true;
        if ($page_type == 'group') {
@@ -1164,6 +1165,7 @@ function event_calendar_get_page_content_list($page_type,$container_guid,$start_
        $url = elgg_format_url($url);
        $menu_options = array(
                'name' => 'ical',
+               'id' => 'event-calendar-ical-link',
                'text' => '<img src="'.elgg_get_site_url().'mod/event_calendar/images/ics.png" />',
                'href' => $url,
                'title' => elgg_echo('feed:ical'),
index ed0ba41db3acb3d59e7035a353e8c4df0dccea5e..03f1a183a99149c70b1af99d2499a617d7b5e498 100644 (file)
--- a/start.php
+++ b/start.php
@@ -337,11 +337,13 @@ function event_calendar_entity_menu_setup($hook, $type, $return, $params) {
 
 function event_calendar_entity_menu_prepare($hook, $type, $return, $params) {
        // remove access level from listings
-       if (!elgg_in_context('event_calendar:view')) {
+       if (elgg_in_context('event_calendar') && !elgg_in_context('event_calendar:view')) {
                $new_return = array();
-               foreach($return['default'] AS $item) {
-                       if ($item->getName() != 'access') {
-                               $new_return[] = $item;
+               if ($return['default']) {
+                       foreach($return['default'] AS $item) {
+                               if ($item->getName() != 'access') {
+                                       $new_return[] = $item;
+                               }
                        }
                }
                $return['default'] = $new_return;
index f3f5b68c88baecde7e819090941733d8f6b9c324..8c4e735a66f0de44e21c3ad546ea7d33139abfe8 100644 (file)
@@ -5,6 +5,7 @@ elgg.event_calendar.init = function () {
        $('.event_calendar_paged_checkbox').click(elgg.event_calendar.handlePagedPersonalCalendarToggle);
        $('.event-calendar-personal-calendar-toggle').click(elgg.event_calendar.handleDisplayPagePersonalCalendarToggle);
        $('#event-calendar-region').change(elgg.event_calendar.handleRegionChange);
+       $('#event-calendar-ical-link').click(elgg.event_calendar.handleIcalPopup);
 }
 
 elgg.event_calendar.handleRegionChange = function(e) {
@@ -12,6 +13,12 @@ elgg.event_calendar.handleRegionChange = function(e) {
        elgg.forward(url);
 }
 
+elgg.event_calendar.handleIcalPopup = function(e) {
+       var message = elgg.echo('event_calendar:ical_popup_message')+"\n"+this.href;
+       alert(message);
+       return false;
+}
+
 elgg.event_calendar.handlePagedPersonalCalendarToggle = function() {
        guid = parseInt($(this).attr('id').substring('event_calendar_paged_checkbox_'.length));
        elgg.event_calendar.togglePagedPersonalCalendar(guid);
index a6ed889e58a18d369c3766151bbe334e7e9725eb..36d71a66c29948f4f87079a3cb37db3f8516d55b 100644 (file)
@@ -29,9 +29,9 @@ 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);  ?>
+DTSTART;VALUE=DATE:<?php echo date("Ymd\THis\Z", $event->start_date);  ?>
 
-DTEND:<?php echo date("Ymd\THis\Z", $event->real_end_time);  ?>
+DTEND;VALUE=DATE:<?php echo date("Ymd\THis\Z", $event->real_end_time);  ?>
 
 SUMMARY:<?php echo $event->title;  ?>
 
index c269b5849637f0b87bb106cd893670ec215a6e3a..b4cd7eefb9bedd66816114e20ca397b87775003e 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 header("Content-Type: text/calendar");
-//header("Content-Disposition: attachment; filename=\"calendar.ics\"");
+header("Content-Disposition: inline; filename=\"calendar.ics\"");
 ?>
 BEGIN:VCALENDAR
 VERSION:2.0