getConfig('disable_sync') === 1) { dbglog('Synchronisation is disabled'); die('Synchronisation is disabled'); } //Mapping PHP errors to exceptions function exception_error_handler($errno, $errstr, $errfile, $errline) { dbglog('Exception occured: '.$errstr); throw new ErrorException($errstr, 0, $errno, $errfile, $errline); } //set_error_handler("exception_error_handler"); // Files we need require_once(DOKU_PLUGIN.'davcal/vendor/autoload.php'); require_once(DOKU_PLUGIN.'davcal/authBackendDokuwiki.php'); require_once(DOKU_PLUGIN.'davcal/principalBackendDokuwiki.php'); require_once(DOKU_PLUGIN.'davcal/calendarBackendDokuwiki.php'); // Backends - our DokuWiki backends $authBackend = new DokuWikiSabreAuthBackend(); $calendarBackend = new DokuWikiSabreCalendarBackend($hlp); $principalBackend = new DokuWikiSabrePrincipalBackend(); // Directory structure $tree = array( new Sabre\CalDAV\Principal\Collection($principalBackend), new Sabre\CalDAV\CalendarRoot($principalBackend, $calendarBackend), ); $server = new Sabre\DAV\Server($tree); if (isset($baseUri)) $server->setBaseUri($baseUri); /* Server Plugins */ $authPlugin = new Sabre\DAV\Auth\Plugin($authBackend); $server->addPlugin($authPlugin); $aclPlugin = new Sabre\DAVACL\Plugin(); $server->addPlugin($aclPlugin); /* CalDAV support */ $caldavPlugin = new Sabre\CalDAV\Plugin(); $server->addPlugin($caldavPlugin); /* Calendar subscription support */ //$server->addPlugin( // new Sabre\CalDAV\Subscriptions\Plugin() //); /* Calendar scheduling support */ //$server->addPlugin( // new Sabre\CalDAV\Schedule\Plugin() //); /* WebDAV-Sync plugin */ $server->addPlugin(new Sabre\DAV\Sync\Plugin()); // Support for html frontend $browser = new Sabre\DAV\Browser\Plugin(); $server->addPlugin($browser); dbglog('$server->exec()'); // And off we go! $server->exec();