如何向Kronolith日历显示自定义事件

时间:2009-11-27 11:01:37

标签: calendar horde

我想在Kronolith日历视图中显示来自外部来源的事件。我不想通过将事件导出到iCal然后将它们显示为外部日历来实现此目的。事件分组在多个日历中,用户应该能够禁用/启用这些日历。

1 个答案:

答案 0 :(得分:0)

您可以通过实施listTimeObjectslistTimeObjectCategories API调用来实现此目的。 Nag(任务列表)和Whups(故障单跟踪)就是这样做的。如果您使用的是Git版本,则可以使用TimeObjects,它可以将所有内容包装在一个很好的类中。

Kronolith在initialize()(填充$all_external_calendars)和listEvents()时调用这些函数。它会搜索所有API以获取此功能,因此您可以使用自己的前缀进行注册。

timeObject 是“可以在日历上显示的内容”的通用名称,如事件,任务截止日期,...... timeObjectCategory 是一组 timeObjects ,可由用户在组中启用或禁用。 (在默认布局中:使用日历视图右上角的面板“日历”。)

listTimeObjectCategories的实现应返回一个数组,其中类别为id,用户可见名称为值。类别ID也显示在日历的底部,用户可以为它们定义颜色。

使用当前选定的类别(id的数组)以及开始和结束日期调用

listTimeObjects。这些日期可能已经是Horde_Date个对象(确保再次转换它们:$start = new Horde_Date($start))。

您应该返回属于这些类别的 timeObjects 数组,并且属于指定的时间范围。键是事件ID,值是具有以下键值的数组:

  • id
  • title
  • description
  • startHorde_Date或时间戳)
  • endHorde_Date或时间戳)
  • category(类别ID)
  • params

如果您注册了show API调用,则会将其用于创建指向 timeObject 详细信息的链接。