From a4a81b86e74829357195780dc7b1099be5e65015 Mon Sep 17 00:00:00 2001 From: Erik Porter Date: Wed, 3 Mar 2010 11:41:51 -0800 Subject: [PATCH 1/9] Fixed bug #16243 --HG-- branch : dev rename : src/Orchard.Web/Modules/Orchard.Pages/Services/PagesHomePageProvider.cs => src/Orchard.Web/Modules/Orchard.Pages/Services/PageHomePageProvider.cs --- .../HomePage/Controllers/HomeController.cs | 26 ++++++++++--------- .../Controllers/AdminController.cs | 2 +- .../Orchard.Pages/Orchard.Pages.csproj | 2 +- ...ageProvider.cs => PageHomePageProvider.cs} | 12 +++++---- .../Controllers/SetupController.cs | 4 ++- 5 files changed, 26 insertions(+), 20 deletions(-) rename src/Orchard.Web/Modules/Orchard.Pages/Services/{PagesHomePageProvider.cs => PageHomePageProvider.cs} (77%) diff --git a/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs b/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs index 775b3d6da..c3f227035 100644 --- a/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs +++ b/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs @@ -22,28 +22,30 @@ namespace Orchard.Core.HomePage.Controllers { public ActionResult Index() { try { - string homepage = CurrentSite.HomePage; + var homepage = CurrentSite.HomePage; if (String.IsNullOrEmpty(homepage)) { return View(new BaseViewModel()); } - string[] homePageParameters = homepage.Split(';'); + var homePageParameters = homepage.Split(';'); if (homePageParameters.Length != 2) { return View(new BaseViewModel()); } - string providerName = homePageParameters[0]; - int item = Int32.Parse(homePageParameters[1]); + var providerName = homePageParameters[0]; + var item = Int32.Parse(homePageParameters[1]); foreach (var provider in _homePageProviders) { - if (String.Equals(provider.GetProviderName(), providerName)) { - ActionResult result = provider.GetHomePage(item); - if (result is ViewResultBase) { - ViewResultBase resultBase = result as ViewResultBase; - ViewData.Model = resultBase.ViewData.Model; - resultBase.ViewData = ViewData; - } - return result; + if (!string.Equals(provider.GetProviderName(), providerName)) + continue; + + var result = provider.GetHomePage(item); + if (result is ViewResultBase) { + var resultBase = result as ViewResultBase; + ViewData.Model = resultBase.ViewData.Model; + resultBase.ViewData = ViewData; } + + return result; } return View(new BaseViewModel()); diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs index af560d976..56f5a899c 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs @@ -195,7 +195,7 @@ namespace Orchard.Pages.Controllers { _pageService.Publish(model.Page.Item); Services.Notifier.Information(T("Page has been published")); if (model.PromoteToHomePage) { - CurrentSite.HomePage = "PagesHomePageProvider;" + model.Page.Item.Id; + CurrentSite.HomePage = "PageHomePageProvider;" + model.Page.Item.Id; } break; case "PublishLater": diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj index 16eae8090..d7153e6b6 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj +++ b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj @@ -77,7 +77,7 @@ - + Code diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Services/PagesHomePageProvider.cs b/src/Orchard.Web/Modules/Orchard.Pages/Services/PageHomePageProvider.cs similarity index 77% rename from src/Orchard.Web/Modules/Orchard.Pages/Services/PagesHomePageProvider.cs rename to src/Orchard.Web/Modules/Orchard.Pages/Services/PageHomePageProvider.cs index 7f13ccfa1..36f7526de 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Services/PagesHomePageProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.Pages/Services/PageHomePageProvider.cs @@ -1,16 +1,15 @@ using System.Web.Mvc; using Orchard.Localization; using Orchard.Mvc.Results; -using Orchard.Pages.Models; using Orchard.Pages.ViewModels; using Orchard.Services; namespace Orchard.Pages.Services { - public class PagesHomePageProvider : IHomePageProvider { + public class PageHomePageProvider : IHomePageProvider { private readonly IPageService _pageService; private readonly ISlugConstraint _slugConstraint; - public PagesHomePageProvider(IOrchardServices services, IPageService pageService, ISlugConstraint slugConstraint) { + public PageHomePageProvider(IOrchardServices services, IPageService pageService, ISlugConstraint slugConstraint) { Services = services; _slugConstraint = slugConstraint; _pageService = pageService; @@ -23,11 +22,14 @@ namespace Orchard.Pages.Services { #region Implementation of IHomePageProvider public string GetProviderName() { - return "PagesHomePageProvider"; + return "PageHomePageProvider"; } public ActionResult GetHomePage(int itemId) { - Page page = _pageService.Get(itemId); + var page = _pageService.Get(itemId); + if (page == null) + return new NotFoundResult(); + var correctedSlug = _slugConstraint.LookupPublishedSlug(page.Slug); if (correctedSlug == null) return new NotFoundResult(); diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs index c7176fe6f..d73b0f88b 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs @@ -109,8 +109,10 @@ namespace Orchard.Setup.Controllers { page.As().Title = T("Home").ToString(); page.As().CommentsShown = false; page.As().Owner = user; + //HACK: (erikpo) Since content items are published by default they don't get a chance for handlers to fire to setup default values which blog up other pages in the system. Figure out what they are published by default and change + page.VersionRecord.Published = false; contentManager.Publish(page); - siteSettings.Record.HomePage = "PagesHomePageProvider;" + page.Id; + siteSettings.Record.HomePage = "PageHomePageProvider;" + page.Id; // add a menu item for the shiny new home page var menuItem = contentManager.Create("menuitem"); From d700b953549996bd408c4102bbbfdae6ce579b07 Mon Sep 17 00:00:00 2001 From: Erik Porter Date: Wed, 3 Mar 2010 11:49:56 -0800 Subject: [PATCH 2/9] Added a not found page (needs default text) --HG-- branch : dev --- src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs | 2 ++ src/Orchard.Web/Core/Orchard.Core.csproj | 1 + src/Orchard.Web/Core/Themes/Views/NotFound.ascx | 4 ++++ 3 files changed, 7 insertions(+) create mode 100644 src/Orchard.Web/Core/Themes/Views/NotFound.ascx diff --git a/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs b/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs index c3f227035..f2bf52112 100644 --- a/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs +++ b/src/Orchard.Web/Core/HomePage/Controllers/HomeController.cs @@ -6,6 +6,7 @@ using Orchard.Logging; using Orchard.Mvc.ViewModels; using Orchard.Services; using Orchard.Settings; +using Orchard.Themes; namespace Orchard.Core.HomePage.Controllers { [HandleError] @@ -20,6 +21,7 @@ namespace Orchard.Core.HomePage.Controllers { public ILogger Logger { get; set; } protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; } + [Themed] public ActionResult Index() { try { var homepage = CurrentSite.HomePage; diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index 54e3401f0..1c90dbad4 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -231,6 +231,7 @@ + diff --git a/src/Orchard.Web/Core/Themes/Views/NotFound.ascx b/src/Orchard.Web/Core/Themes/Views/NotFound.ascx new file mode 100644 index 000000000..8abb96303 --- /dev/null +++ b/src/Orchard.Web/Core/Themes/Views/NotFound.ascx @@ -0,0 +1,4 @@ +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Import Namespace="Orchard.Mvc.ViewModels"%> +

