質問箱/2222

カテゴリ
サマリ次月や前月のカレンダーを表示したい
バージョン1.4.3
投稿者もばぎつかい?
状態完了
投稿日2004-06-19 (SAT) 14:35:23

質問

FrontPageで今月と次月のカレンダーを並べて表示しています。

今月のカレンダーは

#calendar2(off)

としていますが、

次月の分は

#calendar2(off,FrontPage,200407)

としており、年月を直接指定している状況です。

しかしこのままだと、新しい月になるごとに修正しなければいけません。

これを、例えば、

#calendar??(off,FrontPage,next)

とか

#calendar??(off,FrontPage,+1)

というように指定できる他のカレンダー関係のプラグインはあるのでしょうか。

または、

#calendar2(off,FrontPage,&datecalc(now,+1,"yyyymm"))

というような日付計算のインライン型プラグインなどはあるのでしょうか。

質問箱で調べたりネット検索などしましたが、有効な情報にたどり着けませんでしたので、こちらに質問させていただきました。

よろしくお願いします。

回答

  • もばぎつかい? 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'を指定すると前月が表示されるようになりました。

    とりあえず、不具合もなく動いているようです。

    気が向いたら、月数指定で何ヵ月後(前)も指定できるようにしようかと思います。

    お騒がせいたしました。

  • 名無しさん 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);
                }

で如何か。

  • もばぎつかい? 2004-06-19 (SAT) 17:56:47

    アドバイスありがとうございます。

    なるほど preg_match ですか。年月の計算もこうすればスマートなんですね。

    勉強になりました。

  • もばぎつかい? 2004-06-20 (SUN) 23:36:39

    自作プラグインにcalendar4ってあったんですね。はは。しっかりしろ!>俺

    • さばぞう 2004-06-21 (MON) 00:15:23

      calendar4はv1.3.5用ですね。修正が必要ぽかったので報告しませんでした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-08-21 (土) 01:00:23
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u2. HTML convert time: 0.235 sec.

OSDN