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

ではでは。

Posted by admin, filed under 活動記録. Date: 4月 23, 2008, 2:06 am | No Comments »