イベントを月一覧で表示させる。

piCalは、とっても素晴らしいモジュールでいろんなことを想定した表示の仕方をされているのですが、私がよく受ける仕事では、「月ごとのイベント」はカレンダー方式よりも、あるイベントだけを表示させるということが多いのです(画像参照)

piCalで、表示のさせ方によってデータを取ってくる方法を指定しているのは、

index.phpのL170あたりからのswitch($smode)から。
ここに、以下のようにモードを付け加えました。

ツꀀツꀀcase ‘Month’ :
ツꀀツꀀツꀀecho $cal->get_monthly( ”,”, 0 ,1) ;
ツꀀツꀀツꀀbreak ;

ただ、このmonthlyの最後の「1」は、付け加えたものです。

get_monthlyは、class/piCal.phpにいます。

L724あたりを変更します。

function get_monthly( $get_target = ” , $query_string = ” , $for_print = false , $caldesign = 0)
太字の部分を追加しました。

そのあと、L731あたりの、$tmpl = new PatTemplate() ;
の下を

ツꀀif($caldesign){
ツꀀツꀀ$tmpl->readTemplatesFromFile( “$this->images_path/monthly2.tmpl.html” ) ;
ツꀀ}else{
ツꀀツꀀ$tmpl->readTemplatesFromFile( “$this->images_path/monthly.tmpl.html” ) ;
ツꀀ}

と変更します。
これは、$caldesign=1の場合は、テンプレートを、monthly2.tmpl.html(imagesのdefaultにmonthly.tmpl.htmlをコピーして作ります)を読んでねという指示です。
そのmonthly2.tmpl.htmlでは、カレンダー部分の呼び出しを

{CALENDAR_BODY2}

に変更します。

このCALENDAR_BODY2は、新しくスクリプトを追加します。

piCal.phpのL760あたりに
ツꀀ$tmpl->addVar( “WholeBoard” , “CALENDAR_BODY” , $this->get_monthly_html( $get_target , $query_string ) ) ;
とあるので、

$tmpl->addVar( “WholeBoard” , “CALENDAR_BODY2” , $this->get_month_html( $get_target , $query_string ) ) ;

と追加。

あとは、
function get_monthly_htmlを参考に、
function get_month_htmlを好きなように作成します。

まぁ、バージョンアップ時には要注意な変更の仕方ですが・・・・・・。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です