]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/common/calendar.fnk.php
Refactoring to make common/ more independent of the framework
[friendica-addons.git] / dav / common / calendar.fnk.php
index 27f51621b3240996faf43f46aad90ea7143884ee..ea04bdae038b8f6c8683776523413388b7020f07 100644 (file)
@@ -7,6 +7,8 @@ define("DAV_DISPLAYNAME", "{DAV:}displayname");
 define("DAV_CALENDARCOLOR", "{http://apple.com/ns/ical/}calendar-color");
 
 
+class DAVVersionMismatchException extends Exception {}
+
 
 class vcard_source_data_email
 {
@@ -106,7 +108,7 @@ class vcard_source_data
  */
 function vcard_source_compile($vcardsource)
 {
-       $str = "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Friendica//DAV-Plugin//EN\r\n";
+       $str = "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//" . DAV_APPNAME . "//DAV-Plugin//EN\r\n";
        $str .= "N:" . str_replace(";", ",", $vcardsource->name_last) . ";" . str_replace(";", ",", $vcardsource->name_first) . ";" . str_replace(";", ",", $vcardsource->name_middle) . ";;\r\n";
        $str .= "FN:" . str_replace(";", ",", $vcardsource->name_first) . " " . str_replace(";", ",", $vcardsource->name_middle) . " " . str_replace(";", ",", $vcardsource->name_last) . "\r\n";
        $str .= "REV:" . str_replace(" ", "T", $vcardsource->last_update) . "Z\r\n";
@@ -185,12 +187,7 @@ function wdcal_mySql2icalTime($myqlDate)
  */
 function icalendar_sanitize_string($str = "")
 {
-       $str = str_replace("\r\n", "\n", $str);
-       $str = str_replace("\n\r", "\n", $str);
-       $str = str_replace("\r", "\n", $str);
-       $str = str_replace("\n\n", "\n", $str);
-       $str = str_replace("\n\n", "\n", $str);
-       return $str;
+       return preg_replace("/[\\r\\n]+/siu", "\r\n", $str);
 }
 
 
@@ -199,13 +196,9 @@ function icalendar_sanitize_string($str = "")
  */
 function dav_createRootCalendarNode()
 {
-       $caldavBackend_std       = Sabre_CalDAV_Backend_Private::getInstance();
-       $caldavBackend_community = Sabre_CalDAV_Backend_Friendica::getInstance();
-
-       return new Sabre_CalDAV_AnimexxCalendarRootNode(Sabre_DAVACL_PrincipalBackend_Std::getInstance(), array(
-               $caldavBackend_std,
-               $caldavBackend_community,
-       ));
+       $backends = array(Sabre_CalDAV_Backend_Private::getInstance());
+       foreach ($GLOBALS["CALDAV_PRIVATE_SYSTEM_BACKENDS"] as $backendclass) $backends[] = $backendclass::getInstance();
+       return new Sabre_CalDAV_AnimexxCalendarRootNode(Sabre_DAVACL_PrincipalBackend_Std::getInstance(), $backends);
 }
 
 /**
@@ -213,13 +206,10 @@ function dav_createRootCalendarNode()
  */
 function dav_createRootContactsNode()
 {
-       $carddavBackend_std       = Sabre_CardDAV_Backend_Std::getInstance();
-       $carddavBackend_community = Sabre_CardDAV_Backend_FriendicaCommunity::getInstance();
+       $backends = array(Sabre_CardDAV_Backend_Std::getInstance());
+       foreach ($GLOBALS["CARDDAV_PRIVATE_SYSTEM_BACKENDS"] as $backendclass) $backends[] = $backendclass::getInstance();
 
-       return new Sabre_CardDAV_AddressBookRootFriendica(Sabre_DAVACL_PrincipalBackend_Std::getInstance(), array(
-               $carddavBackend_std,
-               $carddavBackend_community,
-       ));
+       return new Sabre_CardDAV_AddressBookRootFriendica(Sabre_DAVACL_PrincipalBackend_Std::getInstance(), $backends);
 }
 
 
@@ -250,10 +240,6 @@ function dav_create_server($force_authentication = false, $needs_caldav = true,
        $authPlugin = new Sabre_DAV_Auth_Plugin(Sabre_DAV_Auth_Backend_Std::getInstance(), 'SabreDAV');
        $server->addPlugin($authPlugin);
 
-       $aclPlugin                      = new Sabre_DAVACL_Plugin_Friendica();
-       $aclPlugin->defaultUsernamePath = "principals/users";
-       $server->addPlugin($aclPlugin);
-
        if ($needs_caldav) {
                $caldavPlugin = new Sabre_CalDAV_Plugin();
                $server->addPlugin($caldavPlugin);
@@ -306,7 +292,7 @@ function dav_get_current_user_calendars(&$server, $with_privilege = "")
  * @param Sabre_CalDAV_Calendar $calendar
  * @param string $calendarobject_uri
  * @param string $with_privilege
- * @return null|Sabre_VObject_Component_VEvent
+ * @return null|Sabre_VObject_Component_VCalendar
  */
 function dav_get_current_user_calendarobject(&$server, &$calendar, $calendarobject_uri, $with_privilege = "")
 {
@@ -350,21 +336,19 @@ function dav_get_current_user_calendar_by_id(&$server, $id, $with_privilege = ""
 
 /**
  * @param string $uid
- * @return Sabre_VObject_Component_VEvent $vObject
+ * @return Sabre_VObject_Component_VCalendar $vObject
  */
 function dav_create_empty_vevent($uid = "")
 {
        $a = get_app();
        if ($uid == "") $uid = uniqid();
-       return Sabre_VObject_Reader::read("BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Friendica//DAV-Plugin//EN\r\nBEGIN:VEVENT\r\nUID:" . $uid . "@" . $a->get_hostname() .
+       return Sabre_VObject_Reader::read("BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//" . DAV_APPNAME . "//DAV-Plugin//EN\r\nBEGIN:VEVENT\r\nUID:" . $uid . "@" . dav_compat_get_hostname() .
                "\r\nDTSTAMP:" . date("Ymd") . "T" . date("His") . "Z\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
 }
 
 
-
-
 /**
- * @param Sabre_VObject_Component_VEvent $vObject
+ * @param Sabre_VObject_Component_VCalendar $vObject
  * @return Sabre_VObject_Component_VEvent|null
  */
 function dav_get_eventComponent(&$vObject)