<%=Html.TitleForPage(T("Not found").ToString()) %>

+

TODO: (erikpo) Add friendly message here

\ No newline at end of file From 7a2aa714ed7ed197c7fd9481fdb0cced3df533a0 Mon Sep 17 00:00:00 2001 From: Suha Can Date: Wed, 3 Mar 2010 12:51:17 -0800 Subject: [PATCH 3/9] - Fixing bug in livewriter rsd url --HG-- branch : dev --- .../Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs index 6856bb60f..4a0d5e1db 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs @@ -1,6 +1,5 @@ using System.Web.Mvc; using Orchard.Blogs.Models; -using Orchard.Mvc.Extensions; namespace Orchard.Blogs.Extensions { public static class UrlHelperExtensions { @@ -21,7 +20,7 @@ namespace Orchard.Blogs.Extensions { } public static string BlogRsd(this UrlHelper urlHelper, string blogSlug) { - return urlHelper.AbsoluteAction(() => urlHelper.Action("Rsd", "Blog", new { blogSlug, area = "Orchard.Blogs" })); + return urlHelper.Action("Rsd", "Blog", new { blogSlug, area = "Orchard.Blogs" }); } public static string BlogArchiveYear(this UrlHelper urlHelper, string blogSlug, int year) { From 4064909a45d430c2b93d689683695b76399754fd Mon Sep 17 00:00:00 2001 From: Suha Can Date: Wed, 3 Mar 2010 12:54:33 -0800 Subject: [PATCH 4/9] - Add area scenario: remove the area extension type since it's implicit. --HG-- branch : dev --- src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs b/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs index 8d47c2155..7d6fdb526 100644 --- a/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs +++ b/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs @@ -53,7 +53,7 @@ namespace Orchard.Mvc.ViewEngines { var modules = _extensionManager.ActiveExtensions() - .Where(x => x.Descriptor.ExtensionType == "Module" || x.Descriptor.ExtensionType == "Area"); + .Where(x => x.Descriptor.ExtensionType == "Module"); var moduleLocations = modules.Select(x => Path.Combine(x.Descriptor.Location, x.Descriptor.Name)); var moduleViewEngines = _viewEngineProviders From 8e4779977a6883294cf51dcff719d294f2e8fa25 Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Wed, 3 Mar 2010 13:15:50 -0800 Subject: [PATCH 5/9] Changing the Body aspect's manage template parts to be named more appropriately - Changed the templates to be prefixed with "Common.Body." --HG-- branch : dev rename : src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/ManageWrapperPost.ascx => src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx rename : src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/ManageWrapperPost.ascx => src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.ManageWrapperPost.ascx rename : src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/ManageWrapperPre.ascx => src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.ManageWrapperPre.ascx --- src/Orchard.Web/Core/Common/Controllers/BodyDriver.cs | 6 +++--- .../Parts/{Manage.ascx => Common.Body.Manage.ascx} | 2 +- ...eWrapperPost.ascx => Common.Body.ManageWrapperPost.ascx} | 0 ...ageWrapperPre.ascx => Common.Body.ManageWrapperPre.ascx} | 0 src/Orchard.Web/Core/Orchard.Core.csproj | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) rename src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/{Manage.ascx => Common.Body.Manage.ascx} (71%) rename src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/{ManageWrapperPost.ascx => Common.Body.ManageWrapperPost.ascx} (100%) rename src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/{ManageWrapperPre.ascx => Common.Body.ManageWrapperPre.ascx} (100%) diff --git a/src/Orchard.Web/Core/Common/Controllers/BodyDriver.cs b/src/Orchard.Web/Core/Common/Controllers/BodyDriver.cs index 0368c9f46..45959bedc 100644 --- a/src/Orchard.Web/Core/Common/Controllers/BodyDriver.cs +++ b/src/Orchard.Web/Core/Common/Controllers/BodyDriver.cs @@ -23,10 +23,10 @@ namespace Orchard.Core.Common.Controllers { var model = new BodyDisplayViewModel { BodyAspect = part, Text = BbcodeReplace(part.Text) }; return Combined( - Services.Authorizer.Authorize(Permissions.ChangeOwner) ? ContentPartTemplate(model, "Parts/ManageWrapperPre").Location("primary", "5") : null, - Services.Authorizer.Authorize(Permissions.ChangeOwner) ? ContentPartTemplate(model, "Parts/Manage").Location("primary", "5") : null, + Services.Authorizer.Authorize(Permissions.ChangeOwner) ? ContentPartTemplate(model, "Parts/Common.Body.ManageWrapperPre").Location("primary", "5") : null, + Services.Authorizer.Authorize(Permissions.ChangeOwner) ? ContentPartTemplate(model, "Parts/Common.Body.Manage").Location("primary", "5") : null, ContentPartTemplate(model, TemplateName, Prefix).LongestMatch(displayType, "Summary", "SummaryAdmin").Location("primary", "5"), - Services.Authorizer.Authorize(Permissions.ChangeOwner) ? ContentPartTemplate(model, "Parts/ManageWrapperPost").Location("primary", "5") : null); + Services.Authorizer.Authorize(Permissions.ChangeOwner) ? ContentPartTemplate(model, "Parts/Common.Body.ManageWrapperPost").Location("primary", "5") : null); } protected override DriverResult Editor(BodyAspect part) { diff --git a/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Manage.ascx b/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx similarity index 71% rename from src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Manage.ascx rename to src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx index a8d07423b..c2f57aa94 100644 --- a/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Manage.ascx +++ b/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx @@ -1,5 +1,5 @@ <%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Core.Common.ViewModels"%>
- <%=Html.ItemEditLink("Edit", Model.BodyAspect.ContentItem) %> + <%=Html.ItemEditLink("Edits", Model.BodyAspect.ContentItem) %>
\ No newline at end of file diff --git a/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/ManageWrapperPost.ascx b/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.ManageWrapperPost.ascx similarity index 100% rename from src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/ManageWrapperPost.ascx rename to src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.ManageWrapperPost.ascx diff --git a/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/ManageWrapperPre.ascx b/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.ManageWrapperPre.ascx similarity index 100% rename from src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/ManageWrapperPre.ascx rename to src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.ManageWrapperPre.ascx diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index 1c90dbad4..775477634 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -226,9 +226,9 @@ - - - + + + From e9628c4c8fd4df7d5b4938a1b701d7b7458f9c8f Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Wed, 3 Mar 2010 13:19:09 -0800 Subject: [PATCH 6/9] Changing the Body aspect's manage link text back to what it should be, "Edit"... --HG-- branch : dev --- .../Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx b/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx index c2f57aa94..a8d07423b 100644 --- a/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx +++ b/src/Orchard.Web/Core/Common/Views/DisplayTemplates/Parts/Common.Body.Manage.ascx @@ -1,5 +1,5 @@ <%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Core.Common.ViewModels"%>
- <%=Html.ItemEditLink("Edits", Model.BodyAspect.ContentItem) %> + <%=Html.ItemEditLink("Edit", Model.BodyAspect.ContentItem) %>
\ No newline at end of file From f22cd057ba7aa84406ebc2feeb52d12ee24d5f49 Mon Sep 17 00:00:00 2001 From: Erik Porter Date: Wed, 3 Mar 2010 13:21:39 -0800 Subject: [PATCH 7/9] Fixed a setup hack --HG-- branch : dev --- .../Modules/Orchard.Setup/Controllers/SetupController.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs index d73b0f88b..ce6d56d6a 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs @@ -103,14 +103,12 @@ namespace Orchard.Setup.Controllers { var contentManager = finiteEnvironment.Resolve(); // create home page as a CMS page - var page = contentManager.Create("page"); + var page = contentManager.Create("page", VersionOptions.Draft); page.As().Text = "

Welcome to Orchard!

Congratulations, you've successfully set-up your Orchard site.

This is the home page of your new site. We've taken the liberty to write here about a few things you could look at next in order to get familiar with the application. Once you feel confident you don't need this anymore, just click Edit to go into edit mode and replace this with whatever you want on your home page to make it your own.

One thing you could do (but you don't have to) is go into Manage Settings (follow the Admin link and then look for it under \"Settings\" in the menu on the left) and check that everything is configured the way you want.

You probably want to make the site your own. One of the ways you can do that is by clicking Manage Themes in the admin menu. A theme is a packaged look and feel that affects the whole site. We have installed a few themes already, but you'll also be able to browse through an online gallery of themes created by other users of Orchard.

Next, you can start playing with the content types that we installed. For example, go ahead and click Add New Page in the admin menu and create an \"about\" page. Then, add it to the navigation menu by going to Manage Menu. You can also click Add New Blog and start posting by clicking \"Add New Post\".

Finally, Orchard has been designed to be extended. It comes with a few built-in modules such as pages and blogs or themes. You can install new themes by going to Manage Themes and clicking Install a new Theme. Like for themes, modules are created by other users of Orchard just like you so if you feel up to it, please consider participating.

--The Orchard Crew

"; page.As().Slug = "home"; page.As().Title = T("Home").ToString(); page.As().CommentsShown = false; page.As().Owner = user; - //HACK: (erikpo) Since content items are published by default they don't get a chance for handlers to fire to setup default values which blog up other pages in the system. Figure out what they are published by default and change - page.VersionRecord.Published = false; contentManager.Publish(page); siteSettings.Record.HomePage = "PageHomePageProvider;" + page.Id; From f812a4d3731b38c773f42f9cea7292e4d3976fd1 Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Wed, 3 Mar 2010 14:55:22 -0800 Subject: [PATCH 8/9] Adding an AddMedia TinyMCE plugin, that doesn't yet do anything --HG-- branch : dev --- .../Scripts/plugins/addmedia/addmedia.htm | 36 ++++++++++ .../Scripts/plugins/addmedia/editor_plugin.js | 68 ++++++++++++++++++ .../plugins/addmedia/img/picture_add.png | Bin 0 -> 750 bytes .../Scripts/plugins/addmedia/js/addmedia.js | 1 + .../Scripts/plugins/addmedia/langs/en_dlg.js | 4 ++ .../Modules/TinyMce/TinyMce.csproj | 11 +++ .../EditorTemplates/TinyMceTextEditor.ascx | 4 +- 7 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/img/picture_add.png create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/js/addmedia.js create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/langs/en_dlg.js diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm new file mode 100644 index 000000000..4d8ff00a1 --- /dev/null +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm @@ -0,0 +1,36 @@ + + + + {#addmedia_dlg.title} + + + + +
+ +
+ + + + + +
+ + +
+
+
+ + +
+
+ +
+
+
+ + diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js new file mode 100644 index 000000000..9ce4962e2 --- /dev/null +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/editor_plugin.js @@ -0,0 +1,68 @@ +(function() { + // Load plugin specific language pack + tinymce.PluginManager.requireLangPack('dlg'); + + tinymce.create('tinymce.plugins.Orchard.AddMedia', { + /** + * Initializes the plugin, this will be executed after the plugin has been created. + * This call is done before the editor instance has finished it's initialization so use the onInit event + * of the editor instance to intercept that event. + * + * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. + * @param {string} url Absolute URL to where the plugin is located. + */ + init: function(ed, url) { + // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); + ed.addCommand('mceAddMedia', function() { + ed.windowManager.open({ + file: url + '/addmedia.htm', + width: 480 + parseInt(ed.getLang('addmedia.delta_width', 0)), + height: 110 + parseInt(ed.getLang('addmedia.delta_height', 0)), + inline: 1 + }, { + plugin_url: url, // Plugin absolute URL + }); + }); + + // Register example button + ed.addButton('addmedia', { + title: 'addmedia_desc', + cmd: 'mceAddMedia', + image: url + '/img/picture_add.png' + }); + }, + + /** + * Creates control instances based in the incomming name. This method is normally not + * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons + * but you sometimes need to create more complex controls like listboxes, split buttons etc then this + * method can be used to create those. + * + * @param {String} n Name of the control to create. + * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control. + * @return {tinymce.ui.Control} New control instance or null if no control was created. + */ + createControl: function(n, cm) { + return null; + }, + + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo: function() { + return { + longname: 'Orchard AddMedia Plugin', + author: 'Nathan Heskew', + authorurl: 'http://orchardproject.net', + infourl: 'http://orchardproject.net', + version: '0.1' + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('addmedia', tinymce.plugins.Orchard.AddMedia); +})(); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/img/picture_add.png b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/img/picture_add.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9d5da9d1e5c3fbd108265e178c5d1ea779b5b9 GIT binary patch literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQa%*9TgAsieWw;%dHU|?WW3-AeX z{r~^JPqpE~&FAK z-M0(Rb{)F2|M1OSM=!76c4f|%D^pLNn6v6)%Zf`S%Pur6JTrO0+1iDBU(7s{Hh=f? z87H%*pGcm)Wd-Z!G>h=WHZ(ewLe#pi7A?=&;TbAFc*-+86 z?0D^>n-#0(H?B^sUY%XL=xEja>s71#%I97yo_n}tnOEk#Sy?leW=&hXzRf;;mP5+q ziCNRUbEkyIPwHv!c8r_Qnbzmu&>S|a+O(`GE}_dKyk9rCMa>QWe}Xi&D$;i?WLqoP$l+HeFr-RCm(T#W6%;YI4E?-h`y*4_X-c z(pD%~+w=2$;4E-pwX85HJ)5esG_+=q&Ci6UIX1J@jDkLSbye+q*TmtNYMiMWnk(BY zpx&aee$&=9tNK<>O_b<39Ez>4mdQo&kQ2+FB+ihb}Tj zUO0T%`qHs$_6iynHhqF>8ag^US_}1(o+#<12pnz_U}?-KEX=EIcG;jHZLiOAq`R=V zxZ9a!W~8Npg5&)ew
+ + + + + + + + + + + diff --git a/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx b/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx index 662a464b6..8b9f14733 100644 --- a/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx +++ b/src/Orchard.Web/Modules/TinyMce/Views/EditorTemplates/TinyMceTextEditor.ascx @@ -7,10 +7,10 @@ theme: "advanced", mode: "specific_textareas", editor_selector: "html", - plugins: "fullscreen,autoresize,searchreplace", + plugins: "fullscreen,autoresize,searchreplace,addmedia", theme_advanced_toolbar_location: "top", theme_advanced_toolbar_align: "left", - theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,image,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen", + theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,image,addmedia,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen", theme_advanced_buttons2: "", theme_advanced_buttons3: "" }); From cdf6568453a3ac3eb2503c20ae6fe67bfc5f6671 Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Wed, 3 Mar 2010 15:01:53 -0800 Subject: [PATCH 9/9] Fixing the (currently hard-coded) form action to add media from tinymce --HG-- branch : dev --- .../Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm index 4d8ff00a1..273f7cd8d 100644 --- a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/addmedia/addmedia.htm @@ -6,7 +6,7 @@ -
+