coba

カレンダー今月と来月 2ヶ月分を表示

2

カレンダー機能について質問です。
カレンダー今月と来月 2ヶ月分を表示するにはどうすればよいのでしょうか?

返信(12)

| 返信する
  • http://www.movabletype.jp/documentation/appendices/tags/calendar.html
    上記説明のmonthモディファイアを使う・・・です。

  • >oscarさん
    返信ありがとうございます。
    モディファイアで、未来の月の指定をどうとるのかが分かりません。
    現在の月+現在の月の次月。を表示したいんです。

  • 3つめの「month="YYYYMM"」を使います。
    2カ月分のカレンダーを表示するタグなど、用意はされていませんし、翌月というのも本来の用途ではないため存在しません。
    「現在の月の次月」を「YYYYMM」の形式で渡して、表示させます。

    • >oscarさん
      再度、ありがとうございます。
      はい、月指定は分かるんですが、次の月も自動で値を取得したかったんです。

    • >oscarさん
      再度、ありがとうございます。
      はい、月指定は分かるんですが、次の月も自動で値を取得したかったんです。

  • ここら辺は定番の処理ですね。

    <MTSetVarBlock name="year"><MTDate format="%Y"></MTSetVarBlock>
    <MTSetVarBlock name="month"><MTDate format="%m"></MTSetVarBlock>
    <MTSetVarBlock name="nextmonth"><MTIf name="month" eq="12"><MTVar name="year" op="++">01<MTElse><MTVar name="year"><MTVar name="month" op="++"></MTIf></MTSetVarBlock>

    これで変数nextmonthに格納されてます。

    • >oscarさん
      なるほど、そうすれば取得できますね。
      助かりました!実装してみます。
      ありがとうございました。

  • >oscar様

    お世話になります。こちらの情報を拝見して実装しようとしたのですが、エラーが出てしまうため質問させていただきます。



    01

    ">
    ...

    上記ソースで、以下のエラーが表示されます。

    「<mtCalendar>タグでエラーがありました: YYYYMM形式でなければなりません。」



    を直でvar_dumpすると、「201012」のように正常に出力されるのですが、mt:Calendarのmonthに入れたときにおかしくなるように見受けられます。

    対処法がお分かりでしたらご教授頂きたく、よろしくお願いいたします。

  • >oscar様
    
    

    お世話になります。
    ※先ほどエンコードせずに投稿してしまいました。すみません。

    こちらの情報を拝見して実装しようとしたのですが、エラーが出てしまうため質問させていただきます。

    <MTSetVarBlock name="year"><MTDate format="%Y"></MTSetVarBlock>
    <MTSetVarBlock name="month"><MTDate format="%m"></MTSetVarBlock>
    <MTSetVarBlock name="nextmonth"><MTIf name="month" eq="12"><MTVar name="year" op="++">01<MTElse><MTVar name="year"><MTVar name="month" op="++"></MTIf></MTSetVarBlock>
    <mt:Calendar month="<$MTGetVar name="nextmonth" index="0"$>">
    ...
    </mt:Calendar>

    上記ソースで、以下のエラーが表示されます。

    「<mtCalendar>タグでエラーがありました: YYYYMM形式でなければなりません。」

    <$MTGetVar name="nextmonth" index="0"$>
    を直でvar_dumpすると、「201012」のように正常に出力されるのですが、mt:Calendarのmonthに入れたときにおかしくなるように見受けられます。

    対処法がお分かりでしたらご教授頂きたく、よろしくお願いいたします。

  • MTタグの中で、別なMTタグ(この例ではMTGetVar)は使えません。
    正しく出力値が扱えないので、該当エラーが出ます。
    ただし変数にセットされた値は、$nextmonthとして参照できます。
    なので、<mt:Calendar month="$nextmonth">ならば、問題なく動作します。
    それから、<$MTGetVar name="nextmonth" index="0"$>は変数ではなく配列です。基本的なことが理解出来ていないように思います。

  • oscar様

    無事実装できました。ありがとうございます!

返信する


OpenID対応しています OpenIDについて