[cvs] [Wiki] created: KronolithCustomEvents
Wiki Guest
wikiguest at horde.org
Fri Nov 27 13:12:43 UTC 2009
guest [81.82.227.15] Fri, 27 Nov 2009 08:12:43 -0500
Created page: http://wiki.horde.org/KronolithCustomEvents
> I want to show events from an external source in the Kronolith
> calendar views. I don't want to do this by exporting the events to
> iCal and then showing them as an external calendar. The events are
> grouped in multiple calendars, the user should be able to
> disable/enable these calendars.
([http://stackoverflow.com/questions/1808104/how-to-show-custom-events-to-a-kronolith-calendar Also posted on Stack
Overflow])
You can do this by implementing the {{listTimeObjects}} and
{{listTimeObjectCategories}} API calls. [http://www.horde.org/nag/
Nag] (task list) and [http://www.horde.org/whups/ Whups] (ticket
tracking) do it this way. If you are using the Git version, you can
use [http://theupstairsroom.com/93 TimeObjects], which wraps
everything up in a nice class.
Kronolith calls these functions in {{initialize()}} (when filling
{{$all_external_calendars}}) and {{listEvents()}}. It searches all
APIs for this function, so you can register it with your own prefix.
//timeObject// is a generic name for "things that can be shown on a
calendar", like events, task due dates, ... A //timeObjectCategory//
is a group of //timeObjects//, which can be enabled or disabled in a
group by the user. (In the default layout: using the panel in the
upper-right corner of the calendar view, "Calendars".)
Your implementation for {{listTimeObjectCategories}} should return an
array, with a category id as the key, and the user-visible name as the
value. The category id's are also shown at the bottom of the calendar,
and the user can define colors for them.
{{listTimeObjects}} is called with the currently selected categories
(an array of id's), and a start and end date. These dates might
already be {{Horde_Date}} objects (to be sure, convert them again:
{{$start = new Horde_Date($start)}}).
You should return an array of //timeObjects// that belong to these
categories and fall in the specified time range. The keys are event
id's, the values are arrays with values for the following keys:
* {{id}}
* {{title}}
* {{description}}
* {{start}} ({{Horde_Date}} or timestamp)
* {{end}} ({{Horde_Date}} or timestamp)
* {{category}} (Category id)
* {{params}}
If you register the {{show}} API call, this will be used for creating
the link to the //timeObject// detail.
More information about the cvs
mailing list