2014-10-07 51 views
0

我定型了正在使用果园一个网站,我注意到他们是具有消息的自定义内容类型,这里是HTML如何覆盖核心共同的看法在乌节

<p>Some text</p> 
<p>Some more text</p> 

标准的消息这是细但是由于它被插入每个</p>

这里后<br />的Orchard.Core.Common.Views.Fields.Common.Text.cshtml是他们的视图,其呈现所述消息

@using Orchard.Utility.Extensions; 
@{ 
    string name = Model.ContentField.DisplayName; 
} 

@if (HasText(name) && HasText(Model.Value)) { 
<p class="text-field"><span class="name">@name:</span> <span class="value">@(new MvcHtmlString(Html.Encode((HtmlString) Model.Value).ReplaceNewLinesWith("<br />")))</span></p> 
} 

我怎样才能覆盖这个?我试图将视图复制并粘贴到我的主题/视图文件夹中,但似乎并未覆盖它。我只是想删除".ReplaceNewLinesWith("<br />")"

回答

0

我还没有试过这与果园1.6,但是这与最新版本(1.8)正常工作。显而易见的事情要检查,你的主题是积极的,你给你的观点正确的名称。如果你想要一个全局覆盖,那么视图应该位于主题视图文件夹的根目录下,名称为“Fields.Common.Text.cshtml”。

如果您不想更改全部文本字段的行为,那么您可能需要打开形状跟踪并查找与该内容类型的字段名称它包含在(例如'Fields.Common.Text-SomeTextField.cshtml'。这将减少你所做的任何改变的影响。

这就是说,你确定你做对了吗?内容包含<p>标签,然后至少在最新版本中,标签将被剥离,这是有道理的,否则你最终会嵌套<p>标签:

<p class="text-field"><span class="name">SomeTextField:</span> <span class="value"> 
    <p>Some text</p> 
    <p>Some more text</p></span> 
</p> 

另外,作为一个警告,虽然在最新版本的Orchard中重写此视图当然是可以的,但视图实际上已经改变,因此新的行处理不再处于视图中。它已被移至过滤器Orchard.Core.Common.Services.TextFieldFilter。因此,如果网站将来更新,您可能会发现需要重新访问该区域。