diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs index 2cd7bc01e..ccaaa0c44 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs @@ -59,6 +59,16 @@ namespace Orchard.Widgets.Drivers { } } + if (!String.IsNullOrEmpty(widgetPart.CssClasses)) { + var classNames = widgetPart.CssClasses.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + + for (var i = 0; i < classNames.Length; i++) { + classNames[i] = classNames[i].Trim().HtmlClassify(); + } + + widgetPart.CssClasses = String.Join(" ", classNames); + } + _widgetsService.MakeRoomForWidgetPosition(widgetPart); return Editor(widgetPart, shapeHelper); diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs index dffffba38..73d3a6525 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs @@ -76,5 +76,13 @@ namespace Orchard.Widgets.Models { /// [HiddenInput(DisplayValue = false)] public IEnumerable AvailableLayers { get; set; } + + /// + /// Css classes for the widget. + /// + public string CssClasses { + get { return this.Retrieve(x => x.CssClasses); } + set { this.Store(x => x.CssClasses, value); } + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs index 23c716df5..ec794a228 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs @@ -42,6 +42,11 @@ namespace Orchard.Widgets { displaying.ShapeMetadata.Alternates.Add("Widget__Name__" + widgetPart.Name); } + // Adding other css classes to the widget. + if (!String.IsNullOrWhiteSpace(widgetPart.CssClasses)) { + widget.Classes.Add(widgetPart.CssClasses); + } + } }); } diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml index 3376ef9d2..62a6ed3b0 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml @@ -27,3 +27,8 @@ @Html.TextBoxFor(widget => widget.Name, new { @class = "text" }) @T("The technical name of the Widget, used for css class and alternates.") +
+ @Html.LabelFor(widget => widget.CssClasses, T("Css classes")) + @Html.TextBoxFor(widget => widget.CssClasses, new { @class = "text medium" }) + @T("Add custom css classes for the widget separated by spaces.") +