1

非常に単純に、1 つのページに複数のコンテンツ領域を配置したいと考えています。これは私の最初の Modx サイトです。

これまでのところ、ホームページがあり、ホームページのサブ領域の子ドキュメントを作成しました。私が望むのは、テンプレートでそれらを呼び出すことだけです。

たとえば、ID が 2 のドキュメントがあり、ホームページ (ID が 1) に長いタイトルが必要です。

何かのようなもの :

[[~2*longtitle]] 

残念ながら、上記はそのサブドキュメントへの URL を返すだけで、そのドキュメント自体のロングタイトルではありません。

これまでのところ、そうすることに関するドキュメントは見つかりませんでした。これを達成する方法を知っている人はいますか?

4

2 に答える 2

2

あなたには2つの選択肢があります.困難な方法〜あなたが選択したルート;)と簡単な方法....これについても概説します.

あなたがやろうとしていることについては、 getResources http://rtfm.modx.com/display/ADDON/getResourcesのいずれかを使用したいと思うでしょう。これにより、リソースのコレクションをループして、必要なフィールドを抽出することができます [inこの場合は「コンテンツ」] または getresourceField http://rtfm.modx.com/display/ADDON/getResourceFieldを使用すると、単一のリソースと抽出するフィールドを指定できます。テンプレートで複数回呼び出すだけです。

あなたは試すことができます:

[[getResources? &parents='[[*id]]' &tpl='myTpl' &includeContent='1']] 

現在のリソースのすべての子リソースを取得する必要がある場合は (デフォルトで最大 10 個まで)、リソースを取得するためのテンプレートを作成してループ オーバーします。

<h1>[[+longtitle]]</h1>
<p>[[+content]]</p>

リソース フィールドに * の代わりに + を使用していることに注意してください

また

簡単な方法として、追加のコンテンツ エリア用のテンプレート変数を作成し、それらをリッチ テキスト エリアとして設定することもできます。そうすれば、特定のページのすべてのコンテンツが1つのリソース内にあります。ヘッダー/フッター/サイドバーなどのコンテンツを保持するために子リソースを作成する必要はありません

どちらの方法でも機能しますが、TV 方式の方がオーバーヘッドが少ない場合があります。

于 2013-02-25T22:51:11.647 に答える
1

ファストフィールドを使用できます

[[#12.pagetitle]]

または通話中

[[#[[+id]].pagetitle]]

次のように、そのリソースのすべての TV を取得することもできます。

[[#12.myTv]]

参照: http://rtfm.modx.com/extras/revo/fastfield

于 2015-02-25T09:56:11.657 に答える