dedecms

数据模型: dede_channeltype (商品,文章,电影)

栏目表:dede_arctype  导航条

内容主表:

dede_archives 主表存储各个模型之间的公共信息,标题和添加时间

dede_addonxxx附加表存储各个模型下商品的特有的信息,电影的导演,音乐填词人

主表的所有的记录==附表记录之和

 

一个栏目指向某个模型(dede_arcty栏目中的channeltype字段指向dede_channeltype)

表的关系

模型表      <-------->   栏目名称               dede_channeltype <-------> dede_type(channeltype)

栏目主表         <-------->   内容主表               dede_type <------> dede_archives(typeid)

内容主表         <-------->   内容附表               dede_archives <---->dede_addonxx(typeid)

内容主表         <-------->   模型表                    dede_archives<----->dede_channeltype(channel)

 

栏目表

{dede:channel}                   // 获取栏目表中的信息dede_type

{fields:name}

{/dede:channel}

 

主表+附加表

{dede:arclist} dede_archives 和 dede_addonxx 表中的数据, 其中有个属性typeid指向了模型表dede_channeltype

channelid:该属性指向了模型表中的id,由于选择模型,电影还是文章[联系我们],在进行连接查询的时候非常的必要,指定附加表

addfields:year,actors 附表中的字段,用于取出附加表中的字段信息

flag=h 属性     // 根据什么来排序,默认情况下为id desc

row=1 取出一行

orderway = ‘desc’    默认为降序

 

{dede:arclist channelid=17 addfields=’year,actor’ flag=’h’ row=1}

{field:typenames}

{/dede:arclist}

 

1dede中标签是不能进行嵌套使用(双标签不能嵌套单标签) 不能被解析

需要把单标签的{ } 变成[ ] 且将dede改为field:global.cfg_baseurl

 

2、在dede的双标签中的[field:global.autoindex /] 就相当于自增长++i

 

3、在字段的标签中使用自定义的函数,无论是自定义还是系统函数,格式如下

[field:fieldname function=’函数名(@me)’]    

#me指代的是将字段值fieldname传入自定义函数,而实际的字段值是已经被函数处理后的值

# 自定义函数的路径: include/extend.func.php

[filed:score function=”functionName(@me)”]

function($score){  return $score  }

 

4、使用orderby 得出自己想要的排序

{dede:arclist channelid=’’ addfields=’’ flag=’’ row=’’  orderby=’score’ }

在include/taglib/arclist.lib.php 中【文档排序】添加

else if($orderby == 'score') $ordersql = " order by addf.score $orderWay";

addf 为dede_addonmovie 别名  

score为想要按什么来进行排序的字段

在该文件中也可以进行die($query) 在生成静态页面中可以看到sql语句

 

5、给字段标签添加简单的业务逻辑

语法:

         [field:字段标签 runphp=’yes’]

                  // if(@me ) 等业务逻辑                  //自增长或者其他字段

                   // @me 指代的是field字段的值

         [/field:字段标签]

                       

 

6、双循环的使用,外层循环输入的是栏目数据,内层循环输出的是当前栏目的数据

{dede:channelartlist row=’6’ type=’top’}                           // 获取模型数据

  {dede:field name=’typename’ /}                                      // 获取一级栏目名称

  {dede:arclist}                                                                         // 获取各个栏目下的子栏目

          [field:typename/]

{/dede:arclist}

<br/>

{/dede:channelartlist}

 

 

7、头文件的引用

head.htm  --> {dede:include filename=’head.htm’ /}

 

 

8where子句的添加

 

9、万能的单标签(可以取出主表和附加表的数据)

{dede:field fieldname /}

 

10、面包屑导航

{dede:field position /}

 

11、内容页面模板的制作

所有的模板article_movie.htm

单个模板  按单个栏目下进行更改

 

 

防止伪造表单可以验证是否登录来进行判断

posted @ 2015-10-26 09:21  罗雪纷纷  阅读(336)  评论(0)    收藏  举报