2013-11-02 51 views
0

我創造在果園CMS自定義模塊1.7.1使用在果園CMS自定義模塊富文本編輯器

到目前爲止,一切都進展順利(ISH)

我的一個屬性是一個字符串(被稱爲InfoBubbleHtml)。

我想在我的模塊創建/編輯窗體上使用富文本編輯輸入。

是否有一個幫手已經到位,將呈現我的財產作爲豐富的文本區域,而不僅僅是textareainput字段?

如果不是,我需要做些什麼才能使此屬性呈現富文本編輯器?

在此先感謝。

更新

作爲更新/除了這個問題......我進入我的當前文本區域被忽略的任何HTML;猜測與請求驗證有關。這是如何禁用我的控制器,所以我可以允許在管理員的HTML?

更新2

好了,我已經知道如何使用它添加到我的觀點:

@Display.Body_Editor(Text:Model.InfoBubbleHtml,EditorFlavor:"html")

不知道如何設置編輯器的ID?

回答

1

@ Display.Body_Editor(Text:Model.InfoBubbleHtml,EditorFlavor:「html」)正在渲染一個名爲Body.Editor.cshtml的形狀。

此文件住在:Orchard.Web \核心\ COMMON \查看\ Body.Editor.cshtml

而且它的內容是

@using Orchard.Utility.Extensions; 
@{ 
    string editorFlavor = Model.EditorFlavor; 
} 
@Html.TextArea("Text", (string)Model.Text, 25, 80, new { @class = editorFlavor.HtmlClassify() }) 

因此採用這種形狀不能設置編號,型號是你在顯示器上發送的信息(文本和編輯器)。

Orchard.Core/Common上的Shapes.cs使用EditoFlavor字符串掛接替代品。

public void Discover(ShapeTableBuilder builder) { 
      builder.Describe("Body_Editor") 
       .OnDisplaying(displaying => { 
        string flavor = displaying.Shape.EditorFlavor; 
        displaying.ShapeMetadata.Alternates.Add("Body_Editor__" + flavor); 
       }); 
     } 

這樣呈現在最終的文件:TinyMVC \查看\車身Html.Editor.cshtml

使用Orchard.Environment.Descriptor.Models

@{ 
    var shellDescriptor = WorkContext.Resolve<ShellDescriptor>(); 
} 

<script type="text/javascript"> 
    var mediaPickerEnabled = @(shellDescriptor.Features.Any(x => x.Name == "Orchard.MediaPicker") ? "true" : "false"); 
    var mediaLibraryEnabled = @(shellDescriptor.Features.Any(x => x.Name == "Orchard.MediaLibrary") ? "true" : "false"); 
</script> 

@{ 
    Script.Require("OrchardTinyMce"); 
    Script.Require("jQueryColorBox"); 
    Style.Require("jQueryColorBox"); 
} 

@Html.TextArea("Text", (string)Model.Text, 25, 80, 
     new Dictionary<string,object> { 
       {"class", "html tinymce"}, 
       {"data-mediapicker-uploadpath",Model.AddMediaPath}, 
       {"data-mediapicker-title",T("Insert/Update Media")}, 
     {"style", "width:100%"} 
     }) 

您需要添加此添加到模板並在TextArea Dictionary參數中包含另一個參數,名稱爲:{「id」,「您的身份證」}。

如果您想了解看看關於形狀的文檔更Docs

0

可以修補TinyMVC\Views\Body-Html.Editor.cshtml文件,以使其能夠使用自定義名稱/ ID爲文本區。修改很簡單 - 更換

@Html.TextArea("Text", (string)Model.Text, 25, 80, 

@Html.TextArea((string)Model.PropertyName ?? "Text", (string)Model.Text, 25, 80, 

現在你可以在你的調用中使用附加參數PropertyName

@Display.Body_Editor(PropertyName:"InfoBubbleHtml", Text:Model.InfoBubbleHtml, EditorFlavor:"html") 

缺點是要修補外國碼並且每次更新TinyMVC模塊中的此文件時都必須重新應用此修補程序。