1

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

4

1 回答 1

0

您可以通过实现listTimeObjectslistTimeObjectCategoriesAPI 调用来做到这一点。Nag(任务列表)和Whups(票务跟踪)就是这样做的。如果您使用的是 Git 版本,则可以使用TimeObjects,它将所有内容包装在一个不错的类中。

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

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

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

listTimeObjects使用当前选择的类别(一个 id 数组)以及开始和结束日期调用。这些日期可能已经是Horde_Date对象(可以肯定的是,再次转换它们:)$start = new Horde_Date($start)

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

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

如果您注册showAPI 调用,这将用于创建指向timeObject详细信息的链接。

于 2009-11-27T11:28:20.750 回答