Blame view

sources/3rdparty/sabre/dav/examples/addressbookserver.php 1.66 KB
6d9380f96   Cédric Dupont   Update sources OC...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
  <?php
  
  /*
  
  Addressbook/CardDAV server example
  
  This server features CardDAV support
  
  */
  
  // settings
  date_default_timezone_set('Canada/Eastern');
  
  // Make sure this setting is turned on and reflect the root url for your WebDAV server.
  // This can be for example the root / or a complete path to your server script
  $baseUri = '/';
  
  /* Database */
  $pdo = new PDO('sqlite:data/db.sqlite');
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  
  //Mapping PHP errors to exceptions
  function exception_error_handler($errno, $errstr, $errfile, $errline ) {
      throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
  }
  set_error_handler("exception_error_handler");
  
  // Autoloader
  require_once 'vendor/autoload.php';
  
  // Backends
  $authBackend      = new Sabre\DAV\Auth\Backend\PDO($pdo);
  $principalBackend = new Sabre\DAVACL\PrincipalBackend\PDO($pdo);
  $carddavBackend   = new Sabre\CardDAV\Backend\PDO($pdo);
  //$caldavBackend    = new Sabre\CalDAV\Backend\PDO($pdo);
  
  // Setting up the directory tree //
  $nodes = array(
      new Sabre\DAVACL\PrincipalCollection($principalBackend),
  //    new Sabre\CalDAV\CalendarRootNode($authBackend, $caldavBackend),
      new Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend),
  );
  
  // The object tree needs in turn to be passed to the server class
  $server = new Sabre\DAV\Server($nodes);
  $server->setBaseUri($baseUri);
  
  // Plugins
  $server->addPlugin(new Sabre\DAV\Auth\Plugin($authBackend,'SabreDAV'));
  $server->addPlugin(new Sabre\DAV\Browser\Plugin());
  //$server->addPlugin(new Sabre\CalDAV\Plugin());
  $server->addPlugin(new Sabre\CardDAV\Plugin());
  $server->addPlugin(new Sabre\DAVACL\Plugin());
  
  // And off we go!
  $server->exec();