X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=dav%2Fmain.php;h=6635d18aca544961977cc80f87f9226a2d9f3412;hb=c5ba7f533dd5d45659e539c6418a144809ba66ed;hp=bc5aeab022bee752ad56870a597faa20a337a687;hpb=7115197a33ad9141c749a83c454a2f85d9c1290a;p=friendica-addons.git diff --git a/dav/main.php b/dav/main.php index bc5aeab0..6635d18a 100644 --- a/dav/main.php +++ b/dav/main.php @@ -22,21 +22,8 @@ function dav_module() { } - -/** - * @param App $a - */ -function dav_init(&$a) +function dav_include_files() { - - error_reporting(E_ALL); - ini_set("display_errors", 1); - - /* - * Recommended settings: - * ALTER TABLE `photo` ADD INDEX ( `contact-id` ) - */ - require_once (__DIR__ . "/common/dbclasses/dbclass_animexx.class.php"); require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.calendars.class.php"); require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.jqcalendar.class.php"); @@ -44,11 +31,11 @@ function dav_init(&$a) require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.calendarobjects.class.php"); /* - require_once (__DIR__ . "/SabreDAV/lib/Sabre.includes.php"); - require_once (__DIR__ . "/SabreDAV/lib/Sabre/VObject/includes.php"); - require_once (__DIR__ . "/SabreDAV/lib/Sabre/DAVACL/includes.php"); - require_once (__DIR__ . "/SabreDAV/lib/Sabre/CalDAV/includes.php"); - */ + require_once (__DIR__ . "/SabreDAV/lib/Sabre.includes.php"); + require_once (__DIR__ . "/SabreDAV/lib/Sabre/VObject/includes.php"); + require_once (__DIR__ . "/SabreDAV/lib/Sabre/DAVACL/includes.php"); + require_once (__DIR__ . "/SabreDAV/lib/Sabre/CalDAV/includes.php"); + */ require_once (__DIR__ . "/SabreDAV/lib/Sabre/autoload.php"); $tz_before = date_default_timezone_get(); @@ -78,6 +65,21 @@ function dav_init(&$a) require_once (__DIR__ . "/calendar.friendica.fnk.php"); require_once (__DIR__ . "/layout.fnk.php"); +} + + +/** + * @param App $a + */ +function dav_init(&$a) +{ + + /* + * Recommended settings: + * ALTER TABLE `photo` ADD INDEX ( `contact-id` ) + */ + + dav_include_files(); if (false) { dbg(true); @@ -91,7 +93,7 @@ function dav_init(&$a) if ($a->argc >= 2 && $a->argv[1] == "wdcal") { if ($a->argc >= 3 && $a->argv[2] == "feed") { - wdcal_print_feed(); + wdcal_print_feed($a->get_baseurl() . "/dav/wdcal/"); killme(); } elseif ($a->argc >= 3 && strlen($a->argv[2]) > 0) { wdcal_addRequiredHeadersEdit(); @@ -133,7 +135,8 @@ function dav_init(&$a) // The object tree needs in turn to be passed to the server class $server = new Sabre_DAV_Server($tree); - $server->setBaseUri("/" . CALDAV_URL_PREFIX); + $url = parse_url($a->get_baseurl()); + $server->setBaseUri(CALDAV_URL_PREFIX); $authPlugin = new Sabre_DAV_Auth_Plugin($authBackend, 'SabreDAV'); $server->addPlugin($authPlugin); @@ -172,21 +175,35 @@ function dav_content() return wdcal_getSettingsPage($a); } elseif ($a->argv[1] == "wdcal") { if ($a->argc >= 3 && strlen($a->argv[2]) > 0) { - $uri = $a->argv[2]; - $recurr_uri = ""; // @TODO - if (isset($a->argv[3]) && $a->argv[3] == "edit") { + $uri = $a->argv[2]; + + if ($uri == "new") { $o = ""; - if (isset($_REQUEST["save"])) $o .= wdcal_postEditPage($uri, $recurr_uri); - $o .= wdcal_getEditPage($uri, $recurr_uri); + if (isset($_REQUEST["save"])) { + check_form_security_token_redirectOnErr($a->get_baseurl() . "/dav/wdcal/", "caledit"); + $o .= wdcal_postEditPage("new", "", $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/"); + } + $o .= wdcal_getEditPage("new"); return $o; } else { - return wdcal_getDetailPage($uri, $recurr_uri); + $recurr_uri = ""; // @TODO + if (isset($a->argv[3]) && $a->argv[3] == "edit") { + $o = ""; + if (isset($_REQUEST["save"])) { + check_form_security_token_redirectOnErr($a->get_baseurl() . "/dav/wdcal/", "caledit"); + $o .= wdcal_postEditPage($uri, $recurr_uri, $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/"); + } + $o .= wdcal_getEditPage($uri, $recurr_uri); + return $o; + } else { + return wdcal_getDetailPage($uri, $recurr_uri); + } } } else { $cals = dav_getMyCals($a->user["uid"]); $cals_show = array(); foreach ($cals as $e) $cals_show[] = array("ns" => $e->namespace, "id" => $e->namespace_id, "displayname" => $e->displayname); - $x = wdcal_printCalendar($cals, $cals_show, "/dav/wdcal/feed/", "week", 0, 200); + $x = wdcal_printCalendar($cals, $cals_show, $a->get_baseurl() . "/dav/wdcal/feed/", "week", 0, 200); } } return $x; @@ -199,6 +216,7 @@ function dav_content() */ function dav_event_created_hook(&$a, &$b) { + dav_include_files(); // @TODO Updating the cache instead of completely invalidating and rebuilding it FriendicaVirtualCalSourceBackend::invalidateCache($a->user["uid"], CALDAV_FRIENDICA_CONTACTS); FriendicaVirtualCalSourceBackend::invalidateCache($a->user["uid"], CALDAV_FRIENDICA_MINE); @@ -210,6 +228,7 @@ function dav_event_created_hook(&$a, &$b) */ function dav_event_updated_hook(&$a, &$b) { + dav_include_files(); // @TODO Updating the cache instead of completely invalidating and rebuilding it FriendicaVirtualCalSourceBackend::invalidateCache($a->user["uid"], CALDAV_FRIENDICA_CONTACTS); FriendicaVirtualCalSourceBackend::invalidateCache($a->user["uid"], CALDAV_FRIENDICA_MINE); @@ -222,9 +241,9 @@ function dav_event_updated_hook(&$a, &$b) function dav_profile_tabs_hook(&$a, &$b) { $b["tabs"][] = array( - "label" => t('Calendar'), - "url" => "/dav/wdcal/", - "sel" => "", + "label" => t('Calendar'), + "url" => $a->get_baseurl() . "/dav/wdcal/", + "sel" => "", "title" => t('Extended calendar with CalDAV-support'), ); } @@ -281,4 +300,4 @@ function dav_plugin_admin(&$a, &$o) $tables = dav_get_create_statements(); foreach ($tables as $t) $o .= escape_tags($t . "\n\n"); $o .= ""; -} \ No newline at end of file +}