3 abstract class Sabre_CardDAV_Backend_Virtual extends Sabre_CardDAV_Backend_Common
9 * @param int $addressbookId
14 abstract public function getItemsByUri($addressbookId, $uri);
20 * @param int $namespace
22 static public function invalidateCache($uid = 0, $namespace = 0) {
23 q("DELETE FROM %s%sadd_virtual_object_sync WHERE `uid` = %d AND `namespace` = %d",
24 CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($uid), IntVal($namespace));
30 * @param int $addressbookId
32 static abstract protected function createCache_internal($addressbookId);
36 * @param int $addressbookId
38 static protected function createCache($addressbookId) {
39 $addressbookId = IntVal($addressbookId);
40 q("DELETE FROM %s%saddressbookobjects WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
41 static::createCache_internal($addressbookId);
42 q("REPLACE INTO %s%sadd_virtual_object_sync (`addressbook_id`, `date`) VALUES (%d, NOW())", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
47 * @param string $addressbookId
50 public function getCards($addressbookId)
52 $addressbookId = IntVal($addressbookId);
53 $r = q("SELECT COUNT(*) n FROM %s%sadd_virtual_object_sync WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
55 if ($r[0]["n"] == 0) static::createCache($addressbookId);
57 return q("SELECT * FROM %s%saddressbookobjects WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
62 * @param string $addressbookId
63 * @param string $objectUri
64 * @throws Sabre_DAV_Exception_NotFound
67 public function getCard($addressbookId, $objectUri)
69 $addressbookId = IntVal($addressbookId);
70 $r = q("SELECT COUNT(*) n FROM %s%sadd_virtual_object_sync WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($addressbookId));
72 if ($r[0]["n"] == 0) static::createCache($addressbookId);
74 $r = q("SELECT * FROM %s%saddressbookobjects WHERE `uri` = '%s' AND `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, dbesc($objectUri), IntVal($addressbookId));
75 if (count($r) == 0) throw new Sabre_DAV_Exception_NotFound();
79 "id" => IntVal($obj["uri"]),
80 "carddata" => $obj["carddata"],
82 "lastmodified" => $obj["lastmodified"],
83 "addressbookid" => $addressbookId,
84 "etag" => $obj["etag"],
85 "size" => IntVal($obj["size"]),
93 * @param string $principalUri
94 * @param string $addressbookUri
95 * @param array $properties
96 * @throws Sabre_DAV_Exception_Forbidden
99 public function createAddressBook($principalUri, $addressbookUri, array $properties)
101 throw new Sabre_DAV_Exception_Forbidden();
105 * @param string $addressbookId
106 * @throws Sabre_DAV_Exception_Forbidden
109 public function deleteAddressBook($addressbookId)
111 throw new Sabre_DAV_Exception_Forbidden();
116 * @param string $addressbookId
117 * @param string $objectUri
118 * @param string $cardData
119 * @throws Sabre_DAV_Exception_Forbidden
120 * @return null|string|void
122 function createCard($addressbookId, $objectUri, $cardData)
124 throw new Sabre_DAV_Exception_Forbidden();
128 * @param string $addressbookId
129 * @param string $objectUri
130 * @param string $cardData
131 * @throws Sabre_DAV_Exception_Forbidden
132 * @return null|string|void
134 function updateCard($addressbookId, $objectUri, $cardData)
136 throw new Sabre_DAV_Exception_Forbidden();
140 * @param string $addressbookId
141 * @param string $objectUri
142 * @throws Sabre_DAV_Exception_Forbidden
145 function deleteCard($addressbookId, $objectUri)
147 throw new Sabre_DAV_Exception_Forbidden();