0

URL 代替テンプレートを使用して ContentType の DisplayType テンプレートをオーバーライドできるかどうかは誰にもわかりませんか? たとえば、テンプレート Content-Page.Detail.cshtml を Content-url-homepage-Page.Detail.cshtml で上書きすることは可能ですか? 少し遊んだ後、そうではないようです。私が達成しようとしていることが可能かどうか誰にも分かりますか?

ありがとう!

4

1 に答える 1

0

「形状トレース」機能を有効にし、代替のリストを表示することで、形状に使用可能なすべての代替を表示できます。例: http: //devhammer.net/blog/Customize-Orchard-CMS-with-Designer-Tools

たとえば、ホームページのメインコンテンツアイテムでは、箱から出してすぐに使用できます。

~/Themes/MyTheme/Views/Content.cshtml
~/Themes/MyTheme/Views/Content-url-homepage.cshtml
~/Themes/MyTheme/Views/Content.Detail.cshtml
~/Themes/MyTheme/Views/Content-Page.cshtml
~/Themes/MyTheme/Views/Content-10.cshtml
~/Themes/MyTheme/Views/Content-Page.Detail.cshtml
~/Themes/MyTheme/Views/Content-10.Detail.cshtml

オプションは、Orchard.DesignerTools.Services.UrlAlternatesFactoryなどの既存の代替ファクトリを追加または拡張することです。

// appends [ShapeType]__url__[Url]_[DisplayType] alternates
context.ShapeMetadata.Alternates = _urlAlternates.Value.Select(url => 
    context.ShapeMetadata.Type + "__url__" + url + "_" + 
        context.ShapeMetadata.DisplayType)
        .Union(context.ShapeMetadata.Alternates)
        .ToList();

これにより、代替の〜/ Themes / MyTheme / Views / Content-url-homepage.Detail.cshtml

または、次のような既存の代替手段の1つを使用する

~/Themes/MyTheme/Views/Content-10.Detail.cshtml

それはあなたの目的に合うかもしれないように見えます(私にとって、IDを使用することはURLを使用することほどきれいではありません)

また、「URL代替」機能の機能優先度を調整して、コードから表示されるようにURL代替が他のすべての既存の代替に追加されるようにしましたが、私が見る限り、これは機能していないか、そうでない場合がありますサポートされています。

于 2013-01-14T00:14:07.797 に答える