【问题标题】:How to show custom events to a Kronolith calendar如何向 Kronolith 日历显示自定义事件
【发布时间】:2009-11-27 11:01:36
【问题描述】:

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

【问题讨论】:

    标签: calendar horde


    【解决方案1】:

    您可以通过实现listTimeObjectslistTimeObjectCategories 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,值是具有以下键值的数组:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      相关资源
      最近更新 更多