私はOrchard 1.10.1
を使用します。(コンテンツタイプ/ディスプレイタイプ)オーチャードのレイアウトシェイプに特有の代替
オーチャードではレイアウトシェイプの代わりに(ContentType
/DisplayType
)を使用することは可能ですか?
CustomContentType
のレイアウトの代わりにDisplaytype
の詳細が必要です。
ありがとうございました。
私はOrchard 1.10.1
を使用します。(コンテンツタイプ/ディスプレイタイプ)オーチャードのレイアウトシェイプに特有の代替
オーチャードではレイアウトシェイプの代わりに(ContentType
/DisplayType
)を使用することは可能ですか?
CustomContentType
のレイアウトの代わりにDisplaytype
の詳細が必要です。
ありがとうございました。
それは、レイアウト形状のようには見えませんが交互には、ボックスの外に設定している:
はあなたが必要になりますし、次のいずれかのビット、Zone
をスクロールダウンしている場合最後にAlternatesを追加するイベントハンドラOnDisplaying()
があることを確認してください。
私が知らないこれをサポートする組み込みのトリックがあるかどうかはわかりません。私も知らない「レイアウト」の特別なケーシングがないと仮定すると、あなた自身があなたの要件に合った代替品を追加するIShapeTableProvider
を作ることができます。
a tutorial over on Bertrands blogが表示され、これをどのように行うことができるかについての説明があります。
このコメントでは、シェイプトレーサのURL代替機能を有効にすることができます。ここで
はContentTypeをベースレイアウトalternanteプロバイダのexempleです:
public class LayoutAlternateProvider : ContentHandler
{
string contentType;
private readonly IWorkContextAccessor _workContextAccessor;
protected override void BuildDisplayShape(BuildDisplayContext context)
{
if (context.DisplayType == "Detail" && !IsWidget(context.ContentItem))
{
context.Layout.Metadata.Alternates.Add("Layout__" + context.ContentItem.ContentType);
}
}
private static bool IsWidget(ContentItem item)
{
return item.TypeDefinition.Settings.Any(setting => setting.Key == "Stereotype" && setting.Value == "Widget");
}
}
おかげで、素晴らしいガイド。 –