2017-03-17 4 views
0

現在、ブログ、ニュース、イベントにoobページタイプを使用しています。これらのタイプのページのリストを表示するリピーターが含まれています。また、作成した日付でソートされたブログ、ニュース、イベントのすべてのページを1つの場所に表示するリピーターを含むページもあります。
リピーターが複数のページタイプをレンダリングすることはできますが、レンダリングされたフィールドはそれぞれのページタイプで同一でなければならないという古いコメント(herehere)があります。回避策は、各ページタイプに同じフィールドを作成するか、カスタムSQLクエリを作成し、クエリーリピータを使用してデータをレンダリングすることを推奨します。私はこれをして、それはうまく動作しますが、作成するのはかなり面倒だったし、維持することが難しいでしょう。 (たとえば、他のページタイプを追加したい場合)誰もKentico 10で利用可能なよりすぐに使用できる方法を提案できますか?Kentico 10 - リピーターを使用して複数のページタイプを表示する

更新:

私はBrendenが説明するように、これを達成しようとしているが、トラブルに実行しています。 次のようにマイページの構造は次のとおりです。私はユニバーサルビューアを使用しようとしましたが、それはすべてのデータを返すために取得に失敗しました

Root 
.RollupPage (CMS.MenuItem) 
..BlogPosts (CMS.Blog) 
...January 2017 (CMS.BlogMonth) 
....blog post 1 (CMS.BlogPost) 
...February 2017 (CMS.BlogMonth) 
....blog post 2 (CMS.BlogPost) 
..Events (CMS.MenuItem) 
...Event1 (CMS.BookingEvent) 
...Event2 (CMS.BookingEvent) 

Path: /RollupPage/% 
Page types: CMS.BlogPost;CMS.BookingEvent 
Hierarchical Transformation: CMS.MenuItem.HierTrans1 

HierTrans1は、以下の変換があります:

は、私はそれを構成

CMS.BlogPost.Default (Item transformation for type CMS.BlogPost) 
CMS.BookingEvent.EventCalendarItem (Item transformation for type CMS.BookingEvent) 

これらは全くカスタマイズされていないと、彼らは標準的なOOB変換であり、私はそれが動作することがわかります。

ロールアップページを表示すると、ユニバーサルビューアに何も表示されません。

ユニバーサルビューアで行ったのと同じ設定の階層ビューアを使用しようとしました。それは一種の仕事です。予約イベントは表示されましたが、ブログ投稿は表示されませんでした。しかし、が/RollupPage/BlogPosts/%に設定された階層ビューアで同じブログ投稿変換(CMS.BlogPost.default)を使用すると、ブログ投稿は正しく表示されましたが、明らかに私の予約イベントは表示されませんでした。

私が今までに得た結果は、私が私のページを作成した方法についての何かが、ユニバーサルビューアがツリー全体を横切ることを止めていること、そして/またはb)階層ビューアが、または深刻なレベルの、またはおそらく木を横切ることからブロックされている...これらのWebパーツを編集または表示すると、イベントは記録されません。

私が間違っている可能性がありますか?

答えて

1

をチェックすることにより、変換を割り当てます。

あなたはあなたのケースでは、階層に含まれるすべてのページタイプ、選択しなければならないWebパーツの設定:CMS.MenuItem、CMS.Blog、CMS.BlogMonth、CMS.BlogPostCMSBookingEventを

はあなたのビューアで使用する階層変換を作成し、表示したい項目ごとにアイテムの変換を追加します。また、各変換のレベルが正しく設定されていることを確認してください(-1はすべてのレベルに変換を適用します)。 ユニバーサルビューアについては

プロパティをチェックする必要があるセクションで拡張設定の構成のを階層データをロードします。

現在のページの子ドキュメントを表示している場合は、pathプロパティを空のままにしておくこともできます。参考のため

は、コンテンツツリーパス例> Webパーツ>一覧や視聴者>ページ>階層ビューア(またはユニバーサルビューア)でコーポレートサイトサンプルサイト上の例があります。

希望すると便利です。

3

このシナリオでは、ユニバーサルビューアを使用してください。なぜなら、ユニークなページタイプごとに異なる変換を行う階層的な変換を作成できるからです。階層を使用することはほとんどありませんが、異なるページタイプに対して3つの異なるアイテム変換を追加するだけです。

-1

他の方法本

  1. は変換内部チェックオブジェクトclassnamefieldnameを評価し、適切な値を代入しています。

  2. は動的Brenden Kehrenが述べたようにあなたが記述している目標を達成するために、階層ビューアまたはユニバーサルビューアを使用することができ、オブジェクトのクラス名

+0

オブジェクトのリスティングを表示するときにリピータのプロパティでクラス名をチェックすることはできません。個々のオブジェクトではなく、リストを示すページのクラス名を常に取得します。 また、条件付き変換を行うとうまくいっていますが、ボックスのwebpart(ユニバーサルビューア)が何もコーディングせずにこれを行う場合、そのコードを書く必要はありません。 –

関連する問題