親リソースから子リソースのpagetitleを取得したい。  【解決済み】

質問全般・改善要望
返信する
mojira
メンバー
メンバー
記事: 87
登録日時: 2009年10月04日(日) 14:25

親リソースから子リソースのpagetitleを取得したい。

投稿記事 by mojira »

表題の件ですが、以下のようなサイトマップにて

site root(0)
 └pagetitle=長野県(1) <<- ※スニペットコール
 | └pagetitle=松本市(2)
 | | └pagetitle=AA町(3)
 | | └pagetitle=BB町(4)
 | |
 | └pagetitle=諏訪市(5)
 | | └pagetitle=CC町(6)
 | | └pagetitle=DD町(7)
 | 
 └pagetitle=山梨県(8)

【***実現したい内容***】
上記のMODxのサイトマップでAA町(3)~DD町(7)までをdittoコールを使用して、pagetitle=長野県(1)
のページに一覧で表示させています。
例えば一覧中のAA町(3)の表示箇所に「長野県、松本市、AA町」という感じです。
※BB町(4)の場合は「長野県、松本市、BB町」になります。

※スニペットコールの内容
[!Ditto? &parents=`2,5` &display=`10` &tpl=`一覧データ`!]

上記のスニペットコールをpagetitle=長野県(1)のリソースのテンプレートに埋め込んでいます。
スニペットコールで指定したテンプレートチャンク「一覧データ」の中身は、[+pagetitle+]だけでAA町(3)~DD町(7)
までの町名がpagetitle=長野県(1)のページに表示できるのですが、
松本市(2)、諏訪市(5)のpagetitleを取得する方法が解らず悩んでいます。

また、以下のように一覧データのdittoの中にさらに以下ような呼び出しでdittoコールを入れ子にして松本市(2)と諏訪市の
pagetitleだけを取得しようと思っていましたが、「松本市」と「諏訪市」の両方が表示されてしまい上手く行きませんでした。

[!Ditto? &parents=`1` &tpl=``!] ← &tpl=`一覧データ`!]内でdittoコールです。

※チャンク「」の中身は[+pagetitle+]だけです。

[modx]
 バージョン:1.0.2J
 スニペット:ditto 2.0

何卒、よろしくお願いいたします。m(_ _)m
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: 親リソースから子リソースのpagetitleを取得したい。

投稿記事 by kazuike »

mojira さんが書きました:例えば一覧中のAA町(3)の表示箇所に「長野県、松本市、AA町」という感じです。
※BB町(4)の場合は「長野県、松本市、BB町」になります。
これ、ツリー的に表示するのではなくて、

コード: 全て選択

長野県、松本市、AA町
長野県、松本市、BB町
長野県、諏訪市、CC町
長野県、諏訪市、DD町
のように表示するということでしょうか?
つまり、各行は「町」単位で、それぞれ、上位になる市、さらにもう一つ上位の県まで表示する。
ということですね?

いくつか方法はあると思いますが、とりあえず思いついた方法で、
Dittoで繰り返すチャンクの中に、以下のようにスニペットGetFieldを入れる。
ひとつ上(市)の表示

コード: 全て選択

[[GetField? &docid=`[+id+]` &parent=`1` &parentLevel=`1`]]
ふたつ上(県)の表示

コード: 全て選択

[[GetField? &docid=`[+id+]` &parent=`1` &parentLevel=`2`]]
て感じでどうでしょう?
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
mojira
メンバー
メンバー
記事: 87
登録日時: 2009年10月04日(日) 14:25

Re: 親リソースから子リソースのpagetitleを取得したい。  【解決済み】

投稿記事 by mojira »

kazuikeさんへ

ご返信、ありがというございます!m(_ _)m

おかげ様で、思い通りの結果が得られました! 悩んでいたので、本当にたすかりました。

質問の前にGetFieldも試したのですが「&docid=`[+id+]`」という発想が浮かびませんでした・・・

大変親切に教えていただき感謝です!
返信する