一、基础概念

在使用Umbraco这类CMS制作网站之前,先要搞清楚的是,和概念中网站制作的区别。

暂时忘掉所谓的ADO.NET存储、忘掉ASP.NET、忘掉多层架构什么的。

只需要关注:要显示什么、怎么显示、显示的内容。

举例来说,好比一篇新闻,首先要显示什么?(标题、发布时间、新闻内容、配图),其次是怎么显示?(标题在上,H1的字体,内容居中对齐,图片配在底部等),最后显示的内容(标题为Hello World、配图为世界地图等)。

首先建立起这个概念体系,才有助于对此类系统的使用。

1、显示什么

在Umbraco中叫Document Type,表示某个页面的类别,包含元素为Data Type,表示具体显示的元素类型,比如是图片,文字,视频还是富文本(在Sitecore中分别叫Template和Fields)。

2、怎么显示

在Umbraco中叫Template、Partial Views和Macros Views,这决定了某个页面的呈现方式,在Umbraco中已.cshtml文件的形式存在,包含主要的html代码(在Sitecore中分别叫Layout、Sublayout以及Render)。

3、显示内容

在Umbraco中叫Content,表示具体的信息内容,需要注意的,Conent必须依赖于Document Type而存在,却并不必须Templates的存在(在Sitecore中叫Items,其实这个表述不大准确,Sitecore中,任何一个元素都称之为Item)。

二、Document Type

1、创建基类"Document Type"

打开Setting标签,左键点击“Document Type”右侧的三个点,在弹出的联动菜单中选择"Create"。

在弹出的窗口中输入"Document Type"的名字,例如"BasePage",取消下面默认勾选的复选框"Create matching template",并点击"Create"按钮

之所以不选择"Create matching template",是因为我们第一步只是创建一个基类"Document Type",并不需要直接呈现,而是作为其他所有页面的父类,包含一些基础、通用的信息约定。

2、Info标签

在新创建的"Document Type"中,默认有4个Tab标签,默认显示的是Info标签,表示"Document Type"的基础信息。

Name:为刚创建的"Document Type"名称

Alias:别名,在查询时非常有用,也必须唯一

Allowed templates:由于没有创建Templates,因此目前为空,表示的是该"Document Type"可以被哪些模板引用

Default template:指定当创建当前"Document Type"对应的"Content"默认选择的模板

3、Structure标签

Structure标签主要定义"Document Type"的结构关系

Allow at root:指定当前"Document Type"对应的Content是否会显示在根节点

Enable list view:是否显示可排序及搜索菜单

Allowed chil node types:允许哪些"Document Type"对应的"Content"可以作为当前"Document Type"对应的"Content"的子节点

4、Generic propperties标签

默认的属性标签,可以把绝大多数通用的字段类型放置在这个标签内。

点击"Create new property"可以打开如上的添加属性界面。其中:

Name:属性名称

Alias:属性别名

Type:属性类型。注意,此处对应的实际上是"Developer"标签中的"Data Type"类型。具体可参考:https://our.umbraco.org/documentation/Getting-Started/Data/Data-Types/

Tab:属性归属于哪个Tab中

Mandatory:是否必填属性

Validation:正则表达式验证

5、Tabs标签

Tabs标签的作用,是给Properties标签添加数据分类。保存后,可以在"Generic properties"中看到新添加的tab。如上图。

三、应用

1、首页"Document Type" Structure Tab

如前所述,创建的只是基础类型,并不具备展示功能,实际的展示应该是由派生而出的"Document Type"所定义。下图表示的是该类型允许在根节点呈现,接受的子级为"Generic List"

2、首页"Document Type" 的"Generic properties" Tab

内容元素,只是针对于特殊的首页,增加了KV选择,名为:Main KV

当然,一个完整的网站,不可能只有上面这么一点内容。但是依据这个基础,可以不断的扩展网站,最终形成网站的主体骨架。

下一篇,要说网站的皮,Templates,不过目前还没拿到什么稿件,估计要等一段时间了吧。

