質問箱/2222
の編集
Top
/
質問箱
/
2222
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
Wikiを試したい方へ:
「この」Wikiは、
PukiWiki
のための公式Wikiです。
テスト書き込みなどは
お試しサイト
https://pukiwiki.osdn.jp/_trial/
をご利用ください
**[[質問箱/2222]] [#id567c1c] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|次月や前月のカレンダーを表示したい| |~バージョン|1.4.3| |~投稿者|[[もばぎつかい]]| |~状態|完了| |~投稿日|&new{2004-06-19 (SAT) 14:35:23};| ***質問 [#c2501cd9] ~FrontPageで今月と次月のカレンダーを並べて表示しています。 ~今月のカレンダーは #calendar2(off) としていますが、~ ~次月の分は~ #calendar2(off,FrontPage,200407) としており、年月を直接指定している状況です。~ ~しかしこのままだと、新しい月になるごとに修正しなければいけません。~ ~これを、例えば、 #calendar??(off,FrontPage,next) とか #calendar??(off,FrontPage,+1) というように指定できる他のカレンダー関係のプラグインはあるのでしょうか。~ ~または、 #calendar2(off,FrontPage,&datecalc(now,+1,"yyyymm")) というような日付計算のインライン型プラグインなどはあるのでしょうか。~ ~質問箱で調べたりネット検索などしましたが、有効な情報にたどり着けませんでしたので、こちらに質問させていただきました。~ ~よろしくお願いします。 ***回答 [#dabf82b6] -[[もばぎつかい]] &new{2004-06-19 (SAT) 15:23:48}; ~自己レスです。calendar2.inc.phpのソースを眺めていたら、機能追加しやすそうだったので、~ 試しに改造してみました。 ~具体的には、10行目に追加 $next_view = FALSE; $pre_view = FALSE; ~23行目に追加 else if ($arg == 'next') { $next_view = TRUE; } else if ($arg == 'pre') { $pre_view = TRUE; } さらに、42行目に追加 if($next_view) { if($mon == 12){ $yr++; $mon = 1; }else{ $mon++; } } if($pre_view) { if($mon == 1){ $yr--; $mon = 12; }else{ $mon--; } } ~これで、引数に'next'を指定すると次月が、'pre'を指定すると前月が表示されるようになりました。~ ~とりあえず、不具合もなく動いているようです。~ ~気が向いたら、月数指定で何ヵ月後(前)も指定できるようにしようかと思います。~ ~お騒がせいたしました。~ -[[名無しさん]] &new{2004-06-19 (SAT) 15:49:03}; ~自己解決されたようですが… --- calendar2.inc.php.orig Tue Jun 3 20:59:07 2003 +++ calendar2.inc.php Sat Jun 19 15:46:54 2004 @@ -20,6 +20,14 @@ else if ($arg == 'off') { $today_view = FALSE; } + else if (preg_match('/^(\+|-)(\d+)m$/',$arg,$mp)) { + $now = getdate(); + $nmon = $now['year']*12 + $now['mon'] - 1 + +($mp[1]=='-'?-1:1)*$mp[2]; + $now['year'] = (int)( $nmon / 12); + $now['mon'] = ($nmon % 12)+1; + $date_str = $now['year'].($now['mon']<10?'0':'').$now['mon']; + } else { $base = strip_bracket($arg); } で如何か。 --[[もばぎつかい]] &new{2004-06-19 (SAT) 17:56:47}; ~アドバイスありがとうございます。~ ~なるほど preg_match ですか。年月の計算もこうすればスマートなんですね。~ ~勉強になりました。~ -[[もばぎつかい]] &new{2004-06-20 (SUN) 23:36:39}; ~自作プラグインにcalendar4ってあったんですね。はは。しっかりしろ!>俺 --[[さばぞう]] &new{2004-06-21 (MON) 00:15:23}; ~calendar4はv1.3.5用ですね。修正が必要ぽかったので報告しませんでした。 #comment
**[[質問箱/2222]] [#id567c1c] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|次月や前月のカレンダーを表示したい| |~バージョン|1.4.3| |~投稿者|[[もばぎつかい]]| |~状態|完了| |~投稿日|&new{2004-06-19 (SAT) 14:35:23};| ***質問 [#c2501cd9] ~FrontPageで今月と次月のカレンダーを並べて表示しています。 ~今月のカレンダーは #calendar2(off) としていますが、~ ~次月の分は~ #calendar2(off,FrontPage,200407) としており、年月を直接指定している状況です。~ ~しかしこのままだと、新しい月になるごとに修正しなければいけません。~ ~これを、例えば、 #calendar??(off,FrontPage,next) とか #calendar??(off,FrontPage,+1) というように指定できる他のカレンダー関係のプラグインはあるのでしょうか。~ ~または、 #calendar2(off,FrontPage,&datecalc(now,+1,"yyyymm")) というような日付計算のインライン型プラグインなどはあるのでしょうか。~ ~質問箱で調べたりネット検索などしましたが、有効な情報にたどり着けませんでしたので、こちらに質問させていただきました。~ ~よろしくお願いします。 ***回答 [#dabf82b6] -[[もばぎつかい]] &new{2004-06-19 (SAT) 15:23:48}; ~自己レスです。calendar2.inc.phpのソースを眺めていたら、機能追加しやすそうだったので、~ 試しに改造してみました。 ~具体的には、10行目に追加 $next_view = FALSE; $pre_view = FALSE; ~23行目に追加 else if ($arg == 'next') { $next_view = TRUE; } else if ($arg == 'pre') { $pre_view = TRUE; } さらに、42行目に追加 if($next_view) { if($mon == 12){ $yr++; $mon = 1; }else{ $mon++; } } if($pre_view) { if($mon == 1){ $yr--; $mon = 12; }else{ $mon--; } } ~これで、引数に'next'を指定すると次月が、'pre'を指定すると前月が表示されるようになりました。~ ~とりあえず、不具合もなく動いているようです。~ ~気が向いたら、月数指定で何ヵ月後(前)も指定できるようにしようかと思います。~ ~お騒がせいたしました。~ -[[名無しさん]] &new{2004-06-19 (SAT) 15:49:03}; ~自己解決されたようですが… --- calendar2.inc.php.orig Tue Jun 3 20:59:07 2003 +++ calendar2.inc.php Sat Jun 19 15:46:54 2004 @@ -20,6 +20,14 @@ else if ($arg == 'off') { $today_view = FALSE; } + else if (preg_match('/^(\+|-)(\d+)m$/',$arg,$mp)) { + $now = getdate(); + $nmon = $now['year']*12 + $now['mon'] - 1 + +($mp[1]=='-'?-1:1)*$mp[2]; + $now['year'] = (int)( $nmon / 12); + $now['mon'] = ($nmon % 12)+1; + $date_str = $now['year'].($now['mon']<10?'0':'').$now['mon']; + } else { $base = strip_bracket($arg); } で如何か。 --[[もばぎつかい]] &new{2004-06-19 (SAT) 17:56:47}; ~アドバイスありがとうございます。~ ~なるほど preg_match ですか。年月の計算もこうすればスマートなんですね。~ ~勉強になりました。~ -[[もばぎつかい]] &new{2004-06-20 (SUN) 23:36:39}; ~自作プラグインにcalendar4ってあったんですね。はは。しっかりしろ!>俺 --[[さばぞう]] &new{2004-06-21 (MON) 00:15:23}; ~calendar4はv1.3.5用ですね。修正が必要ぽかったので報告しませんでした。 #comment
テキスト整形のルールを表示する