index

2003年 12月
 
  1 2 3 4 5 6 7
  8 9 10 11 12 13 14
  15 16 17 18 19 20 21
  22 23 24 25 26 27 28
  29 30 31        
2004年 1月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
2004年 2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29

アレ

PEAR::Calendar クラス   ▽20040102b #プログラミング #PHP

PEAR の Calendar クラスってのを使って, カレンダ表示とかやってみますた. っていうか,まずカレンダ表示を作ろうと思って,以前はこのクラスが露出してなかったので似たクラスを自分で作ろうとして, 面倒なので(というかカッコいい仕様が思いつかなかったので)放置していたの. で,今日たまたま久しぶりに PEAR のマニュアルページを見に行ったら, 新しく Calendar クラスが追加されてたわけだ.

さてまずはインストール. マニュアルに載ってるのに pear install コマンドでインストール出来ないのはどういうわけだ. 仕方ないので http://pear.php.net/get/Calendar からゲットしてきて (うちは FreeBSD なので fetch コマンドで取ってこれるが,まぁ wget とか使うのが楽だろう), pear install コマンドでアーカイブファイルからインストール.

で,使用法は,と.例によっていつものことだが,PEAR 公式サイトのマニュアルページは, どうやって使ったらいいのか,って問いにはあまり役に立たない. ここはまぁ大人しく /usr/local/lib/php/docs/Calendar の下を見てお勉強だわ.

……うーん.Example 3 のようなカレンダをさっくり作れる機能があるのかと思ったんだけど, どうもこれだーってのが見つからないな.全部のコードに目を通したくないような分量だし……

ということで,とりあえず Example 3 の真似事でカレンダを作ってみる. Example 3 ではコード中で <tr> とか書き出してるんだけど, あたしのコードは HTML_Template_IT クラスでレンダリングしてるので, </tr> を書き出すタイミングで parse() してやるようにする. あと,Calendar_Day::getTimeStamp() して,それを date( 'w' ) により曜日判定し, 色づけは <td> に class 指定することで行なう. 曜日判定は,もっとスマートな方法はねーものだろうか?

しかし,これだけだと,わざわざこんな巨大なクラス群を使う必要性がないな(笑) 何かもっとスマートで便利な使用法があるのだろーか. そのうち,ヒマで,面倒くさくない気分の時に,コードに目を通してみよう.

index