xoops

piCal一覧にカテゴリ名追加

以前書いたpiCal一覧に本名追加からの続きもの。

投稿者とは別に担当者名を表示させたいという要望だったので、
ここではカテゴリ名を担当者名とし、あらかじめカテゴリを担当者名として登録した後に月、週、日別で担当者名(カテゴリ名)を表示するという(面倒な)ことにした。
ただ、カテゴリ名を担当者名にするメリットは各カテゴリ別に月、週、日別の表示ができること。担当者一括表示みたいなことにぴったりでやってみた後に気づいたけど以外に便利。

参考:piCalの予定をカテゴリー別に色分けしたい
piCalで件名の後ろにカテゴリーを表示したい

// カレンダーの本体を返す(1週間分)

modules\piCal\class\piCal.php

■categoriesの追加
$ars = mysql_query( "SELECT start,end,summary,id,allday,admission,uid,categories FROM $this->table WHERE admission>0 AND ($whr_term) AND ($whr_categories) AND ($whr_class) ORDER BY start" , $this->conn ) ;
$numrows_ars = mysql_num_rows( $ars ) ;
$wrs = mysql_query( "SELECT start,end,summary,id,allday,admission,uid,categories FROM $this->table WHERE admission=0 AND ($whr_term) AND ($whr_categories) AND ($whr_class) ORDER BY start" , $this->conn ) ;

■サニタイズの下に追加
// サニタイズ
$summary = $this->text_sanitizer_for_show( $event->summary ) ;

// カテゴリーの表示
$cat_titles4show = '' ;
$cids = explode( "," , $event->categories ) ;
foreach( $cids as $cid ) {
$cid = intval( $cid ) ;
if( isset( $this->categories[ $cid ] ) ) $cat_titles4show .= $this->text_sanitizer_for_show( $this->categories[ $cid ]->cat_title ) . "," ;
}
if( $cat_titles4show != '' ) $cat_titles4show = substr( $cat_titles4show , 0 , -1 ) ;

■挿入したい所に$catnameと記入してあげるとできる。

// カレンダーの本体を返す(1日分)

modules\piCal\class\piCal.php

■categoriesの追加
$yrs = mysql_query( "SELECT start,end,summary,id,allday,admission,uid,description,(start>='$toptime_of_day') AS is_start_date,(end<='$bottomtime_of_day') AS is_end_date,categories FROM $this->table WHERE admission>0 AND ($whr_term) AND ($whr_categories) AND ($whr_class) ORDER BY start,end" , $this->conn ) ;

■サニタイズの下に追加
// サニタイズ
$description = $this->textarea_sanitizer_for_show( $event->description ) ;
$summary = $this->text_sanitizer_for_show( $event->summary ) ;
$summary_class = $event->allday ? "calsummary_allday" : "calsummary" ;

// カテゴリーの表示
$cat_titles4show = '' ;
$cids = explode( "," , $event->categories ) ;
foreach( $cids as $cid ) {
$cid = intval( $cid ) ;
if( isset( $this->categories[ $cid ] ) ) $cat_titles4show .= $this->text_sanitizer_for_show( $this->categories[ $cid ]->cat_title ) . "," ;
}
if( $cat_titles4show != '' ) $cat_titles4show = substr( $cat_titles4show , 0 , -1 ) ;

■挿入したい所に$catnameと記入してあげるとできる。

$catname = $this->text_sanitizer_for_show( $this->categories[ intval( $event->categories ) ]->cat_title ) ;として定義してあげることは必要だろうということは前回のカスタマイズから何となく予想はついていたけれど、categoriesの追加と複数カテゴリの表示がわからず躓いていたので覚書。

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-xoops