mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-23 21:13:35 +08:00
Adding ability to override the content of a shape
- Using ShapeDispayingContext.ChildContent to force the HmlString to render --HG-- branch : dev
This commit is contained in:
@@ -145,6 +145,35 @@ namespace Orchard.Tests.DisplayManagement {
|
|||||||
Assert.That(result.ToString(), Is.EqualTo("Hi there!"));
|
Assert.That(result.ToString(), Is.EqualTo("Hi there!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void RenderPreCalculatedShape() {
|
||||||
|
var displayManager = _container.Resolve<IDisplayManager>();
|
||||||
|
|
||||||
|
var shape = new Shape {
|
||||||
|
Metadata = new ShapeMetadata {
|
||||||
|
Type = "Foo"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
shape.Metadata.OnDisplaying(
|
||||||
|
context => {
|
||||||
|
context.ChildContent = new HtmlString("Bar");
|
||||||
|
});
|
||||||
|
|
||||||
|
var descriptor = new ShapeDescriptor {
|
||||||
|
ShapeType = "Foo",
|
||||||
|
};
|
||||||
|
descriptor.Bindings["Foo"] = new ShapeBinding {
|
||||||
|
BindingName = "Foo",
|
||||||
|
Binding = ctx => new HtmlString("Hi there!"),
|
||||||
|
};
|
||||||
|
|
||||||
|
AddShapeDescriptor(descriptor);
|
||||||
|
|
||||||
|
var result = displayManager.Execute(CreateDisplayContext(shape));
|
||||||
|
Assert.That(result.ToString(), Is.EqualTo("Bar"));
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void RenderFallbackShape() {
|
public void RenderFallbackShape() {
|
||||||
var displayManager = _container.Resolve<IDisplayManager>();
|
var displayManager = _container.Resolve<IDisplayManager>();
|
||||||
|
@@ -10,6 +10,7 @@ namespace Orchard.DisplayManagement.Implementation {
|
|||||||
public class ShapeDisplayingContext {
|
public class ShapeDisplayingContext {
|
||||||
public dynamic Shape { get; set; }
|
public dynamic Shape { get; set; }
|
||||||
public ShapeMetadata ShapeMetadata { get; set; }
|
public ShapeMetadata ShapeMetadata { get; set; }
|
||||||
|
public IHtmlString ChildContent { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ShapeDisplayedContext {
|
public class ShapeDisplayedContext {
|
||||||
|
Reference in New Issue
Block a user