1

私はmodxレボリューションを使用しています。他のチャックの例を呼び出すレイアウトというチャンクを作成したい

ヘッド ヘッダー ナビゲーション ボディ フッター

次に、私のテンプレートで //open layout tag[[$layout]] [[$layout]]//close layout tag のようなことを行います。次に、開始終了タグの内側に [[*content]] を追加します。これにより、レイアウト テンプレートをテンプレートに複製しなくても、何度でもレイアウト テンプレートを再利用できます。最初の質問、それは可能ですか、2番目の質問は、この目標を達成するためにどのような構文が必要ですか? 私は modx にはかなり慣れていませんが、他のフレームワークでも可能であることを知っているので、助けていただければ幸いです。ありがとう。

Apache Tapestry フレームワークで作成されたサンプル コンセプト。明らかに異なる構文ですが、私が探しているものの一般的なアイデアが得られるはずです。

使用されるコンポーネント/チャンク。

レイアウト ヘッダー ナビゲーション フッター

レイアウトの内側

<html>
    <t:Header/>
    <t:Nav/>
    <t:Body/>
    <t:Footer/>
</html>

目次・テンプレート内

<t:Layout>
        template body content goes here ex. [[*content]]
</t:Layout>

これが明確にするのに役立つことを願っています。

4

4 に答える 4

2

あなたの投稿はあまり明確ではなく、助けを探す前にMODxがどのように機能するかを読むのにそれほど時間はかからなかったと思います。

それはさておき、あなたがやりたいことは、多かれ少なかれ次のように構造化されたさまざまなテンプレートを作成することだと思います。

[[$header]]
[[$nav]]

<div id="content">
    <h1>[[*pagetitle]]</h1>
    [[*content]]
</div>

[[$footer]]

これはホームページに役立つ可能性があります。次に、レイアウトが少し異なる内部ページの場合、レイアウトごとに1つ以上の新しいテンプレートを作成できます。

[[$header]]
[[$nav]]

<div id="content">
    <h1>[[*pagetitle]]</h1>
    [[*content]]
</div>

[[$sidebar-chunk]]

[[$footer]]

次のような単一のテンプレートを使用して、さまざまなレイアウトを表示することもできます。

[[$header]]
[[$nav]]

<div id="content">
    <h1>[[*pagetitle]]</h1>
    [[*content]]
</div>

[[*parent:is=`6`:then=`
    [[$recent-articles]]
`:else=`
    [[$sidebar-chunk]]
`]]

[[$footer]]

それで始められるはずですが、MODxですべてを行うには複数の方法があることにすぐに気付くでしょう。

于 2012-03-02T09:37:18.337 に答える
2

[[*content]] は、別のチャンク内であっても、好きな場所に配置できます。

したがって、 [[$layout]] チャンクは次のようになります。

[[$header]]
[[$menu]]
<div id="content">
  <h1>[[*pagetitle]]</h1>
  [[*content]]
</div>

テンプレートベースでチャンクに小さな変更を加えたい場合は、テンプレートで次のようにすることもできます。

[[$layout? &customContentBits=`
    <h1>[[*pagetitle]]</h1>
    [[*content]]
`]]

レイアウトチャンクは次のようになります。

[[$header]]
[[$menu]]
<div id="content">
  [[+customContentBits]]
</div>

これは、チャンク呼び出しに &customContentBits を追加することによって設定されるプレースホルダー ([[+customContentBits]]) です。

少し前の私のブログでも、別のユースケースでもう少し説明しました: http://www.markhamstra.com/modx-blog/2010/10/introducing-element-properties-and-output-modifier/

于 2012-03-18T20:00:41.413 に答える
0

あなたが求めていることは絶対に実行できます。実際、私の Web サイトでは、テンプレート変数をチャンク修飾子として渡すことで、複数のレイアウトを提供する同じテンプレート/チャンク コンボさえあります。とにかく、物事をシンプルにしましょう。

質問に対する簡単なメモ. ModX は、ネイティブに開始タグと終了タグを使用しません。そういう考え方はやめたほうがいいです。代わりに、置きたい場所に物を置きます。各リソースは一意であるため、リソース変数は任意のチャンクに入れることができます。


チャンクを作成します。

まずは簡単なものから。ヘッダー、フッター、およびナビゲーションを作成します。次に、ボディを作成します。Body 内に、必ず your [[*content]](いいえ... Template に入れる必要はありません) を含めてください。最後に、次のコードを使用してレイアウトを作成します。

[[$header]]
[[$navigation]]
[[$body]]
[[$footer]]

テンプレートを作成します。

テンプレートは [[$layout]] のようにシンプルになりました。あなたは終わった。


ノート

これは ModX でも可能ですが、コンテンツの種類に応じて複数のテンプレートとチャンクを使用できることが ModX の強みであることを理解してください。このようにすべてを個別化すると、プラットフォームを使用する大きな利点が失われます。

于 2012-06-15T12:03:53.550 に答える