1f69bb449SAndreas Boehler<?php 2f69bb449SAndreas Boehler 3cb71a62aSAndreas Boehler/** 4cb71a62aSAndreas Boehler * DoukWiki DAVCal PlugIn - ICS support server 5cb71a62aSAndreas Boehler */ 6cb71a62aSAndreas Boehler 7f69bb449SAndreas Boehlerif(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/../../../'); 8f69bb449SAndreas Boehlerif (!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT', 1); 9f69bb449SAndreas Boehlerrequire_once(DOKU_INC.'inc/init.php'); 10f69bb449SAndreas Boehlersession_write_close(); //close session 11f69bb449SAndreas Boehler 12f69bb449SAndreas Boehler$path = explode('/', $_SERVER['REQUEST_URI']); 13f69bb449SAndreas Boehler$icsFile = end($path); 14f69bb449SAndreas Boehler 15cb71a62aSAndreas Boehler// Load the helper plugin 16*7c7c6b0bSAndreas Boehler$hlp = null; 17*7c7c6b0bSAndreas Boehler$hlp =& plugin_load('helper', 'davcal'); 18*7c7c6b0bSAndreas Boehler 19*7c7c6b0bSAndreas Boehlerif(is_null($hlp)) 20*7c7c6b0bSAndreas Boehler{ 21*7c7c6b0bSAndreas Boehler die('Error loading helper plugin'); 22*7c7c6b0bSAndreas Boehler} 23*7c7c6b0bSAndreas Boehler 24*7c7c6b0bSAndreas Boehlerif($hlp->getConfig('disable_ics') === 1) 25*7c7c6b0bSAndreas Boehler{ 26*7c7c6b0bSAndreas Boehler die("ICS synchronisation is disabled"); 27*7c7c6b0bSAndreas Boehler} 28f69bb449SAndreas Boehler 29cb71a62aSAndreas Boehler// Retrieve calendar ID based on private URI 30f69bb449SAndreas Boehler$calid = $hlp->getCalendarForPrivateURL($icsFile); 31f69bb449SAndreas Boehler 32f69bb449SAndreas Boehlerif($calid === false) 33f69bb449SAndreas Boehler die("No calendar with this name known."); 34f69bb449SAndreas Boehler 35cb71a62aSAndreas Boehler// Retrieve calendar contents and serve 36f69bb449SAndreas Boehler$stream = $hlp->getCalendarAsICSFeed($calid); 37f69bb449SAndreas Boehlerheader("Content-Type: text/calendar"); 38f69bb449SAndreas Boehlerheader("Content-Transfer-Encoding: Binary"); 39f69bb449SAndreas Boehlerheader("Content-disposition: attachment; filename=\"calendar.ics\""); 40f69bb449SAndreas Boehlerecho $stream;