VERY GOOD SERVICEです。
実はEAT TOKYOのメンバーだったりもします。
■EAT TOKYO
http://www.precook.jp/
ってことで、EAT TOKYO向けのウェブサービスをアップデート。
イベントの告知をメール配信するウェブサービスなので、一般公開はしてませんが、
興味がある人はご連絡ください。(とりあえずは知り合いの方のみでお願いしています)
これだけだと、何の記事か意味が分からないので、参考にしたページを紹介します。
■Zend Framework関連
Google CalendarのAPIはZend Frameworkを使うと簡単にアクセスできます
・Zend Framework Download
http://framework.zend.com/download
・Programmer’s Reference Guide
http://framework.zend.com/manual/ja/zend.gdata.calendar.html
基本的には、ダウンロードファイルにあるデモとReference Guideを見れば分かりますが、
若干、苦労した点を補足しておきます。
(1) デフォルト以外のカレンダーのイベント一覧を取得
イベント一覧を取得する時は、Zend_Gdata_Calendar->getCalendarEventFeedを使うのですが、
getCalendarEventFeedの引数にEventQueryを渡す必要があります。
デフォルト以外のカレンダーを指定する場合は、setUser()でカレンダーIDを指定します。
(サンプル)
// Googleカレンダーにログイン
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);// カレンダーIDを指定してイベントを取得
$gdataCal = new Zend_Gdata_Calendar($client);
$query = $gdataCal->newEventQuery();
$query->setUser(カレンダーID);
$query->setVisibility(‘private’);
$query->setProjection(‘full’);
$query->setOrderby(‘starttime’);
$query->setStartMin($startDate);
$query->setStartMax($endDate);
$eventFeed = $gdataCal->getCalendarEventFeed($query);
(2) カレンダーIDの取得方法
カレンダーIDは、getCalendarListFeed()の戻り値(オブジェクト)のid->textでカレンダーのURLが
取得できるので、そこから抽出しています。
(サンプル)
// Googleカレンダーにログイン
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);// カレンダーリストからカレンダーIDを取得
$gdataCal = new Zend_Gdata_Calendar($client);
$calFeed = $gdataCal->getCalendarListFeed();
foreach ($calFeed as $calendar) {
preg_match("/\/([^\/]+)$/i",$calendar->id->text,$match);
echo $calendar->title->text . "のカレンダーID:" . $match[1] . "\n";
}
(3) 個別イベントの取得方法
イベントIDがURLで分かっている場合は、EventQueryオブジェクトを作らなくても
Eventオブジェクトを取得することができます。
ただし、 繰り返しのイベントの扱いには注意が必要です。
(1)のイベントのリストを取得する時は検索対象期間に含まれる日はwhenプロパティに入れてくれるのに対して、
個別イベントを取得する時はのwhenプロパティはNullになってしまいます。ご注意ください。
(サンプル)
$gdataCal = new Zend_Gdata_Calendar($client);
$event = $gdataCal->getCalendarEventEntry($event_id);
■ポップアップカレンダー(日付の入力支援)
http://fdays.blogspot.com/2008/02/javascript-22-window-yahho-calendar-yui.html
PAAAAARTYでは、Yahho Calendarを使ってます。
Yahoo Calendarは、ポップアップさせるために、テキストボックスの直後に自動でDIVタグを挿入しています。
テキストボックスの真下にカレンダーを出したい場合は以下のようにするとよいと思います。
<table>
<td>
<input type="text" name="start" id="start_id" onclick="YahhoCal.render(this.id);" \>
</td>
<td>?</td>
<td>
<input type="text" name="end" id="end_id" onclick="YahhoCal.render(this.id);" \>
</td>
</tr>
</table>
■ checkboxで複数チェックした場合にPHPでチェック結果を見る方法
inputタグのnameを「~[]」にするとよいみたいです。
http://d.hatena.ne.jp/bonlife/20060210/1139591861
ではでは。