We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 14818
    • 10 Posts
    毎回質問してばかりもなんなので、個人的に調べたReflectの使い方でちょっとわかりづらいかなという部分をまとめておきます。
    (マニュアルのカテゴリに書くほどのことではないのでこちらに書きました)

    まず0.9.6rc3のサンプルのblogのReflectですが、

    [[Reflect? &dittoSnippetParameters=`startID:2` &groupByYears=`0` &showItems=0` &tplMonth=`reflect_month_tpl`]]

    上記のようになっていますが、このままだとアーカイブのリンク自体は表示されるのですが問題があります。
    (自分の環境だけかもしれませんが・・・。)
    たとえば、私の環境ではアーカイブが下記のようになるのですが、

    Archives
    2007年05月
    2007年04月

    2007年05月のリンクをクリックしても04月の記事も表示されてしまいます。
    これでは使い物になりませんので、

    まずReflectの記述を

    [!Reflect? &id=`blog` &getDocuments=`1` &dittoSnippetParameters=`startID:2` &groupByYears=`0` &showItems=0` &tplMonth=`reflect_month_tpl`!]

    のようにidとgetDocumentsを追加しました。
    そして、Dittoの方にも

    [!Ditto? &startID=`2` &summarize=`all` &id=`blog` &extenders=`dateFilter`!]

    のようにidとextendersを追加しました。

    これで2007年05月のリンクをクリックした場合は05月の記事だけが表示されるようになります。
    ちなみにたまたまうまくいっただけなのでどうしてgetDocumentsやextendersを追加しないといけないのかはわかりません・・・。
    詳しい方がおられましたら是非ご教授いただければと思います。

    以上、もし間違いがあればご指摘いただければと思います。
      • 14818
      • 10 Posts
      Reflectを試していたときには気づかなかったのですが、

      [!Ditto? &id=`blog`

      のようにDittoでidを指定した場合

      paginate=`1`

      としてDittoでページを分割した場合に正常に動作しなくなりますね・・・。
      かといってidを指定しないとReflectが使えないし・・・。
        • 19033
        • 892 Posts
        こんにちは。その問題は、こちらでもあげられていましたが。
        http://modxcms.com/forums/index.php?topic=12262.0;wap2

        これでいけそうですよ。

        [!Ditto? &parents=`54` &extenders=`dateFilter` &display=`5` &id=`myDittoCall` &paginate=`1`!]

        <p> [+myDittoCall_previous+] [+myDittoCall_pages+] [+myDittoCall_next+] </p>

        [!Reflect? &getDocuments=`1` &dittoSnippetParameters=`parents:54` &tplMonth=`ditto_month` &monthSortDir=`DESC` &id=`myDittoCall` &showItems=`0`!]

        [+page+]関係のプレイスホルダにプリフィックスとして「id」で指定した値を入れます。

        id を指定することで、1ページの中で複数のDitto および、Reflect を動作
        させられるということらしいですが、そのために、ページナビゲーションのための
        プレイスホルダにも識別名としてプリフィックスが必要ということみたいですね。
          • 14818
          • 10 Posts
          MEGUさん

          ご回答ありがとうございます。

          >>プレイスホルダにプリフィックスとして「id」で指定した値を入れます

          ばっちり上手くいきました。
          いつもいつもありがとうございます。
            • 19033
            • 892 Posts
            良かったです~。
            こっちにも追加しておきました laugh
            http://modxcms.com/forums/index.php/topic,14994.0.html
              • 14818
              • 10 Posts
              すごい!
              Ditto2の仕様がDitto1とだいぶ変わってて手探りでがんばってたのですが、
              これ見ればたいていの事はわかりますね。

              extenderの概要とか勉強になります。

              あと、

              ・テンプレート変数の指定
                テンプレート変数を指定する場合、1.x 系ではプリフィックス「tv」をつけていましたが、2.x 系ではつけないようになりました。

              これは何とか自力でたどり着いたのですが、気づくまで苦労しました・・・。

              その他色々わからないことがありますので参考にさせていただきます。

              #
              今までReflectに関して
              http://modxcms.com/forums/index.php/topic,12433.0.html
              を参考に試行錯誤していたのですが、日本語でこれほど詳しくまとめられているとは・・・。
              もう少し早くこのページをしっていれば1日無駄にせずにすんだかも :’(