]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/examples/calendarserver.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / examples / calendarserver.php
1 <?php
2
3 /*
4
5 CalendarServer example
6
7 This server features CalDAV support
8
9 */
10
11 // settings
12 date_default_timezone_set('Canada/Eastern');
13
14 // If you want to run the SabreDAV server in a custom location (using mod_rewrite for instance)
15 // You can override the baseUri here.
16 // $baseUri = '/';
17
18 /* Database */
19 $pdo = new PDO('sqlite:data/db.sqlite');
20 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
21
22 //Mapping PHP errors to exceptions
23 function exception_error_handler($errno, $errstr, $errfile, $errline ) {
24     throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
25 }
26 set_error_handler("exception_error_handler");
27
28 // Files we need
29 require_once 'lib/Sabre/autoload.php';
30
31 // Backends
32 $authBackend = new Sabre_DAV_Auth_Backend_PDO($pdo);
33 $calendarBackend = new Sabre_CalDAV_Backend_PDO($pdo);
34 $principalBackend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
35
36 // Directory structure 
37 $tree = array(
38     new Sabre_CalDAV_Principal_Collection($principalBackend),
39     new Sabre_CalDAV_CalendarRootNode($principalBackend, $calendarBackend),
40 );
41
42 $server = new Sabre_DAV_Server($tree);
43
44 if (isset($baseUri))
45     $server->setBaseUri($baseUri);
46
47 /* Server Plugins */
48 $authPlugin = new Sabre_DAV_Auth_Plugin($authBackend,'SabreDAV');
49 $server->addPlugin($authPlugin);
50
51 $aclPlugin = new Sabre_DAVACL_Plugin();
52 $server->addPlugin($aclPlugin);
53
54 $caldavPlugin = new Sabre_CalDAV_Plugin();
55 $server->addPlugin($caldavPlugin);
56
57 // Support for html frontend
58 $browser = new Sabre_DAV_Browser_Plugin();
59 $server->addPlugin($browser);
60
61 // And off we go!
62 $server->exec();