mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Adding Shape element.
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Orchard.DisplayManagement;
|
||||
using Orchard.Forms.Services;
|
||||
using Orchard.Layouts.Elements;
|
||||
using Orchard.Layouts.Framework.Display;
|
||||
using Orchard.Layouts.Framework.Drivers;
|
||||
|
||||
namespace Orchard.Layouts.Drivers {
|
||||
public class ShapeDriver : FormsElementDriver<Shape> {
|
||||
private readonly IShapeFactory _shapeFactory;
|
||||
|
||||
public ShapeDriver(IFormManager formManager, IShapeFactory shapeFactory)
|
||||
: base(formManager) {
|
||||
_shapeFactory = shapeFactory;
|
||||
}
|
||||
|
||||
protected override IEnumerable<string> FormNames {
|
||||
get { yield return "ShapeElement"; }
|
||||
}
|
||||
|
||||
protected override void OnDisplaying(Shape element, ElementDisplayContext context) {
|
||||
if (String.IsNullOrWhiteSpace(element.ShapeType))
|
||||
return;
|
||||
|
||||
var shape = _shapeFactory.Create(element.ShapeType);
|
||||
context.ElementShape.Shape = shape;
|
||||
}
|
||||
|
||||
protected override void DescribeForm(DescribeContext context) {
|
||||
context.Form("ShapeElement", shapeFactory => {
|
||||
var factory = (dynamic)shapeFactory;
|
||||
var form = factory.Fieldset(
|
||||
Id: "ShapeElement",
|
||||
_ShapeType: factory.Textbox(
|
||||
Id: "shapeType",
|
||||
Name: "ShapeType",
|
||||
Title: T("Shape Type"),
|
||||
Description: T("The shape type name to dislay."),
|
||||
Classes: new[] { "text", "large", "tokenized" }));
|
||||
|
||||
return form;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
19
src/Orchard.Web/Modules/Orchard.Layouts/Elements/Shape.cs
Normal file
19
src/Orchard.Web/Modules/Orchard.Layouts/Elements/Shape.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Orchard.Layouts.Framework.Elements;
|
||||
using Orchard.Layouts.Helpers;
|
||||
|
||||
namespace Orchard.Layouts.Elements {
|
||||
public class Shape : Element {
|
||||
public override string Category {
|
||||
get { return "Snippets"; }
|
||||
}
|
||||
|
||||
public string ShapeType {
|
||||
get { return State.Get("ShapeType"); }
|
||||
set { State["ShapeType"] = value; }
|
||||
}
|
||||
|
||||
public override bool HasEditor {
|
||||
get { return true; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -214,6 +214,8 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="AdminMenu.cs" />
|
||||
<Compile Include="Controllers\BlueprintAdminController.cs" />
|
||||
<Compile Include="Drivers\ShapeDriver.cs" />
|
||||
<Compile Include="Elements\Shape.cs" />
|
||||
<Compile Include="Filters\TokensFilter.cs" />
|
||||
<Compile Include="Framework\Drivers\ImportContentContextWrapper.cs" />
|
||||
<Compile Include="Framework\Drivers\IContentImportSession.cs" />
|
||||
@@ -387,7 +389,12 @@
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Parts.Layout.Summary.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Element-Snippets-Shape.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Element-Snippets-Shape.Design.cshtml" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
|
@@ -0,0 +1,8 @@
|
||||
@using Orchard.Layouts.Elements
|
||||
@{
|
||||
var element = (Shape) Model.Element;
|
||||
}
|
||||
<div class="element-snippet">
|
||||
<strong>@T("Shape -")</strong>
|
||||
@element.ShapeType
|
||||
</div>
|
@@ -0,0 +1,10 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = (OrchardTagBuilder)TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
}
|
||||
@if (Model.Shape != null) {
|
||||
@tagBuilder.StartElement
|
||||
@Display(Model.Shape)
|
||||
@tagBuilder.EndElement
|
||||
}
|
Reference in New Issue
Block a user