2014-10-07 68 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。因此,如果網站將來更新,您可能會發現需要重新訪問該區域。