Umbraco学习2------数据类型的更多相关文章

  1. js学习之数据类型

    js学习之数据类型 基础类型:number string boolean null undefined 引用类型:object array function undefined值是派生自null值的( ...

  2. Go语言学习之数据类型

    ### Go语言学习之数据类型 数据类型的转换 1.Go语言不允许隐式类型转换(显示转换才可以) 2.别名和原有类型也不能进行隐式类型转换 例子: func TestImplicit(t *testi ...

  3. python学习6—数据类型之集合与字符串格式化

    python学习6—数据类型之集合与字符串格式化 1. 使用id()可以查看一个变量的内存地址: name = 'alex' id(name) 2. 进制转换 十进制转换为二进制等: a = 10 # ...

  4. MySQL学习笔记--数据类型

    一.数据类型(内容参考<SQL学习指南>)不完整 1.文本类型 文本类型 最大字节数 tinytext 255 text 65535 varchar 65536 mediumtext 16 ...

  5. C语言基础学习基本数据类型-变量的输出与输入

    变量的输出 变量如何输入输出呢?实际上,在这之前你已经使用过输出语句(printf语句)了,我们可以使用printf来执行输出. printf语句的使用方法如下: printf(格式控制字符串, 数据 ...

  6. C语言基础学习基本数据类型-变量和常量

    变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...

  7. Redis 学习(二) —— 数据类型及操作

    Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个 ...

  8. MySQL学习4 - 数据类型一

    介绍 一.数值类型 二.浮点型 验证三种类型建表 验证三种类型的精度 三.日期类型 综合练习: 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选 ...

  9. python学习Day7 数据类型的转换,字符编码演变历程

    一.数据类型的转换 1.1.1.字符转列表:lst1 = str.split(默认空格,也可依据指定字符分界),若无分界字符,就没法拆分,这时可以直接放进list转成列表 ----> s1 = ...

  10. Java之基础学习(数据类型、运算符、分支语句和循环语句)

    在工作用得比较多的是shell和python编程,对于java以前也学习过,使用很少,这次借朋友推荐的java视频教程来温习下. 也是因为现在很多开源测试工具使用java编写的,学习一下更有助于测试工 ...

随机推荐

  1. @synthesize 与@dynamic区别

    @synthesize 除非开发人员已经做了,否则由编译器自动生成getter/setter方法. 当开发人员自定义存或取方法时,自定义会屏蔽自动生成该方法. @dynamic 告诉编译器,不自动生成 ...

  2. iOS计算文本高度

    NSDictionary *attribute = @{NSFontAttributeName: UIFont(14)}; CGRect labelRect = [string boundingRec ...

  3. JS 精粹(三)

    (一)基本问题 JS的数据类型(不是数据结构)分:简单数据类型(undefined\null\boolean\string\number\symbol).复杂数据类型(object). 对象是可变的键 ...

  4. EJB QI查询

    EO.PNAME like ?1 OR  EO.PNAME like ?2";      Query query = entityManager.createNativeQuery(quer ...

  5. 1.js编程风格。 --- 编写可维护的javascript

    1. 使用4个空格字符作为一个缩进层级. 2. 不省略分号. ---> 自动插入分号机制非常复杂,且难于记忆. 3. 行的长度限定于80个字符. 4. 通常在运算符换行之后,下一行会增加两个层级 ...

  6. JVM学习之内存分配一

    转自:http://blog.csdn.net/mazhimazh/article/details/16879055,多谢博主分享 我们知道计算机的基本构成是:运算器.控制器.存储器.输入和输出设备, ...

  7. 项目中怎么去掉tomcat的猫

    其实很简单,需要在登录页和显示内容的主页,将自己的favicon.ico 导入,并在登录页和主页将其引入即可. 例如: 接着在登录页引入  <link rel="shortcut ic ...

  8. Android DatePicker和TimePicker

    监测日期改变的监听器:      OnDateChangedListener和OnTimeChangedListener()           当用户改变Datepicker里的年.月.日时,将触发 ...

  9. EcShop后台添加菜单[步骤]

    1. 添加菜单的链接地址:打开文件[/后台目录/includes/inc_menu.php],在结尾加入例如:$modules['dashi']['dashi_list'] = 'join_dashi ...

  10. 函数 setjmp, longjmp, sigsetjmp, siglongjmp

    一,相关函数接口 1,setjmp,longjmp,sigsetjmp,siglongjmp   #include <setjmp.h> int setjmp(jmp_buf env); ...