ブログ - piCalカテゴリのエントリ

piCal [0.91h] 編集画面の簡素化

カテゴリ : 
Customize/Hackメモ » piCal
執筆 : 
masa 2008/5/24
piCal の編集画面も簡素化しよう。

繰り返しは便利だと思うが、今回の用途ではわかりやすさが第一なので
単純に削除することにする。
本当は隠しておいて、必要なときだけ出せばいいのだが...

(1) タイムゾーンを削除する
(2) 繰り返しを削除する

ハードコードされた部分を直接編集
get_schedule_edit_html (piCal/class/piCal.php)

(1) 2100行あたりの下記の部分を削除

<tr>
	<td class='head'>"._PICAL_TH_TIMEZONE."</td>
	<td class='even'><select name='event_tz' $select_timezone_disabled>$tz_options</select></td>
</tr>

TZを hidden でセットしておかなければいけないかと思ったが、単純に削除するだけでうまくいった。

2144行目あたりの下記のコードを削除

<tr>
	<td class='head'>"._PICAL_TH_RRULE."</td>
	<td class='even'>" . $this->rrule_to_form( $rrule , $end_ymd ) . "</td>
</tr>

こちらも削除しただけで大丈夫のようだ。
  • トラックバック (0)
  • 閲覧 (4631)
piCal の日付表示は長表記で 「2007年10月21日(金曜日)」のように表示される。
個人的な趣味と、携帯からのアクセスなどを考慮して「2007/10/21(金)」のように変更したい。

まず調べてみると、_PICAL_FMT_YMDN なる変数が 「pical_constants.php」にあるのがわかったが、言語定数管理画面でいじってみても何も変わらない。
これはランゲージマネジャーを使っていないということなのかな?

よくわからないのでソースを Hack

get_long_ymdn (piCal/class/piCal.php) を変更すると、根こそぎ変わりそうだ。
申し訳ないですが、ハードコードしちゃいましょう。

function get_long_ymdn( $time )
{
	return sprintf(
		'%1$s/%2$s/%3$s(%4$s)' , // format
		date( 'Y' , $time ) , // Y
		date( 'n' , $time ) , // M
		date( 'j' , $time ) , // D
		$this->week_short_names[ date( 'w' , $time ) ] // N
	) ;
}
  • トラックバック (0)
  • 閲覧 (13244)
piCalのリスト表示画面を簡素化しよう。


(1)「投稿者」と「繰り返し」を削除する

これはテンプレートでできる。
テンプレート pical_event_list.html を修正。
今回はコメントアウトしてみよう。
結果はdiff 表示で...

@@ -93,24 +93,24 @@
         </tr>
       </table>
       <table width='100%' class='outer' cellpadding='4' cellspacing='1'>
         <tr valign='middle'>
-          <th class='head'><{$lang_submitter}></th>
+<{*          <th class='head'><{$lang_submitter}></th> *}>
           <th class='head'><{$lang_startdatetime}></th>
           <th class='head'><{$lang_enddatetime}></th>
           <th class='head'><{$lang_summary}></th>
-          <th class='head'><{$lang_rrule}></th>
+<{*          <th class='head'><{$lang_rrule}></th> *}>
           <th class='head'><{$lang_admission}></th>
           <th class='head'><input type='checkbox' name='dummy' onclick="with(document.MainForm)
          {for(i=0;i<length;i++){if(elements[i].type=='checkbox'){elements[i].checked=this.checked;}}}" /></th>
         </tr>
         <!-- Start event loop -->
         <{foreach item='event' from=$events}>
         <tr>
-          <td class='<{$event.oddeven}>'><{$event.submitter_info}></td>
+<{*          <td class='<{$event.oddeven}>'><{$event.submitter_info}></td> *}>
           <td class='<{$event.oddeven}>'><{$event.start_date_desc}><br /><{$event.start_time_desc}></td>
           <td class='<{$event.oddeven}>'><{$event.end_date_desc}><br /><{$event.end_time_desc}></td>
           <td class='<{$event.oddeven}>'><a href='<{$mod_url}>/index.php?action=View&amp;event_id=<{$event.id}>'>
            <{$event.summary}></a></td>
-          <td class='<{$event.oddeven}>'><{$event.rrule}></td>
+<{*          <td class='<{$event.oddeven}>'><{$event.rrule}></td> *}>
           <td class='<{$event.oddeven}>' align='center'>


無事完了。
  • トラックバック (0)
  • 閲覧 (4447)
詳細情報画面をもう少し簡素化したい

詳細画面のテンプレートは templates/picalN_event_detail.html だが
ここは全体の大枠があるだけで、情報部分はハードコーディングされている。

コードは class/piCal.php の get_schedule_view_html() メソッドの中だ。
今回の目的は項目を減らすという単純なもの
(1) 「開始/終了日時」の(GMT+) 表示を消す(なにしろとてもローカルなサイトなので...)
(2) 「レコード表示」「繰り返し」を消す(公開/非公開は編集モードで確認する...)

(1)はとりあえず
1744行目の $disp_user_tz = ... をコメントアウトして

//	$disp_user_tz = $this->get_tz_for_display( $this->user_TZ ) ;
	$disp_user_tz = "";

のようにする

(2) は簡単
1857行目からの

	<tr>
		<td class='head'>"._PICAL_TH_CLASS."</td>
		<td class='even'>$class_status</td>
	</tr>
	<tr>
		<td class='head'>"._PICAL_TH_RRULE."</td>
		<td class='even'>$rrule</td>
	</tr>

を削除する。
  • トラックバック (0)
  • 閲覧 (5379)

piCal [0.91h] を Hack

カテゴリ : 
Customize/Hackメモ » piCal
執筆 : 
masa 2008/5/17
piCal はすばらしいカレンダーモジュールだ。
できれば D3対応してxoopsテンプレート化してもらえれば
なお良いのだが...
それまでは、ちまちまとHackして待つこととしよう。

まずは分析開始...

■画面の作りについて
piCal の画面は xoops のテンプレートを使っていない?
(一部 xoops テンプレートになっているが)
モジュールディレクトリにあるテンプレートと、プログラムにハードコードされたものでできているようだ。
  • トラックバック (0)
  • 閲覧 (4455)