We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 11697
    • 17 Posts
    こんにちは。
    Dittoの改造?で良いお知恵をいただければと思い投稿させていただきます。
    現在

    ├新着情報(1)
      │
      ├2006年(2)
      │ ├新着情報1(3)
      │ ├新着情報2(4)
      │ └新着情報3(5)
      │
      ├2007年(3)
        ├新着情報1(6)
        ├新着情報2(7)
        └新着情報3(8)

    のようなツリーがあり、( )内の番号はドキュメントのIDとします。

    現在、新着情報(1)にアクセスするとDittoで
    [[Ditto? &startID=`3`]]
    のようにして2007年フォルダの下の記事がでるようにしていますが、
    これだと将来「2008年(9)」というフォルダができた際に2008年度の
    情報がでてこない状況になります。

    そこで新着情報(1)のDittoのstartIDの値を動的に
    直下のフォルダのうち、ドキュメントIDが一番大きいもの
    と指定したいのですが何かよい方法はないでしょうか?
    (もちろん自動でやらずにその都度startIDするという手も考えましたが、
    できればこれを自動でやりたいと思っています。)


    質問ばかりで大変申し訳ございませんが、
    何卒よいお知恵をいただければと存じます。
      • 19033
      • 892 Posts
      こんにちは。

      これが正解ってことではないのですが、方法のひとつとして...。

      [!Ditto? &startID=`[[Ditto? &startID=`0` &displayArchive=`0` &summarize=`1` &tpl=`dit_tpl_get_id` &sortBy=`id`  &descendentDepth=`1`]]` &displayArchive=`0` &summarize=`5` &tpl=`entrylist-short`!]


      Dittoコールの中で、Dittoをコールするやり方です。
      試してみましたが、うまくいっているようです(じっくりは確認して
      いないので落とし穴があるかも…^^;;)。

      内包する Ditto の tpl で読み込むテンプレートには[+id+]とだけ書きます。
      ・sortBy で、ドキュメントid順に並べ替え(デフォルト降順)、
      ・summarize=1 で、一番数の大きいもの一個を取り出す。

      …なんかもっと簡単な方法がありそうな気もするのですが。。
      とりあえず、これでもできます。。ということで。。^^;;

      ただ、動的に制御するとどうしてもページ読み込みが遅くなりがちな
      (=サーバに負担をかける)ので、レンタルサーバーの場合は、
      様子をみながらの方が良いのかも。。

      あ、あと、余談ですが、「id」ではなく、「menuindex」でも、
      同じ結果を得られると思いますので、よろしかったら、
      試してみてください。。
        • 19033
        • 892 Posts
        あ、追加ですが。。
        内包するDittoコールをチャンクにすればもっとすっきりしますよね。。

        [!Ditto? &startID=`{{dittoid}}` &displayArchive=`0` &summarize=`5` &tpl=`entrylist-short`!]


        {{dittoid}}
        [[Ditto? &startID=`0` &displayArchive=`0` &summarize=`1` &tpl=`dit_tpl_get_id` &sortBy=`id`  &descendentDepth=`1`]]
          • 11697
          • 17 Posts
          MEGU 様

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

          Dittoの中でDittoをもう一度呼び出す・・・、まったく気がつきませんでした。
          目からうろこが落ちると同時に改めてMODxの柔軟さを思い知りました。

          サーバへの負荷や読み込み速度は気になるところですが、
          まずは試してみたいと思います。

          すばらしいアドバイス本当にありがとうございました。