Implementing a some fundamental alternate binding names for core shapes

--HG--
branch : dev
This commit is contained in:
Louis DeJardin
2010-10-08 18:29:11 -07:00
parent ebdc937835
commit 9b67b6e165
8 changed files with 35 additions and 29 deletions

View File

@@ -1,5 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
@@ -11,7 +10,7 @@ using System.Web.Mvc.Html;
using Orchard.DisplayManagement;
using Orchard.DisplayManagement.Descriptors;
using Orchard.DisplayManagement.Implementation;
using Orchard.Mvc.ViewEngines;
using Orchard.DisplayManagement.Shapes;
using Orchard.Settings;
using Orchard.UI;
using Orchard.UI.Resources;
@@ -48,13 +47,15 @@ namespace Orchard.Core.Shapes {
// 'Zone' shapes are built on the Zone base class
builder.Describe("Zone")
.OnCreating(creating => creating.BaseType = typeof (Zone));
//.OnDisplaying(displaying => {
// var name = displaying.Shape.ZoneName.ToLower();
// var zone = displaying.Shape;
// zone.Classes.Add("zone-" + name);
// zone.Classes.Add("zone");
// });
.OnCreating(creating => creating.BaseType = typeof(Zone))
.OnDisplaying(displaying => {
var zone = displaying.Shape;
ShapeMetadata zoneMetadata = zone.Metadata;
String name = zone.ZoneName;
zone.Classes.Add("zone-" + name.ToLower());
zone.Classes.Add("zone");
zoneMetadata.Alternates.Add("Zone__" + name);
});
//builder.Describe("menu")
// .OnDisplaying(displaying => {

View File

@@ -139,6 +139,7 @@
<Content Include="Themes\TheThemeMachine\Styles\site.css" />
<Content Include="Themes\TheThemeMachine\Theme.png" />
<Content Include="Themes\TheThemeMachine\Theme.txt" />
<None Include="Themes\Classic\Views\Zone-Navigation.cshtml" />
<None Include="Themes\TheThemeMachine\Views\TempFeatured.cshtml">
<SubType>Designer</SubType>
</None>

View File

@@ -55,7 +55,7 @@ namespace Orchard.DisplayManagement.Descriptors {
return target(displayContext);
}
};
descriptor.Bindings[_shapeType] = binding;
descriptor.Bindings[_bindingName] = binding;
});
}

View File

@@ -7,19 +7,19 @@ using System.Web.Mvc;
namespace Orchard.DisplayManagement.Shapes {
public interface ITagBuilderFactory : IDependency {
TagBuilder Create(dynamic shape, string tagName);
OrchardTagBuilder Create(dynamic shape, string tagName);
}
public class TagBuilder : System.Web.Mvc.TagBuilder {
public TagBuilder(string tagName) : base(tagName) { }
public class OrchardTagBuilder : TagBuilder {
public OrchardTagBuilder(string tagName) : base(tagName) { }
public IHtmlString StartElement { get { return new HtmlString(ToString(TagRenderMode.StartTag)); } }
public IHtmlString EndElement { get { return new HtmlString(ToString(TagRenderMode.EndTag)); } }
}
public class TagBuilderFactory : ITagBuilderFactory {
public TagBuilder Create(dynamic shape, string tagName) {
var tagBuilder = new TagBuilder(tagName);
public OrchardTagBuilder Create(dynamic shape, string tagName) {
var tagBuilder = new OrchardTagBuilder(tagName);
tagBuilder.MergeAttributes(shape.Attributes, false);
foreach (var cssClass in shape.Classes ?? Enumerable.Empty<string>())
tagBuilder.AddCssClass(cssClass);

View File

@@ -1,5 +1,6 @@
using System;
using System.Web;
using Orchard.DisplayManagement.Shapes;
using Orchard.Localization;
using Orchard.UI.Resources;
@@ -22,5 +23,8 @@ namespace Orchard.Mvc {
void SetMeta(MetaEntry meta);
void AppendMeta(string name, string content, string contentSeparator);
void AppendMeta(MetaEntry meta, string contentSeparator);
bool HasText(object thing);
OrchardTagBuilder Tag(dynamic shape, string tagName);
}
}

View File

@@ -90,7 +90,7 @@ namespace Orchard.Mvc.ViewEngines.Razor {
return !string.IsNullOrWhiteSpace(thing as string);
}
public TagBuilder Tag(dynamic shape, string tagName) {
public OrchardTagBuilder Tag(dynamic shape, string tagName) {
return Html.Resolve<ITagBuilderFactory>().Create(shape, tagName);
}

View File

@@ -91,7 +91,7 @@ namespace Orchard.Mvc {
return !string.IsNullOrWhiteSpace(thing as string);
}
public TagBuilder Tag(dynamic shape, string tagName) {
public OrchardTagBuilder Tag(dynamic shape, string tagName) {
return Html.Resolve<ITagBuilderFactory>().Create(shape, tagName);
}

View File

@@ -92,7 +92,7 @@ namespace Orchard.Mvc {
return !string.IsNullOrWhiteSpace(thing as string);
}
public TagBuilder Tag(dynamic shape, string tagName) {
public OrchardTagBuilder Tag(dynamic shape, string tagName) {
return Html.Resolve<ITagBuilderFactory>().Create(shape, tagName);
}