山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

image

目录

一、内容回顾 1

1、主要的表 1

2、使用 cms系统完成项目的流程 1

3、标签 1

4、模板与静态页面的关系 1

二、完成如下数据的取出 3

三、完成评分值排序, 6

四、输出电影的子栏目。 8

五:输出子栏目下电影内容; 9

六、制作网站的头部,让其他的模板引入 10

七、完成栏目列表页面的内容 10

八、在栏目页面取出所属栏目的电影。 11

九、在栏目页面页面中,取出条件:地区为大陆的电影。 12

十、完成你内容详情页面; 13

一、内容回顾

1、主要的表

dede_channeltype表:存储dedecms里面的内容模型

dede_archives表:存储数据内容公有的一些信息。

dede_addonxxxx表:存储模型数据都有的一些信息。

dede_arctype表:存储创建的栏目。

2、使用 cms系统完成项目的流程

(1)创建模型,每一个模型对应一张附加表。

(2)创建栏目,

(3)添加数据内容,

(4)制作模型,完成替换,使用标签取出数据

(5)生成静态页面,主页,列表页面,内容详情页面。

3、标签

{dede:channel}标签:取出栏目的数据,查询的表是,dede_arctype表

{dede:arclist}标签:获取具体的数据内容,查询的表是dede_archives(内容主表)和dede_addonxxx(附加表)

channeled=””   属性是:通过该属性决定要读取哪个模型里面的数据,也就是确定哪张附加表。

addfields=””  要获取附加表里面的字段内容,

4、模板与静态页面的关系

静态页面通过模板生成的。

扩展:

wps66D1.tmp

取出具有幻灯(f)属性的数据,

条件:flag里面具有f的字样。

select * from dede_archives  where flag  like  ’%f%’;

select * from dede_archives where   find_in_set(‘f’,flag)>0

find_in_set(‘f’,flag) 返回值是查找字符串所在父字符串的位置,从1开始数的。

wps66E1.tmp

在mysql里面是以instr(母字符串,子字符串)函数,返回值子字符串在母字符串的位置,从1开始计算。

wps6702.tmp

二、完成如下数据的取出

wps6712.tmp

思考:取出的具体数据内容,使用的标签是,arclist标签。

思考:有没有取出附加表里面的数据,如果有,使用channelid=””   addfields=”附加表字段

取出数据的个数:使用row=”4”

知识点1

字段标签:[field:global.autoindex/] 类似于在循环中使用$i=1;   <?php  echo $i++ ?>

该字段标签,在循环中使用,每循环一次自动加1输出。

知识点2

在dede里面标签是不能够嵌套的,比如

{dede:arclist}

{dede:global.cfg_templets_skin/}/images/1.jpg

{/dede:arclist}

无法解析{dede:global.cfg_templets_skin/}内容。

解决方案:如果标签被嵌套,则改成字段标签即可

{dede:global.cfg_templets_skin/}改成    [field:global.cfg_templets_skin/]

wps6713.tmp把{}改成[]  把dede改成field。

wps6724.tmp知识点3:在字段标签中可以使用函数,

wps6725.tmpwps6726.tmp语法:[field:字段名称 function=”函数名称(@me)”]

wps6756.tmp

如果想要使用自定义函数,需要在一个文件中定义好。该文件在 include目录下面,文件名为:extend.func.php文件

wps6766.tmpwps6767.tmpwps6788.tmp

比如在extend.func.php文件中定义如下函数:

wps678A.tmp

在标签中使用:

wps67B8.tmp

最后输出结果:

wps67C9.tmp

案例:根据分数显示金星的个数

wps67CA.tmp

在模板页面中的代码:

wps67DB.tmp

在extend.func.php文件中定义的函数,

wps6849.tmp

最后的结果:

wps68C7.tmp

三、完成评分值排序,

wps68D8.tmp

思考:使用的标签,arclist,使用属性 channeled=””  addfields=’pfz’

如何按照评分值进行排序。

通过在标签文件中,输出sql语句:

wps69A4.tmp

通过分析发现,在sql语句中,

dede_archives的别名是:arc

dede_arctype的别名是tp

dede_addonxxx别名是:addf

修改:arclist.lib.php页面,添加代码,支持根据评分值排序。

wps6A51.tmp

知识点:在字段标签里面可以使用简单的业务逻辑,

语法使用:

[field:字段名称 runphp=”yes”]

if(@me>=6){

$me=’优秀’

}

wps6AA0.tmp[/field:字段名称]

wps6AB0.tmp

wps6AD1.tmpwps6AD2.tmpwps6AE2.tmp

该字段标签最后输出的内容,是通过业务逻辑处理的结果。

案例:根据评分值排序,前3名添加class=”hove”样式:

具体的代码:

wps6AF3.tmp

最后的结果:

wps6B04.tmp

总结:在字段标签里面可以使用的参数:

(1)可以在字段标签里面使用函数,最后字段标签里面输出的内容是,函数处理结果的返回值。该函数可以使用系统函数,也可以自己定义,如果要自己定义则必须在include目录下面的extend.func.php文件中。

(2)字段标签:[field:global.autoindex/],在循环中使用,每循环一次自动加1

(3)字段标签里面可以是简单的业务逻辑,通过使用runphp=”yes”,最后该字段标签输出的内容,是业务逻辑处理的结果。

四、输出电影的子栏目。

wps6B33.tmp

思考:取出的是栏目数据,channel标签

wps6B34.tmpwps6B35.tmpwps6B46.tmp

posted on 2016-05-08 21:48  山山未迟  阅读(395)  评论(0编辑  收藏  举报