1

タペストリーのページとテンプレートについて質問があります。

ユーザーがページを取得するためにリクエストを送信します。リクエストがモバイルまたはデスクトップから送信されたことを認識しています。リクエストされたページを別のレイアウトで表示したい。

例えば:

リクエストがモバイル デバイスからのものである場合、mobileLayout.tml と pages/mobile/index.tml をロードしたいのですが、その index.tml には t:type="mobilelayout" があります。

デスクトップ デバイスからの場合は、layout.tml と pages/index.tml を読み込みたいのですが、その index.tml には t:type="layout" があります。

例:

デスクトップ デバイスに対してのみページ pages/index.tml を表示します。

ページ pages/mobile/index.tml をモバイル デバイスのみに表示します。

  • 要求されたページ: /index
  • デバイス: 電話
  • mobileLayout と pages/mobile/index.tml を読み込みたい

  • 要求されたページ: /index

  • デバイス: デスクトップ
  • layout.tml と pages/index.tml を読み込みたい

基本的にモバイルデバイスの場合、ページ/モバイルからコンテンツを取得したいのですが、それ以外の場合はページ/から取得します。

Tapestry5(5.3.6)でそのようなことは可能ですか?

私は以下のようなことを試みましたが、成功しませんでした:

LayoutLoader.tml - リクエストの送信元を認識しています。

<t:delegate to="layout" />

<t:block t:id="mobileLayout">
   <t:mobileLayout />     
</t:block>

<t:block t:id="desktopLayout">
   <t:layout />   
</t:block>

コンポーネント/Layout.tml

<body t:type="layoutloader">...</body>

コンポーネント/MobileLayout.tml

<body t:type="layoutloader">...</body>

ページ/Index.tml

<div t:type="layout">...</div>

ページ/モバイル/Index.tml

<div t:type="mobileLayout">...</div>
4

1 に答える 1

1

Igor のブログ投稿が興味深いかもしれませんhttp://blog.tapestry5.de/index.php/2011/06/24/template-skinning/

于 2013-03-27T23:32:35.523 に答える