あなたが達成しようとしていることを理解したと思います。解決策として、テーマを次の 2 つの方法のいずれかで変更する必要があります。
最初の方法はより望ましい方法ですが、より多くの作業を行う必要があります。テンプレートを変更して、現在のゾーンを 2とLayout.cshtml
に分割する必要があります。これは、テンプレートの現在のコードに大きく依存していますが、おそらく以下から変更する必要があります。Content
Content
Aside
<section id="content-area">
@Zone(Model.Content)
</section>
に:
<section id="content-area">
@Zone(Model.Content)
</section>
@if(Model.Aside != null){
<aside id="aside-area">
@Zone(Model.Aside)
</aside>
}
次に、 CSS を変更して、 yourcontent-area
が左に、 theaside-area
が右にフローティングするようにします。
ゾーンのリストTheme.txt
に追加するには、テーマのファイルを変更する必要もあります。Aside
Aside
ゾーンにウィジェットを追加できるようになりました。これらのウィジェットを特定の状況でのみ表示する必要がある場合は、ウィジェットを表示したいときにその状況でアクティブになる追加のレイヤーを作成する必要があります。
2 番目の解決策は、ブログが概要モードで表示されている場合にのみこれらのウィジェットを表示する場合です。このソリューションは、Orchard を使用する通常の方法ではなく、Orchard が許可するトリックですが、これを念頭に置いて設計されていません。それでも、場合によっては便利だと思うので、ここに行きます。
ゾーンのリストにゾーンTheme.txt
を追加するように変更します。Aside
テーマに新しいテンプレートを作成し、名前を付けますContent-Blog.cshtml
。次の内容になるように編集します。
<section id="content-area">
@Display(Model.Content)
</section>
@if(Layout.Aside != null){
<aside id="aside-area">
@Display(Layout.Aside)
</aside>
}
Aside
また、コンテンツの右側にゾーンを設定するように CSS を変更する必要があります。
Aside
これで、ウィジェットをゾーンに追加できます。Aside
ゾーンが表示されるのContent-Blog.cshtml
は がレンダリングされるときだけでありBlog
、サマリー モードで表示されるときだけレンダリングされるため、新しいレイヤを作成する必要がないことに注意してください。