[dev] Exposing timeobjects to caldav

Ralf Lang lang at b1-systems.de
Wed Aug 2 17:28:07 UTC 2017


Hallo,

I wanted to expose a certain application's data (basically events) to 
caldav without removing kronolith nor nag. I am a little unsure which 
way to go, here is what I found:


* Horde_Dav_Calendar_Backend scans the registry for apps providing the 
"calendar" and "tasks" interfaces. As each interface (at the root level) 
can only be exposed by one application, this limits the number of 
applications providing caldav calendars to two.

* An application must expose $application::davGetCollections() to be 
able to provide arrays describing caldav folders

* An application must expose $application::davGetObjects($collection) to 
be able to provide arrays describing caldav events or tasks

* Kronolith does consume timeobjects providers as external calendars 
(listTimeObjects, listTimeObjectCategories) but does not expose them to 
caldav


Solutions:

* Make the application owner of the "tasks" api and pull nag's tasks , 
internally to this new interface. No change of horde upstream code 
needed, but very lame.

* Patching Kronolith is tempting, but I don't think it's wise to just 
expose random timeobjects providers to caldav interface without letting 
the admin or user decide. Kronolith is complicated and a prime horde app.

* Horde_Dav_Calendar_Backend could grab more applications from registry, 
either by hardcoding a downstream patch for an additional interface or 
by providing an upstream patch to run hasMethod('tobedefined') over all 
apps. This could be added as a feature patch to H5 and allow a 
bc-breaking removal of the hardcoded method in H6.

Why was the hardcoded limit to these two interfaces introduced? Is it a 
performance consideration?

Regards

Ralf

--
Ralf Lang
Linux Consultant / Develope
Tel.: +49-170-6381563
Mail: lang at b1-systems.de
B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537


More information about the dev mailing list