码迷,mamicode.com
首页 > 其他好文 > 详细

20150328--Dede+条件选取-01

时间:2016-05-08 22:23:01      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

目录

一、内容回顾 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、模板与静态页面的关系

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

扩展:

技术分享

取出具有幻灯(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开始数的。

技术分享

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

技术分享

二、完成如下数据的取出

技术分享

思考:取出的具体数据内容,使用的标签是,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/]

技术分享把{}改成[]  把dede改成field。

技术分享知识点3:在字段标签中可以使用函数,

技术分享技术分享语法:[field:字段名称 function=”函数名称(@me)”]

技术分享

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

技术分享技术分享技术分享

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

技术分享

在标签中使用:

技术分享

最后输出结果:

技术分享

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

技术分享

在模板页面中的代码:

技术分享

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

技术分享

最后的结果:

技术分享

三、完成评分值排序,

技术分享

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

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

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

技术分享

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

dede_archives的别名是:arc

dede_arctype的别名是tp

dede_addonxxx别名是:addf

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

技术分享

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

语法使用:

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

if(@me>=6){

$me=’优秀’

}

技术分享[/field:字段名称]

技术分享

技术分享技术分享技术分享

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

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

具体的代码:

技术分享

最后的结果:

技术分享

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

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

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

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

四、输出电影的子栏目。

技术分享

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

技术分享技术分享技术分享

20150328--Dede+条件选取-01

标签:

原文地址:http://www.cnblogs.com/lifushan/p/5471771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!