2008年4月15日(火曜日)

piCal用Googleカレンダープラグインの実験

カテゴリー: - gusagi @ 18時17分04秒

最近、構成管理の重要性を改めて痛感しているgusagiです。
先日、piCalにGoogleカレンダーの予定を表示させる必要があったので、
piCal用プラグインを作ってみました。
まだ公開出来るレベルではないため、今日のところは触りだけ書かせて頂きます。

【要件】

  • Googleカレンダーのデータを取得出来ること
  • 複数人のデータを取得し、piCalに出力出来ること
  • 取得対象は、あるアカウントに共有されているカレンダー
  • データの登録や更新は不要


【作業概要】
あまり時間を掛けることが出来なかったので、Zend Frameworkからライブラリを流用。
月別・週別・日別のデータ取得に対応するため、piCalが付与する引数によって、取得開始日と取得最終日を変数にセットします。

$requestMode = ( ! empty($_REQUEST['smode']) ) ? $_REQUEST['smode'] : 'Monthly';
$requestDate = ( ! empty($_REQUEST['caldate']) ) ? $_REQUEST['caldate'] : date( 'Y-n-j' );
$requestDateArray = explode( '-', $requestDate );
switch ( $requestMode ) {
    case 'Yearly':
        $startMin = $requestDateArray[0] . '-01-01';
        $startMax = date( 'Y-m-d', mktime(0, 0, 0, 1, 1, $requestDateArray[0] + 1) );
        break;
    case 'Weekly':
        $requestUnixTime = mktime( 0, 0, 0, $requestDateArray[1], $requestDateArray[2], $requestDateArray[0] );
        $startMin = date( 'Y-m-d', mktime(0, 0, 0, $requestDateArray[1],
            $requestDateArray[2] - date('w', $requestUnixTime), $requestDateArray[0]) );
        $startMax = date( 'Y-m-d', mktime(0, 0, 0, $requestDateArray[1],
            $requestDateArray[2] + (7 - date('w', $requestUnixTime)), $requestDateArray[0]) );
        break;
    case 'Daily':
        $startMin = $requestDateArray[0] . '-' . sprintf( '%02d', $requestDateArray[1] ) . '-' .
            sprintf( '%02d', $requestDateArray[2] );
        $startMax = $requestDateArray[0] . '-' . sprintf( '%02d', $requestDateArray[1] ) . '-' .
            sprintf( '%02d', $requestDateArray[2] + 1 );
        break;
    case 'Monthly':
    default:
        $startMin = $requestDateArray[0] . '-' . sprintf( '%02d', $requestDateArray[1] ) . '-01';
        $startMax = date( 'Y-m-d', mktime(0, 0, 0, $requestDateArray[1] + 1, 1, $requestDateArray[0]) );
        break;
}

こんな感じで、開始日と最終日をセットしてから、Zend Frameworkのライブラリを読み込みます。
Zend_Gdataを利用するので、対象パッケージをダウンロードしてきて、{XOOPS_ROOT_PATH}/common の下に配置。
今回は、{XOOPS_ROOT_PATH}/common/ZF/Zend となるように配置しています。
そして、実際にカレンダーのデータを取得するわけですが・・・済みません。
現状だとかなり泥臭いコードなので、もう少し手を加えてから、来週のブログに書かせて下さい。
中途半端ですが、続きは次回ということで :(


RSS feed for comments on this post.

  1. piCal用Googleカレンダープラグインの実験(2)
    大型連休を目の前に、何をしようか悩み中のgusagiです
    今日は、前回の記事の続きです。
    前回は、piCalのカレンダー形式に合わせて、何日から何日までのイベントを取得するか、というところまでのサンプルコードを書かせて頂きました。
    次にやることは、どのカレンダー..

    Trackback by 株式会社RYUS スタッフblog — 2008年4月23日(水曜日) @ 01時06分18秒

Ȥ

ʤߥȤդ뤳ȤϽޤ

10 queries. 0.011 sec.
Powered by WordPress Module based on WordPress ME & WordPress

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.