diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Recipes/blog.recipe.xml b/src/Orchard.Web/Modules/Orchard.Setup/Recipes/blog.recipe.xml index 93737f229..da60cf9ec 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Recipes/blog.recipe.xml +++ b/src/Orchard.Web/Modules/Orchard.Setup/Recipes/blog.recipe.xml @@ -46,9 +46,9 @@ layer create Disabled /LayerRule:"false" layer create TheHomepage /LayerRule:"url '~/'" blog create /Slug:"blog" /Title:"Blog" /Homepage:true /Description:"This is your Orchard Blog." - widget create /Type:"HtmlWidget" /Title:"First Leader Aside" /Zone:"TripelFirst" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true - widget create /Type:"HtmlWidget" /Title:"Second Leader Aside" /Zone:"TripelSecond" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true - widget create /Type:"HtmlWidget" /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true + widget create HtmlWidget /Title:"First Leader Aside" /Zone:"TripelFirst" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true + widget create HtmlWidget /Title:"Second Leader Aside" /Zone:"TripelSecond" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true + widget create HtmlWidget /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true menuitem create /MenuPosition:"1" /MenuText:"Home" /Url:"" /OnMainMenu:true diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Recipes/default.recipe.xml b/src/Orchard.Web/Modules/Orchard.Setup/Recipes/default.recipe.xml index 830bb0793..e04fa4a8c 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Recipes/default.recipe.xml +++ b/src/Orchard.Web/Modules/Orchard.Setup/Recipes/default.recipe.xml @@ -42,9 +42,9 @@ layer create Disabled /LayerRule:"false" layer create TheHomepage /LayerRule:"url '~/'" page create /Slug:"welcome-to-orchard" /Title:"Welcome to Orchard!" /Path:"welcome-to-orchard" /Homepage:true /Publish:true /UseWelcomeText:true - widget create /Type:"HtmlWidget" /Title:"First Leader Aside" /Zone:"TripelFirst" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true - widget create /Type:"HtmlWidget" /Title:"Second Leader Aside" /Zone:"TripelSecond" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true - widget create /Type:"HtmlWidget" /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true + widget create HtmlWidget /Title:"First Leader Aside" /Zone:"TripelFirst" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true + widget create HtmlWidget /Title:"Second Leader Aside" /Zone:"TripelSecond" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true + widget create HtmlWidget /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true menuitem create /MenuPosition:"1" /MenuText:"Home" /Url:"" /OnMainMenu:true diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Commands/WidgetCommands.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Commands/WidgetCommands.cs index 6efb70d27..30593283f 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Commands/WidgetCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Commands/WidgetCommands.cs @@ -22,9 +22,6 @@ namespace Orchard.Widgets.Commands { _membershipService = membershipService; } - [OrchardSwitch] - public string Type { get; set; } - [OrchardSwitch] public string Title { get; set; } @@ -50,25 +47,34 @@ namespace Orchard.Widgets.Commands { public bool Publish { get; set; } [CommandName("widget create")] - [CommandHelp("widget create /Type: /Title: /Zone:<zone> /Position:<position> /Layer:<layer> [/Owner:<owner>] [/Text:<text>] [/UseLoremIpsumText:true|false]\r\n\t" + "Creates a new html widget")] - [OrchardSwitches("Type,Title,Zone,Position,Layer,Owner,Text,UseLoremIpsumText")] - public void Create() { + [CommandHelp("widget create <type> /Title:<title> /Zone:<zone> /Position:<position> /Layer:<layer> [/Owner:<owner>] [/Text:<text>] [/UseLoremIpsumText:true|false]\r\n\t" + "Creates a new widget")] + [OrchardSwitches("Title,Zone,Position,Layer,Owner,Text,UseLoremIpsumText")] + public void Create(string type) { + var widgetTypes = _widgetsService.GetWidgetTypes(); + if (!widgetTypes.Contains(type)) { + throw new OrchardException(T("Creating widget failed : type {0} was not found. Supported widget types are: {1}.", + type, + widgetTypes.Aggregate(String.Empty, (current, widgetType) => current + " " + widgetType))); + } + var layer = GetLayer(Layer); if (layer == null) { throw new OrchardException(T("Creating widget failed : layer {0} was not found.", Layer)); } - var widget = _widgetsService.CreateWidget(layer.ContentItem.Id, Type, T(Title).Text, Position, Zone); + var widget = _widgetsService.CreateWidget(layer.ContentItem.Id, type, T(Title).Text, Position, Zone); var text = String.Empty; - if (UseLoremIpsumText) { - text = T(LoremIpsum).Text; - } - else { - if (!String.IsNullOrEmpty(Text)) { - text = Text; + if (widget.Has<BodyPart>()) { + if (UseLoremIpsumText) { + text = T(LoremIpsum).Text; } + else { + if (!String.IsNullOrEmpty(Text)) { + text = Text; + } + } + widget.As<BodyPart>().Text = text; } - widget.As<BodyPart>().Text = text; if (String.IsNullOrEmpty(Owner)) { Owner = _siteService.GetSiteSettings().SuperUser; }