Open Calendar モジュール opCal

新作モジュール opCal(オプカル) を作っています。昨日の夜から作り始めたばかりなので、表示とかいい加減ですが、基本的な動作はするはず。

opcal のデモ
(登録を試したい方は id: test, パス: xoops でどうぞ)
各日の緑色の○のアイコンをクリックすると予定を追加できます。

どんなモジュールか?

opCal は、皆さんで共有して使うためのカレンダモジュールです。
カレンダモジュールの癖に自前でカレンダを持っていません。それは Google Calendar に任せた。

クローズドあるいはローカルで使うことはできません。あくまでも公開するためのモジュールとして作っています。


特長は、Google Calendar との連携。

Google Calendar を使っているため、使っているカレンダを好きなサイトに貼り付けることが可能です。
そして、イベントの表示だけでなく、登録も貼り付けられたサイトから可能です。

デモサイトで表示しているカレンダの場合は、以下のコードを貼り付けると表示できます(iframe タグを許可していないと駄目です)*1

<iframe src="http://www.google.com/calendar/embed?showCalendars=0
&amp;height=500&amp;wkst=1&amp;bgcolor=%23FFFFFF
&amp;src=o6puh5v6vteoqcdno7335jk2ns%40group.calendar.google.com&amp;color=%23B1365F
&amp;src=jo9l0c8iqlvibsjp3b89moirp0k7ivp7%40import.calendar.google.com
&amp;color=%23B1365F&amp;ctz=Asia%2FTokyo" style=" border-width:0 " 
width="500" height="500" frameborder="0" scrolling="no"></iframe>

もちろん、Google Calendar に直接イベント情報を追加していけば同じようなカレンダを作れるのですが、opCal の場合は、opCal モジュールのある XOOPS サイトのユーザであればイベントを追加できるという点が異なります(Google Calendar 直でも共有設定を行えば可能ですが、それには管理者が一人ひとり設定するというアクションが必要になります)。

たとえばこんな使い方

XUGJ かどっかのハブサイトに入れておいて、日本中にある XOOPS コミュニティサイトに iframe でカレンダを埋め込みます。それぞれのコミュニティに埋め込まれたカレンダから勉強会情報を登録していくと、おお、なんと、全国の XOOPS 勉強会カレンダが出来上がります。

まあ XOOPS サイトだとアレですが、opCal のすごいところ*2は、このモジュールをホストする XOOPS サイトがひとつあれば、他の埋め込み先のサイトは XOOPS じゃなくても何でもいい*3、という点です。

インストール

普通のモジュールと比べるとかなり面倒です。また、ZendFramework を使っているので、PHP5 でなければなりません。

  • 通常のモジュールのインストール(ZendFramework のファイルも一緒にアップすること)
  • XCat をインストール
  • XCat で都道府県用グループを作り、そのグループID を opCal の管理画面から指定
  • Google Calendar 用の Google Account 情報を opCal の管理画面から設定
  • Google Calendar に、二つのカレンダを追加。ひとつは、「URLで追加」で、modules/opcal/GoogleCalendar.php を指定。もうひとつは、「新しいカレンダの作成」で普通に追加。
  • それぞれのカレンダの「カレンダ設定」画面からカレンダIDを確認し、opCal の管理画面で指定
  • (使うなら)XCat でカテゴリ用のグループと施設用のグループを追加し、opCal の管理画面でそのグループID を指定

XCat との連携

さて、「XCat はどうしたんじゃい」と思われる方もいらっしゃるかと思いますが、飽きて放り出したわけではありません。そもそもこのモジュールは、一通りサービスの実装が終わった XCat との連携を検証するために作り始めたのです!(ホントですって)
……まあ作り始めて、あまり向いてないな、とは思いましたが。

それでも、「カテゴリ」「開催場所」「都道府県」を XCat から取得するように作ってあります。
都道府県カテゴリグループは、サイトによっては便利に使えるんではないかと自分でも期待しています。

*1:途中の改行は取っ払ってください

*2:まあすごいのは opCal モジュールじゃなくて Google Calendar なんですが。

*3:iframe が埋め込める必要はある