2009-11-27 3 views
1

Я хочу показать события из внешнего источника в виде календаря Kronolith. Я не хочу этого делать, экспортируя события в iCal, а затем показывая их как внешний календарь. События сгруппированы в несколько календарей, пользователь должен иметь возможность отключать/включать эти календари.Как показать пользовательские события в календаре Кронолита

ответ

0

Вы можете сделать это, реализовав вызовы API listTimeObjects и listTimeObjectCategories. Nag (список задач) и Whups (отслеживание билетов) сделайте это так. Если вы используете версию Git, вы можете использовать TimeObjects, что в итоге обертывает все в класс.

Kronolith называет эти функции в initialize() (при заполнении $all_external_calendars) и listEvents(). Он ищет все API для этой функции, поэтому вы можете зарегистрировать его с помощью собственного префикса.

timeObject это общее название для «вещей, которые могут быть показаны на календаре», как события, задачи из-за даты, ... A timeObjectCategory является группа timeObjects, который может быть включен или отключен в группе пользователем. (В макете по умолчанию: с помощью панели в верхнем правом углу календаря, «Календари».)

Ваша реализация для listTimeObjectCategories должна возвращать массив с идентификатором категории в качестве ключа и пользователем, видимое имя в качестве значения. Идентификаторы категории также отображаются в нижней части календаря, и пользователь может определять цвета для них.

listTimeObjects вызывается с выбранными в данный момент категориями (массив идентификаторов) и датой начала и окончания. Эти даты могут быть уже Horde_Date объектов (их, конечно, конвертировать: $start = new Horde_Date($start)).

Вы должны вернуть массив timeObjects, которые относятся к этим категориям и относятся к указанному диапазону дат. Клавиши ID мероприятия, значения являются массивами со значениями для следующих кнопок:

  • id
  • title
  • description
  • start (Horde_Date или временная метка)
  • end (Horde_Date или временная метка)
  • category (Категория id)
  • params

Если зарегистрировать вызов show API, это будет использоваться для создания ссылки на timeObject подробно.