六、内容模型修改,自定义内容模型

注意 :在添加完成某个模型的栏目后,想要添加该栏目的数据,需要在后台重新刷新一下,在核心-》内容管理-》会出来该模型数据的添加按钮。

1、修改模型,

在dede里面默认的模型有时不满足我们,需要修改模型

20150327--Dede+模板替换-0220150327--Dede+模板替换-02

如何更改:

在后台-》核心-》频道模型-》内容模型管理-》

20150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-02

单击修改后,选择字段管理。

20150327--Dede+模板替换-02

选择添加新字段,新添加的字段默认在最后,

20150327--Dede+模板替换-02

在字段管理里面,通过调节如下代码,设置表单显示的位置。

20150327--Dede+模板替换-02

调试结果如下:

20150327--Dede+模板替换-02

对应附加表里面添加了一个字段。

20150327--Dede+模板替换-02

2、自定义模型

当默认的模型无法满足我们时,要自己定义模型,(新建模型)

如何定义:

定义模型:新增一张附加表,定义附加表里面的字段信息。

字段信息如何定义:根据内容详情页面里面,显示的数据信息而定义,

要注意:有些信息无需定义,因为在内容主表里面已经定义了,比如名称,缩略图的地址等。

20150327--Dede+模板替换-02

在内容模型管理里面-》新建模型即可:

20150327--Dede+模板替换-02

新建完成模型后,附加表对应创建,在附加表里面默认有几个字段,不能满足我们,因此要添加我们自己定义的字段。

20150327--Dede+模板替换-02

针对我们电影网站定义模型字段内容:

20150327--Dede+模板替换-02

七、模板替换,使用标签取出数据,

电影网站的模型已经完成,接下来完成电影网站的栏目的创建。

20150327--Dede+模板替换-02

在添加完成栏目后,要刷新一下后台首页,会在内容管理中出现栏目所属的模型,进行添加数据。

20150327--Dede+模板替换-0220150327--Dede+模板替换-02

在添加电影时,常规信息下面默认是标题,可以改成其他的内容显示,修改模型,里面基本设置里面进行修改。

1、模板替换,

(1)在dede目录下面的templets目录下面存储是模板文件。

在templets目录下面新建一个目录,为a67,用于存储我们电影网站的模板文件。

20150327--Dede+模板替换-02

(2)把我们自己准备的模板的样式,图片,js目录给复制到a67目录下面

20150327--Dede+模板替换-02

(3)定义模板文件的名称。

需要准备至少是3个模板文件,首页模板,列表页面的模板,内容详情页面的模板

首页的模板:

20150327--Dede+模板替换-02

栏目(列表)页面模板:

核心-》网站栏目管理-》更改-》

20150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-02

一个栏目对应两个模板文件,在默认情况下,同属于一个模型的所有栏目使用同样的模板文件。我们也可以设置,不同的栏目使用不同的模板。

20150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-02

(4)设置cms系统使用我们自己的模板,

20150327--Dede+模板替换-02

(5)生成首页的静态页面。

20150327--Dede+模板替换-02

20150327--Dede+模板替换-0220150327--Dede+模板替换-02

2、使用标签取出数据

在dede里面有两种标签,单标签和双标签。标签只能在模板文件中使用

(1)单标签:

使用语法:

{dede:global.标签的名称/}

{dede:global.cfg_webname/}

{dede:global.cfg_templets_skin/},给我们解析成当前的模板目录:

单标签是实际上是解析成全局变量,在include目录下面有一个文件common.inc.php,该文件里面定义了一些全局变量,如果想在模板文件中使用全局变量,则使用单标签来取出

自己可以建立一个测试文件,用于测试标签内容的解析,比如在a67下面建立一个demo.htm文件,用于测试,

20150327--Dede+模板替换-02

20150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-02

(2)双标签,取出数据内容。

查看dedecms里面提供的双标签,

20150327--Dede+模板替换-02

20150327--Dede+模板替换-02

语法格式:

{dede:标签的名称  属性1=属性值1  属性2=属性值2}

[field:字段名称/]

{/dede:标签的名称}

20150327--Dede+模板替换-02

20150327--Dede+模板替换-0220150327--Dede+模板替换-02案例1:取出栏目数据内容,使用的标签是,channel标签,

该标签在解析的时候,是查询的dede_arctype表

20150327--Dede+模板替换-02

取出的数据:

20150327--Dede+模板替换-02

每一个双标签,对应一个解析文件的。该解析文件在include 目录下面的,taglib目录下面。

20150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-02

可以在channel.lib.php文件中测试执行的sql语句,通过输出该语句,判断读取哪张表里面的数据。

20150327--Dede+模板替换-02

20150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-02

案例2:取出电影首页模板中导航条,取出栏目信息,使用channel标签,

20150327--Dede+模板替换-0220150327--Dede+模板替换-0220150327--Dede+模板替换-02

案例3:取出首页模板中,推荐数据内容。

20150327--Dede+模板替换-02

思考:先用哪个标签,

arclist:标签,该标签是取出具体的数据内容,内容主表(dede_archives)和附加表(dede_addonXXx)

channeled=模型的id:   通过该属性,用于确定是取出哪个模型的数据,也就是确定读取哪张附加表,如果没有该属性,则不读取附加表里面的数据。

addfields=附加表字段多个用逗号隔开,用于确定从附加表里面取出哪些字段信息。

标签代码:

20150327--Dede+模板替换-02

相关文章: