Kronolithカレンダー ビューで外部ソースからのイベントを表示したいと考えています。イベントを iCal にエクスポートしてから外部カレンダーとして表示することで、これを行いたくありません。イベントは複数のカレンダーにグループ化されており、ユーザーはこれらのカレンダーを無効/有効にする必要があります。
1 に答える
listTimeObjects
これを行うには、およびlistTimeObjectCategories
API呼び出しを実装します。Nag(タスクリスト)とWhups(チケット追跡)はこの方法でそれを行います。Gitバージョンを使用している場合は、TimeObjectsを使用できます。これにより、すべてが適切なクラスにまとめられます。
Kronolithは、これらの関数をinitialize()
(入力時に$all_external_calendars
)およびで呼び出しますlistEvents()
。すべてのAPIでこの関数を検索するため、独自のプレフィックスを使用して登録できます。
timeObjectは、イベント、タスクの期日など、「カレンダーに表示できるもの」の総称です。timeObjectCategoryは、ユーザーがグループ内で有効または無効にできるtimeObjectのグループです。(デフォルトのレイアウトでは、カレンダービューの右上隅にあるパネル「カレンダー」を使用します。)
の実装でlistTimeObjectCategories
は、カテゴリIDをキーとして、ユーザーに表示される名前を値として持つ配列を返す必要があります。カテゴリIDもカレンダーの下部に表示され、ユーザーはそれらの色を定義できます。
listTimeObjects
現在選択されているカテゴリ(IDの配列)、および開始日と終了日で呼び出されます。これらの日付はすでにHorde_Date
オブジェクトである可能性があります(確かに、それらを再度変換します:) $start = new Horde_Date($start)
。
これらのカテゴリに属し、指定された時間範囲に含まれるtimeObjectsの配列を返す必要があります。キーはイベントIDであり、値は次のキーの値を持つ配列です。
id
title
description
start
(Horde_Date
またはタイムスタンプ)end
(Horde_Date
またはタイムスタンプ)category
(カテゴリID)params
show
API呼び出しを登録すると、これはtimeObject詳細へのリンクを作成するために使用されます。