【发布时间】:2009-11-27 11:01:36
【问题描述】:
我想在Kronolith 日历视图中显示来自外部来源的事件。我不想通过将事件导出到 iCal 然后将它们显示为外部日历来做到这一点。事件被分组在多个日历中,用户应该能够禁用/启用这些日历。
【问题讨论】:
我想在Kronolith 日历视图中显示来自外部来源的事件。我不想通过将事件导出到 iCal 然后将它们显示为外部日历来做到这一点。事件被分组在多个日历中,用户应该能够禁用/启用这些日历。
【问题讨论】:
您可以通过实现listTimeObjects 和listTimeObjectCategories API 调用来做到这一点。 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,值是具有以下键值的数组:
idtitledescriptionstart(Horde_Date 或时间戳)end(Horde_Date 或时间戳)category(类别 ID)params如果您注册了show API 调用,这将用于创建指向 timeObject 详细信息的链接。
【讨论】: