Orchard之模版开发

生成新模版之后(参看:Orchard之生成新模板),紧接着就是模版开发了。

一:开发必备之 Shape Tracing

到了这一步,非常依赖一个工具,当然,它也是 Orchard 项目本身的一个 Module,这个工具就是 Shape Tracing。

Shape Tracing:Displays all currently displayed shapes and some information to customize them

好了,不管怎么说,首先,我们来到 Orchard 的后台,Enable 之。这个时候,如果再刷新我们的页面,我们就会见到网页下步存在一个小标签:

点击之,出现:

举个例子来说 shape tracing 的重要性,比如,我们创建了一个 List(参考:Orchard之创建列表),现在显式为:

我们需要修改该页面的显式效果,就需要在新模版下创建对应 content 或 part 的 cshtml,然后在这个 view 中修改显式,这个时候,我们就得知道怎么创建它,这包括:

1:视图名字怎么命名?

2:视图的Model都有些什么样的属性?

而利用 Shape Tracing 的 Shape 页签的 Alternate 下的 Create 就会很容易创建这个视图,比如,在这里,我们要创建的是列表视图,那么我们就要创建这个 Content-Event.Summary.cshtml,如下:

注意,名称中的 Event 是我创建的列表的 Id 号,在 Orchard 后台的 Content 定义中可以看到。

点击 Create 后,在新模版的 Views 文件夹下就生成了这个文件,

现在,我们只要把这个文件在解决方案中引入进来。

二:修改 View

接下来,事情就变得简单了,我们可以看到代码如下:

@using Orchard.Utility.Extensions;
@{
    if (Model.Title != null) {
        Layout.Title = Model.Title;
    }

Model.Classes.Add("content-item");
    var contentTypeClassName = ((string)Model.ContentItem.ContentType).HtmlClassify();
    Model.Classes.Add(contentTypeClassName);
    var tag = Tag(Model, "article");
}
@tag.StartElement
<span style="color:red;"> @Display(Model.Header)</span>
<a href="@Model.ContentItem.AutoroutePart.Path" style="color:red;"> @Model.ContentItem.AutoroutePart.DisplayAlias</a>
        @*@if (Model.Meta != null) {
            <div class="metadata">
                @Display(Model.Meta)
            </div>
        }*@
    @*@Display(Model.Content)*@
    @if(Model.Footer != null) {
        <footer>
            @Display(Model.Footer)
        </footer>
    }
@tag.EndElement

我们只要修改代码文件,这跟修改普通的 HTML 没什么区别了!比如,上面我就注释了不要内容显式,并且把内容标题的文字改成红色,然后效果就能如下了:

2.1 关于 Display 方法

注意,上面的代码以及上面的图片效果中,我们看到了有两个标题的显式。

要注意,第一个标题,在视图中,我们使用了 orchard 自己提供的 Display 方法来显式的。这样一来,它的样式是什么,怎么显式,就只能由 Orchard 说了算了。

而第二个标题,我们通过 Shape Tracing,跟踪到了 Model 的信息,直接绕开 Display 方法,自己加样式的方式,就灵活了很多了。

这样一来,有了 Model 自己的数据,我们就可以爱咋显式就咋显式了。

三:主题如何起作用

其实,原理也很简单:

ORCHARD会根据自己的命名规则,去查找对应主题下的视图文件,即 cshtml 文件,如果存在,就以这个 alternate 去展现

当然,这里非常依赖我们视图的名字不能随便瞎起,如果不按照 Orchard 的规则,则 Orchard 找不到合法的文件,就不会正确呈现视图了。那么,如何正确命名文件呢,本文开头第一段已经说了哦。

Orchard之模版开发

时间: 2024-10-23 08:23:32

Orchard之模版开发的相关文章

单页面滚动式网站模版开发

在线演示1 本地下载 jQuery是当今最流行的JS框架,利用jquery我们可以开发出很多高效的demo和成果.与此同时jquery相关的插件也可以很方便的完成一些特效,例如jquery scrollTo插件,可以方便的完成滑动到指定位置操作.记住由于jquery scrollto插件是依赖于jquery而产生,所以在头部文件引用时先引用jquery文件 要点:(原文链接:http://www.gbtags.com/gb/share/5641.htm) jQuery scrollTo插件 jQ

模版引擎(NVelocity)开发

在net中用模版开发,在handler中用到了大量的html代码.为解决这个问题,我可以采用模版引擎(NVelocity)进行开发.1.首先需要将NVelocity.dll文件放入项目,其次引用.2.配置更改, 代码如下: context.Response.ContentType = "text/html"; //1.创建Velocity 引擎(VelocityEngine)并设置属性 VelocityEngine vltEngine = new VelocityEngine(); v

RAW模板开发必备知识

写这个主要是为了让已经熟练掌握PHP的人能够快速的掌握RAW模板开发,从而享受RAW的优越! (注:在实际开发中,最好注意RAW模板开发统一规范,那样可以增强用户体验) 废话不多说,进入正题. 需要记住的有两个要点: 1.模板类型与新建模板 2.RAW标记 3.入口文件 4.多文件模板 5.模板信息 上面几个就是RAW模板开发的关键技术点,掌握了这几项就可以进行RAW模板开发. ***************************模板类型与新建*************************

手机App定制开发的定义

移动互联网快速发展,传统行业与互联网融合的平台和模式都发生了改变.互联网的发展已经走进了一个新时代,越来越多的企业开始认识到互联网蕴含的巨大商机,尤其是对于一些企业而言,传统的营销模式已不能跟随这个时代的步伐了.在我们的生活当中不难发现,手机APP已经成为了生活当中不可缺少的物品,手机APP定制开发也变得热门起来.那么,怎样才算是APP开发定制?在此,郑州APP定制开发公司小编就和大家来谈谈. 1.手机APP定制开发的定义 APP定制开发指的是企业根据自身所处行业的发展现状以及企业战略规划来进行

黄聪:《跟黄聪学WordPress主题开发》

又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库表结构.字段详解 WordPress主题模版加载过程 WordPress主题模版开发:主题模版的安装及创建 WordPress主题模版开发:首页模版及调用options表数据 WordPress主题模版开发:如何循环输出文章列表 WordPress主题模版开发:文章元数据及多语言化 WordPress主题模版

PHP模版引擎 – Twig

在网站开发过程中模版引擎是必不可少的,PHP中用的最多的当属Smarty了.目前公司系统也是用的Smarty,如果要新增一个页面只需把网站的头.尾和左侧公共部分通过Smarty的include方式引入进来,然后主体部分写内容即可,用起来也是相当方便.这也是一种比较通用的做法.但维护一段时间后发现有些凌乱了: 1. 公共部分内容越加越多了,不需要用的js.css在一些页面也被强制引进来了 2.新页面的css只能写在网页的body内,看起来总让人不爽. 3.左侧.头部.尾部若有特殊显示,操作起来不方

[iOS越狱开发 之七]使用iOSOpenDev开发SpringBoard的Tweat

个人原创,转帖请注明来源:cnblogs.com/jailbreaker Tweat可以理解为“外 挂”程序,可以做一些hook,给iOS打补丁的功能,这里我们用iOSOpenDev提供的Logos Tweak模版开发. 这篇blog我们hook的是SpringBoard,简称SB,其是iOS中的桌面管理器,之前的帖子在安装完deb之后,我说重启下设备,实际上指的就是重启SB,头文件:https://github.com/thomasfinch/iOS-7-SpringBoard-Headers

Orchard官方文档翻译(二) 安装 Orchard

安装 Orchard 本文内容已在Orchard 1.8 release版本下测试过. 用另外的方式安装Orchard 这里提供了4种安装Orchard的方式. 你能够: 通过Microsoft Web Platform Installer进行安装. 通过Microsoft WebMatrix安装,参阅让Orchard工作在WebMatrix下. 下载Orchard.zip文件并安装,参阅通过zip文件手动安装Orchard. 获取Orchard源码后通过Visual Studio或命令行建立O

C语言在linux内核中do while(0)妙用之法

为什么说do while(0) 妙?因为它的确就是妙,而且在linux内核中实现是相当的妙,我们来看看内核中的相关代码: #define db_error(fmt, ...) do { fprintf(stderr, "(error): "); fprintf(stderr, fmt, ##__VA_ARGS__); } while (0) 这只是个普通的调试信息的输出,有人便会认为,你这不是多此一举吗?去掉do while(0)不一样也实现了吗?其实不然,我们看看例子就清楚了,尽管很