0

このページにステージが定義されているかどうかをチェックするステージ用の freemarker テンプレートを作成しようとしています。そうでない場合は、親ページからステージを継承しようとします。標準の継承 (フッターなどのデフォルトのように) は機能しません。ユーザーは、必要に応じてサブページのさまざまな段階を定義できるはずだからです。

Magnolia 4.4 で機能するテンプレートを既に持っていますが、テンプレート API のさまざまな変更により、これは 4.5 では使用できません。そこで、4.5 に適応させようとしました: cmsfn.inherit() 関数を使用して親コンテンツを検索し、このコンテンツのステージにアクセスしていますが、エラーが発生し続けます (指定されていないと言っています)。

私のテンプレート:

<div id="stage" style="color: white;">
  [#if content??]
    [@cms.component content=content /]
  [#else]
    [#assign inheritedContent = cmsfn.inherit(cmsfn.content(state.mainContent.@handle)) /]
      [#if cmsfn.isEditMode()]
        Inherited content: ${inheritedContent}
      [/#if]
      [@cms.component content=inheritedContent.stage /]
  [/#if]
</div><!-- end stage -->

エラーメッセージ:

The 'content' parameter was passed but not or wrongly specified. The problematic instruction:
----------
==> user-directive cms.component [on line 17, column 17 in ***/pages/home/inheritStage.ftl]
4

1 に答える 1

3

答えが遅すぎるかもしれませんが、他の誰かがこれを見つけた場合: magnolia cms 4.5 でコンテンツを継承する方法が少し変更されました。

オーサー インスタンスで、テンプレート キット -> サイト構成に移動し、テンプレート -> プロトタイプ -> エリア -> ユウレアに移動し、「継承」と呼ばれる新しいコンテンツ ノードを追加し、そのノード データを作成します。

ノードデータ:

components - これは、"all" (すべてのコンポーネントが継承される)、"filtered" (継承プロパティが true に設定されているすべてのコンポーネントが継承される)、または "none" (一目瞭然) のいずれかです。

また、「フィルタリングされた」コンポーネントを継承する場合は、継承ダイアログ オプションを問題のコンポーネントに追加することを忘れないでください。

実際の例を見たい場合は、「エクストラ」プロトタイプを見てください。

于 2012-09-24T09:51:25.670 に答える