カテゴリー別アーカイブ: PiCal

piCalのブロックcoming_scheduleの表示を変更する

piCalの今後の予定のブロックは良く使用しますが、

1)当日で実行中
2)当日で実行中でないもの
3)24時以内なったもので当日でないもの
4)それ以外

の4種で表示の仕方が違います。1)2)3)は日付が出ません。
リアルタイムにわかっていい仕様ですが、そのアイコンの色などの説明がなくわかりにくいです。
ので、全てに日付だけをいれ、詳細は詳細ページで見れるようにしたいと思います。

modules\event\class\piCal_xoops.php

のL450あたりに2行追加します。

}
ツꀀツꀀ} else {
ツꀀツꀀツꀀ// far event (>1day)
ツꀀツꀀツꀀ$distance = 3 ;
ツꀀツꀀツꀀ$dot = “dot_future.gif” ;
ツꀀツꀀツꀀ$start_desc = $this->get_middle_md( $start_for_date ) ;
ツꀀツꀀツꀀ$end_desc = $this->get_middle_md( $end_for_date ) ;
ツꀀツꀀ}
ツꀀツꀀ
ツꀀツꀀ$start_desc = $this->get_middle_md( $start_for_date ) ;
ツꀀツꀀ$end_desc = $this->get_middle_md( $end_for_date ) ;

という風に、最終的には日付をいれてしまえという改造です。

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

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を好きなように作成します。

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