[Wiki] created: KronolithCustomEvents

Wiki Guest <[email protected]>
Newsgroups gmane.comp.horde.cvs
Message-ID <[email protected]>
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.


-- 
To unsubscribe, mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.