We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 19592
    • 56 Posts
    いつもお世話になっています。

    dittoを入れ子にしてリスティングしているのですが、
    &parentsで指定したidの子ドキュメントのidを自動で取得する方法はないでしょうか?

    ------------
    トップページ(1)
     ----親ドキュメントA(2)
      ---子ドキュメントa(3)
        ---孫1(4)
        ---孫2(5)
        ---孫3(6)
        ---孫4(7)
        ---孫5(8)
    ------------

    このようなフォルダ構成でトップページには

    [[Ditto? &parents=`1` &display=`1` &tpl=`testTpl`]]
    とdittoコール

    チャンクtestTplには
    <h2><a href="[~[+id+]~]">[+title+]</a></h2>
    <p>[+introtext+]</p>
    <p>[[Ditto? &parents=`3` &display=`all` &tpl=`testTplChild`]]</p>


    とテンプレートの中にdittoを入れ子にしています。
    この &parents=`3` の部分“子ドキュメントa(3)”のidを自動で取得するできないでしょうか?
    というのも“親ドキュメントA(2)”と同じフォルダ構成の親が複数あり、現状では,

    [[Ditto? &documents=`親Bのid` &tpl=`testTpl2`]]
    [[Ditto? &documents=`親Cのid` &tpl=`testTpl3`]]

    のように、子ドキュメントのidを変更した、別々のdittoテンプレートを使っている状態です。
    親ドキュメントに子ドキュメントid入力用のテンプレート変数ChildId を指定し、チャンクtestTplを
    <h2><a href="[~[+id+]~]">[+title+]</a></h2>
    <p>[+introtext+]</p>
    <p>[[Ditto? &parents=`[+ChildId+]` &display=`all` &tpl=`testTplChild`]]</p>


    という方法も考えたのですが、ChildIdを手入力するなら、あまり手間は変わらないなあと^^;

    もうすこしスマートな方法はないでしょうか?
    よろしくお願いします。
      • 15497
      • 117 Posts
      Dittoのパラメータで、
      「depth」を2以上に設定する。
      途中のフォルダを飛ばしたい表示したくないなら、「hideFolders」を「1」にする。
      で、どうでしょう?


      ちょっとうろ覚えなところもありますが、たぶんこれで行けるような気がします。

      追記:修正しました「飛ばしたい」→「表示したくない」
        ★日本公式フォーラム2009年9月1日本格始動!★
        http://modxcms-jp.com/bb/

        ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
        http://d.hatena.ne.jp/hikidas_ikeda/
        ▼制作済みHTMLページをmodxで更新するデモ
        http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
        • 19592
        • 56 Posts
        >kazuike さん

        ご提案の方法でうまくいきました。 laugh
        hideFoldersというパラメータは初めて使ったのですが、こうゆう時に使えるのですね。
        目からうろこでした。

        ありがとうございました。