请注意,本站并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome浏览器
欢迎光临。交流群:166852192

orchard 候补神器,模板制作工具


还在为Orchard的候补头痛吗?
还在为ShapeTracing的低效头痛吗?
来看看本站隆重推出的候补神器吧。
不改变源码,简单易用,先上个图看下:

亲,看到了吗?
可以显示所有可用的模板,你只需,按需创建即可
具体在你需要制作的模板的views目录下,新建三个文件,如下:

ShapeTracingTemplates.cshtml 为空文件,但不能删,必须有。
ShapeTracingMeta.cshtml: 内容如下:
@using Orchard.Utility.Extensions;
@using Orchard.DesignerTools.Services;


@functions {
    string FormatShapeName(string shape) {
        string shapeType = Model.ShapeType;
        string displayType = Model.DisplayType;
        
        if(!String.IsNullOrWhiteSpace(displayType)) {
            if(shape.StartsWith(shapeType + "_" + displayType)) {
                shape = shapeType + shape.Substring(shapeType.Length + displayType.Length + 1) + "_" + displayType; 
            }
        }
        
        return shape.Replace("__", "-").Replace("_", ".");
    }
    
    string FormatShapeFilename(string shape, string themeId) {
        shape = FormatShapeName(shape);
        return "~/Themes/" + themeId + "/Views/" + shape.Replace("__", "-").Replace("_", ".") + ".cshtml";
    } 


}
<!--候补 开始-->
@foreach (var alternate in (new[] { (string)Model.ShapeType }).Concat((List<string>)Model.Alternates))
{
<!--文件名: @FormatShapeFilename(alternate, WorkContext.CurrentTheme.Id)-->
 <!--候补 @FormatShapeName(alternate)-->
<!--模板 @Model.Template-->
}
<!--候补 结束-->
<!--包装 开始-->
@foreach (var wrapper in Model.Wrappers)
{
    if (wrapper == "ShapeTracingWrapper") { continue; }
    <!--文件名: @FormatShapeFilename(wrapper, WorkContext.CurrentTheme.Id)-->
}
<!--包装 结束-->
ShapeTracingWrapper.cshtml 内容如下:

@using Orchard.ContentManagement
@using Orchard.DesignerTools.Models


@Display(Model.Metadata.ChildContent)
@Display.ShapeTracingMeta(
        ShapeType: Model.Metadata.Type,
        Template: Model.Template,
        OriginalTemplate: Model.OriginalTemplate,
        TemplateContent: Model.TemplateContent,
        DisplayType: Model.Metadata.DisplayType,
        Position: Model.Metadata.Position,
        PlacementSource: Model.Metadata.PlacementSource,
        PlacementContent: Model.PlacementContent,
        Alternates: Model.Metadata.Alternates,
        Wrappers: Model.Metadata.Wrappers,
        ChildContent: Model.Metadata.ChildContent,
        ShapeId: Model.ShapeId,
        Dump: Model._Dump
)


快快看看效果吧,制作完了,记得把这三个文件删除。
如果没什么效果,那就开启ShapeTracing模块再看下。
亲,祝你好运。
文件也可以到群里下载。

作者原创内容不容易,如果觉得内容不错,请点击右侧“打赏”,赏俩给作者花花,也算是对作者付出的肯定,也可以鼓励作者原创更多更好内容。
更多详情欢迎到QQ群 166852192 交流。