From 74804bee17d5a639197788168d52dc1d6525d695 Mon Sep 17 00:00:00 2001 From: Erik Porter Date: Thu, 4 Mar 2010 15:37:07 -0800 Subject: [PATCH] Added a html helper to generate a media path for tinymce --HG-- branch : dev --- .../Extensions/HtmlHelperExtensions.cs | 22 +++++++++++++++++++ .../Modules/TinyMce/TinyMce.csproj | 5 +++++ .../EditorTemplates/TinyMceTextEditor.ascx | 14 +++++++----- 3 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 src/Orchard.Web/Modules/TinyMce/Extensions/HtmlHelperExtensions.cs diff --git a/src/Orchard.Web/Modules/TinyMce/Extensions/HtmlHelperExtensions.cs b/src/Orchard.Web/Modules/TinyMce/Extensions/HtmlHelperExtensions.cs new file mode 100644 index 000000000..ce999f3c8 --- /dev/null +++ b/src/Orchard.Web/Modules/TinyMce/Extensions/HtmlHelperExtensions.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; +using System.Linq; +using System.Web.Mvc; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Drivers; +using Orchard.Core.Common.Models; +using Orchard.Core.Common.ViewModels; +using Orchard.Extensions; +using Orchard.Mvc.Html; + +namespace TinyMce.Extensions { + public static class HtmlHelperExtensions { + public static string GetCurrentMediaPath(this HtmlHelper htmlHelper) { + var body = htmlHelper.ViewData.Model.BodyAspect; + var currentDriver = htmlHelper.Resolve>().Where(cid => cid.GetContentTypes().Any(ct => string.Compare(ct.Name, body.ContentItem.ContentType, true) == 0)).FirstOrDefault(); + var currentModule = htmlHelper.Resolve().ActiveExtensions().FirstOrDefault(ee => ee.Descriptor.ExtensionType == "Module" && ee.Assembly == currentDriver.GetType().Assembly); + var routable = body.ContentItem.Has() ? body.ContentItem.As() : null; + + return string.Format("{0}/{1}{2}", "~/Media", currentModule.Descriptor.Name, routable != null && !string.IsNullOrEmpty(routable.ContainerPath) ? "/" + routable.ContainerPath : ""); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj index 839a029a1..eb565b25b 100644 --- a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj +++ b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj @@ -122,6 +122,7 @@ + @@ -133,6 +134,10 @@ {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6} Orchard + + {9916839C-39FC-4CEB-A5AF-89CA7E87119F} + Orchard.Core + diff --git a/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx b/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx index 171ea0cf2..92e4cf927 100644 --- a/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx +++ b/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx @@ -1,7 +1,11 @@ -<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Import Namespace="TinyMce.Extensions"%> +<%@ Import Namespace="Orchard.Core.Common.ViewModels"%> <% Html.RegisterScript("tiny_mce.js"); %> <%=Html.TextArea("", Model, 25, 80, new { @class = "html" }) %> -<%using (this.Capture("end-of-page-scripts")) {%> + +<% +using (this.Capture("end-of-page-scripts")) {%> -<%}%> +<% +}%> \ No newline at end of file