DedeCMS V5.3二次开发

一、模板篇

1.1主要模板文件与功能说明

DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用 {cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2 等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。

一、概念,设计和使用模板,必须要理解下面几个概念
1、板块(封面)模板:
指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板:
指网站某个栏目的所有文章列表的模板,一般用 “list_识别ID.htm” 命名。
3、档案模板:
表示文档查看页的模板,如文章模板,一般用 “article_识别ID.htm” 命名。
4、其它模板:
一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

二、 命名,DedeCMS模板默认命名规则如下
1、模板保存位置:
模板目录:{cmspath} /templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}
2、 模板文件命名规范:
(1)index_识别ID.htm: 表示板块(栏目封面)模板;
(2)list_识别ID.htm: 表示栏目列表模板;
(3)article_识别ID.htm: 表示内容查看页(文档模板,包括专题查看页);
(4)search.htm: 搜索结果列表模板;
(5)index.htm: 主页模板;

注解:[识别ID]可以在频道模型管理的地方获得,当然,你也可以在频道模型管理的地方确定某个频道的模板命名。

例:list_image.htm 表示是就是内容类型为图片集的栏目默认列表模板。
article_article.htm 表示的是文章查看页模板。

三、其它模板说明

1、默认底层模板
位置: {cmspath}/templets/system
功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。
2、插件目录模板
位置: {cmspath}/templets/plus
功能:评论、友情链接、RSS地图等模板。
3、会员后台模板
位置: {cmspath}/member/templets
功能:会员后台的模板。
四、二次开发
V5.3中已经将标签开发分离出来,您可以通过后台[模板]-[标签代码管理],点击新增加一个新的标签来创建一个自己的标签,标签文件名为:标签名.lib.php
接口函数定义为:function lib_标签名(&$ctag,&$refObj),返回值是结果字符串
修改标签时为了防止出错,您也可以修改它的名称(同时修改文件名和函数名),这样等同继承了原来标签的代码建立一个新的标签。

1.2模板标签语法简介

织梦的模板标签类似于XML格式,所有的模板都含有定界符,默认情况下是{dede:*}{/dede:*}“*”代表模板标记名称。
一般情况下{dede:*}{/dede:*}是成对出现的,例如:
1-1

1 {dede:arclist flag='h' limit='0,1'} />  

  href="[field:arcurl/]">[field:title/]

 />  

[field:description/]...  href="[field:arcurl/]">[查看全文]

 />  

4 {/dede:arclist}  


上面的{dede:arclist}{/dede:arclist}成对出现在模板文件中,并且在两个标签当中包含了底层模板(innertext)
底层模板(Innertext),底层模板实际上就是对于有多条记录的模板输出,用户手工去指定单个记录的样式。
标签还有一类出现形式是{dede:*/},通常以这种形式出现都是输出变量、或者不含底层模板的内容。
例如:1-2
{dede:global.cfg_webname/}
{dede:arclist flag='h' limit='0,1'/}
如果用户没有指定单个记录的样式,系统部分标签都含有默认的底层模板,具体可以查看{cmapath}/templets/system/文件夹下面的文件,这里面都是系统的底层模板文件。

 

注释
织梦标签的模板注释非常灵活,可以通过标签后面的commet属性进行赋值。
1-3

1 {dede:arclist flag='h' limit='0,1' commet='调用头条的第一篇内容'} />  

2

 href="[field:arcurl  commet="这是文章链接标签"/]">[field:titlecommet="这是文章标题标签"/]

 />  

3

[field:description commet="这是摘要标签"/]...  href="[field:arcurl  commet="这是文章链接标签"/]">[查看全文]

 />  

4 {/dede:arclist}  


在模板引擎将上述标签解析为html的时候,commet的内容是被忽略掉不去解析的,用户在阅读模板标记的时候可以更好的理解标签的意义。
函数
每一个织梦的标签都可以使用自定义函数对其进行扩展,自定义函数内容主要用于对当前标签输出内容进行处理。
1-4
{dede:标记名称function='youfunction("参数一","参数二","@me")'/}
其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:
{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S","@me")'/}

 

属性
模板标签的属性,决定了模板标记输出的形式,例如arclist标签主要功能是列出文档列表,但列出什么内容、按照什么方式进行排序等取决于模板标签的属性。
在织梦的模板标签说明中含有各个模板的标签属性可以详细查阅。
可以查看例1-1中的flag='h' limit='0,1',这里flaglimit是标签的相关属性,通过手册可以查阅属性的介绍。
如果模板标签如果没有列出属性,系统有默认属性值,用户可以参考模板标签说明查看默认属性。

编程
织梦模板很方便的一个地方就是支持简单的模板编程。
格式为:

1  {dede:tagname runphp='yes'}   

2  $aaa = @me;   

3  @me = "123456";   

4  {/dede:tagname} 
@me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me
此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText

 

二、代码篇

2.1common.func.php 公用函数

获得当前的脚本网址
function GetCurUrl()

返回格林威治标准时间
function MyDate($format='Y-m-d H:i:s',$timest=0)

把全角数字转为半角
function GetAlabNum($fnum)

把含HTML的内容转为纯text
function Html2Text($str,$r=0)

把文本转HTML
function Text2Html($txt)

输出Ajax
function AjaxHead()

中文截取2,单字节截取模式
function cn_substr($str,$slen,$startdd=0)

把标准时间转为Unix时间戳
function GetMkTime($dtime)

获得一个 0000-00-00 00:00:00 标准格式的时间
function GetDateTimeMk($mktime)

获得一个 0000-00-00 标准格式的日期
function GetDateMk($mktime)

获得用户IP
function GetIP()

获取拼音以gbk编码为准
function GetPinyin($str,$ishead=0,$isclose=1)

dedecms通用消息提示框
function ShowMsg($msg,$gourl,$onlymsg=0,$limittime=0)

保存一个cookie
function PutCookie($key,$value,$kptime=0,$pa="/")

删除一个cookie
function DropCookie($key)

获取cookie
function GetCookie($key)

获取验证码
function GetCkVdValue()

过滤前台用户输入的文本内容
// $rptype = 0 表示仅替换 html标记
// $rptype = 1 表示替换 html标记同时去除连续空白字符
// $rptype = 2 表示替换 html标记同时去除所有空白字符
// $rptype = -1 表示仅替换 html危险的标记
function HtmlReplace($str,$rptype=0)

获得某文档的所有tag
function GetTags($aid)

过滤用于搜索的字符串
function FilterSearch($keyword)

处理禁用HTML但允许换行的内容
function TrimMsg($msg)

获取单篇文档信息
function GetOneArchive($aid)

2.2dedesql.class.php 数据库类

系统会自动载入 dedesql.class.php 文件,并用
$dsql = $db = new DedeSql(false);
进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作,为了防止错误,操作完后不必关闭数据库。

常用的方法:
1、执行一个非查询类型的SQL语句,如 insert create update 
$rs = $db->ExecuteNoneQuery($sql);
返回值为是否执行成功。

2、执行一个非查询类型的SQL语句,并返回成功记录数
$rs = $db->ExecuteNoneQuery2($sql);

与上面相比,它返回的是影响的记录数,而不是布尔值

3、返回单个记录
$arr = $db->GetOne($sql);

$dsql 如果不带 limit ,系统会自动加上 limit 0,1

4、执行条件查询语句

1 $db->SetQuery($dsql);   

2 $db->Execute();   

3 while($arr = $db->GetArray())   

4 {   

5 }   

 
可以简化为:

6 $db->Execute('me',$dsql);   

7 while($arr = $db->GetArray())   

8 {   

9 }  

 
'me' 为记录集游标,用于区分不同的查询,如:

10 $db->Execute('me',$dsql);   

11 while($arr = $db->GetArray())   

12 {   

13    $db->Execute('2',$dsql2);   

14    while($arr2 = $db->GetArray())   

15    {   

16          

17    }   

18 }    


像这种情况必须指定一个值区分默认的'me'参数,否则会出错

$db->GetArray($rsid,$acctype) 参数
$rsid="me"
$acctype=MYSQL_ASSOC

在查询游标中读取数据还可以用
$db->GetObject($rsid="me");

返回的结果是用类结构表示的值。

5、获取上一个插入的自动递增主键id
$db->GetLastID();

6、获得查询的总记录数
$db->GetTotalRow($rsid="me")

7、获得MySql的版本号
$db->GetVersion($isformat=true)
默认的情况下会转换成 x.xx 形式浮点数

8、析放某查询的资源

$db->FreeResult($rsid="me");

9、在数据库中是否存在某数据表
$db->IsTable($tbname)

10、重新选择要操作的数据库
$db->SelectDB($dbname);

11、获得数据库连接标识
$db->linkID
获得这个连接标识后,可以直接用mysql相关函数进行数据库操作
在非不得已的情况,项目中一般不使用这个变量。


2.3datalistcp.class.php 动态分页类

类文件
include/datalistcp.class.php

适用范围:数据量不大的数据分页
使用方法:

1 $dl = new DataListCP();   

2 $dl->pageSize = 25;              //设定每页显示记录数(默认25条)  

3 $dl->SetParameter($key,$value);  //设定get字符串的变量  

//这两句的顺序不能更换

4 $dl->SetTemplate($tplfile);?//载入模板  

5 $dl->SetSource($sql);?//设定查询SQL  

6   

7 $dl->Display();?//显示  

模板

8 {dede:datalist} />  

9  

  • {field.fieldname1/} - {field.fieldname2/} ...
  •  />  

    10 {/dede:datalist} />  

    11  />  

    12 {tag:pagelist listitem="info,index,end,pre,next,pageno"  listsize="5"/}   

    listitemlistsize 是可选属性
    如果需要自定义 datalist 相关属性,可以继续本类来创建一个新类,只需改变 GetArcList($atts,$refObj='',$fields=array()) 方法即可。

    2.4dedetag.class.php 静态模板类

    类文件
    include/dedetag.class.php

    这个文件是dedecms V5.3及之前版本使用的主要的模板类,它是解析式模板类,并非编译式的(区别是前者通过获得标签位置进行内容替换,后者是直接解析式PHP代码,二次执行)

    一、模板语法
    织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。

    1、织梦模板引擎的代码样式有如下几种形式:
    {dede:标记名称 属性=''/}
    {dede:标记名称 属性=''}{/dede:标记名称}
    {dede:标记名称 属性=''}自定义样式模板(InnerText){/dede:标记名称}

    提示:
    如果使用带底层模板的标记,必须严格用{dede:标记名称 属性=''}{/dede:标记名称这种格式,否则会报错。

    2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。

    (1) global 标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:
    {dede:global name='变量名称'}{/dede:global}

    {dede:global name='变量名称'/}

    其中变量名称不能加 符号,如变量 $cfg_cmspath ,应该写成 {dede:global name='cfg_cmspath'/} 

    (2) foreach 用来输出一个数组,形式为:
    {dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach}

    (3) include 引入一个文件,形式为:
    {dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}
    对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录

    3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为:
    {dede:标记名称 属性='' function='youfunction("参数一","参数二","@me")'/}
    其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:
    {dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")'/}

    4、织梦标记允许有限的编程扩展。
    格式为:
    {dede:tagname runphp='yes'}
    $aaa = @me;
    @me = "123456";
    {/dede:tagname}
    @me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me
    此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText

    二、解析方式

    在 dedetag.class.php 里面有四个类

    class DedeAttribute  属性结构表述

    class DedeAttributeParse  属性解析器

    class DedeTag  标签结构表述

    class DedeTagParse  标签解析器

    使用解析类解析模板时一般经过下面的步骤

    1、初始化:

    $dtp = new DedeTagParse();

    2、载入模板/模板字符串:

    $dtp->LoadTemplate(模板文件(绝对路径));  //会生成缓存,第二次不需解析模板

    $dtp->LoadSource(字符串);

    3、给标签赋值

    foreach($dtp->CTags as $tid=>$ctag) {   

    //判断ctag的名称和属性,并给赋不同的值,通常用函数处理    

    if($ctag->GetName=='mytag') $dtp->Assign($tid, mytagvalue($ctag) );  } 

    在上面例子中,直接把名称为 mytag的标签转交给 mytagvalue 函数处理,mytagvalue 里判断$ctag的各个属性,返回不同内容即可。

    在 V5.3版本中,通常除了fieldlist等专用标签之外,凡arc.*开头的类解析的文件,标签都是对应该 include/taglib 的源码的,这个由系统进行了自动的映射。

    4、显示或保存为HTML

    $dtp->display();

    $dtp->SaveTo(静态文件名);

    对于二次开发人员而言,不大需要知道dedecms模板具体解析方式,不过应该十分清楚CTag这个类的结构,从而判断标签不同属性进行处理。

    1 class DedeTag   

    2 {   

    3     var $IsReplace=FALSE; //标记是否已被替代,供解析器使用  

    4     var $TagName=""; //标记名称  

    5     var $InnerText=""; //标记之间的文本  

    6     var $StartPos=0; //标记起始位置  

    7     var $EndPos=0; //标记结束位置  

    8     var $CAttribute=""; //标记属性描述,即是class DedeAttribute  

    9     var $TagValue=""; //标记的值  

    10     var $TagID = 0;   

    11   

    12     //获取标记的名称和值  

    13     function GetName()   

    14     {   

    15         return strtolower($this->TagName);   

    16     }   

    17   

    18     function GetValue()   

    19     {   

    20         return $this->TagValue;   

    21     }   

    22   

    23     //下面两个成员函数仅是为了兼容旧版  

    24     function GetTagName()   

    25     {   

    26         return strtolower($this->TagName);   

    27     }   

    28   

    29     function GetTagValue()   

    30     {   

    31         return $this->TagValue;   

    32     }   

    33   

    34     //获取标记的指定属性  

    35     function IsAttribute($str)   

    36     {   

    37         return $this->CAttribute->IsAttribute($str);   

    38     }   

    39   

    40     function GetAttribute($str)   

    41     {   

    42         return $this->CAttribute->GetAtt($str);   

    43     }   

    44   

    45     function GetAtt($str)   

    46     {   

    47         return $this->CAttribute->GetAtt($str);   

    48     }   

    49   

    50     function GetInnerText()   

    51     {   

    52         return $this->InnerText;   

    53     }   

    54 }  




    2.5dedetemplate.class.php 动态模板类

    核心类文件
    include/dedetemplate.class.php
    用途:用于非核心模块的动态页面或列表页的模板解析,如:member/content_list.php ,通常是在 datalistcp.class.php 中使用,这个类在动态运行的情况下,由于本身是把模板编译成PHP的,因此性能上会优级于旧的解析类,这个方法将在未来版本中作为通用的方式。

    一、使用方法:

    $tpl = new DedeTemplate(
    模板对象实例名称,通常是'tpl',
    [模板存放目录(生成缓存时会存放在这个目录),
    include语法默认引用目录]
    );
    通常情况下参数二和参数三是不必要的,如:
    $tpl = new DedeTemplate('tpl');

    如果在类文件中调用,应该加上设置:
    $this->tpl->SetObject($this);
    在一些块调用中默认将使用当前类的成员函数。

    $tpl->LoadTemplate(模板的物理路径);

    如果模板中带有 {dede:config name='' value=''/}
    可以在载入模板后,通过 $tpl->GetConfig($name) 获得这些变量的值。

    显示页面或保存页面为文件
    $tpl->Display();
    $tpl->SaveTo(物理绝对路径的文件名);


    二、模板标记语法

    1、标记通用特性
    (1) 短标记
    {dede:tagname.name/}
    等同于
    {dede:tagname name='' /}
    (2) 块标记
    {dede:tagname}
    循环代码
    {/dede:tagname}


    2、标记的具体语法及对应的PHP代码
    (1) 配置变量
    {dede:config name='' value=''/}
    配置变量可以在载入模板后通过 $tpl->GetConfig($name) 获得,仅作为配置,不在模板中显示。

    (2) 短标记

    {dede:global.name/}   外部变量      等同于 
    {dede:var.name/}      var数组       等同于 
    {dede:field.name/}    field数组     等同于 
    {dede:cfg.name/}      系统配置变量  等同于 

    考虑到大多数情况下都会在函数或类中调用模板,因此 $_vars$fields 数组必须声明为 global 数组,否则模板引擎无法获得它的值从而导致产生错误。

    (3) 自由调用块标记
    {tag:blockname bind='GetArcList' bindtype='class'}
    循环代码
    {/tag:blockname}

    必要属性:
    bind       数据源来源函数
    bindtype   函数类型,默认是 class 可选为 sub
    rstype     返回结果类型,默认是 array ,可选项为 string

    自定义函数格式必须为 function(array $atts,object $refObj, array $fields);
    在没有指定 bind 绑定的函数的情况下,默认指向 MakePublicTag($atts,$tpl->refObj,$fields) 统一管理,这个函数存放在 cls_dede_tplinc.php 

    (4) 固定块标记

    [1] datalist
    从绑定类成员函数GetArcList中获取数组并输出
    {dede:datalist}
    循环代码
    {/dede:datalist}
    遍历一个二给维数组,数据源是固定的,只适用用类调用。
    等同于
    {tag:blockname bind='GetArcList' bindtype='class' rstype='arrayu'}
    循环代码
    {/tag:blockname}

    [2] label
    从绑定函数中获取字符串值并输出
    等同于 {tag:blockname bind='func' bindtype='sub' rstype='string'/}

    [3] pagelist

    从绑定类成员函数GetPageList中获取字符串值并输出
    等同于 {tag:blockname bind='GetPageList' bindtype='class' rstype='string'/}

    (5) include 语法
    {dede:include file=''/}
    {dede:include filename=''/}

    (6) php 代码块
    {dede:php
    php 代码
    /}

    {dede:php}
    php代码
    {/dede:php}

    (7) if 条件
    仅支持 if else else 直接用{else}表示,但不支持{else if}这样的语法 ,一般建议模板中不要使用太复杂的条件语法,如果确实有需要,可以直接使用 php 语法。

    {dede:if 条件} a-block  {else} b-block {/dede:if}

    条件中允许使用 var.name 、 global.name 、 field.namecfg.name 表示相应的变量。

    如:
    {dede:if field.id>10 }
    {/dede:if}

    (8) 遍历一个 array 数组

    {dede:array.name}
      {dede:key/} = {dede:value/}
    {/dede:array}

    各种语法的具体编译后的代码,可查看 dede-template-class.php 的 function CompilerOneTag(&$cTag)

    块调用示例代码:
    1、示例一

    1 {tag:datalist   timeformat=""} />  

    2      />  

    3        class='col1'> />  

    4           

    ?   href='{tag:field.arcurl/}'>{tag:field.title/}
     />  

    5            />  

    6        />  

    7          class='col2'>{tag:field.formattime/} />  

    8        />  

    9   {/tag:datalist}  


    编译后的代码

    10 

    11 $atts = array();   

    12 $atts['tagname'] = 'datalist';   

    13 $atts['timeformat'] = '';   

    14 $blockValue = $this->refObj->GetArcList($atts,$this->refObj,$fields);    

    15 foreach( $blockValue as $key=>$fields )   

    16 {   

    17 ?>   

    18    

    19    

    20 

    ?'>
       

    21    

    22    

    23    

    24    

    25 

    26 }   

    27 ?>   

    28     

     
    2、示例二

    29 {tag:article sort='new'   titlelen='36' row='10'} />  

    30      

    [{tag:field.typename/}]   href="{tag:field.arcurl/}">{tag:field.title   function="CnSubstr(@me,24)"/}
     />  

    31   {/tag:article} 

    编译后的代码

    32 

    33 $atts = array();   

    34 $atts['tagname'] = 'article';   

    35 $atts['sort'] = 'new';   

    36 $atts['titlelen'] = '36';   

    37 $atts['row'] = '10';   

    38 $blockValue = MakePublicTag($atts,$this->refObj,$fields);    

    39 if(is_array($blockValue) && count($blockValue) > 0){   

    40 foreach( $blockValue as $key=>$fields )   

    41 {   

    42 ?>   

    43 

    []">
       

    44 

    45 }   

    46 }   

    47 ?>   

    48    



    三、数据库篇

    dede_archives|文档主表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    mediumint(8)

     

    UNSIGNED

    0

    文档ID

    typeid

    smallint(8)

     

    UNSIGNED

    0

    栏目ID

    sortrank

    int(10)

     

    UNSIGNED

    0

    时间排序

    flag

    set('c','h','p','f','s','j','a','b')

    utf8_general_ci

     

    NULL

    自定义属性值

    ismake

    smallint(6)

     

     

    0

    是否审核

    channel

    smallint(6)

     

     

    1

    所属模型ID

    arcrank

    smallint(6)

     

     

    0

    阅读权限

    click

    mediumint(8)

     

    UNSIGNED

    0

    点击数

    money

    smallint(6)

     

     

    0

    消费点数

    title

    char(60)

    utf8_general_ci

     

     

    标题

    shorttitle

    char(36)

    utf8_general_ci

     

     

    简明标题

    color

    char(7)

    utf8_general_ci

     

     

    颜色

    writer

    char(20)

    utf8_general_ci

     

     

    作者

    source

    char(30)

    utf8_general_ci

     

     

    文档来源

    litpic

    char(60)

    utf8_general_ci

     

     

    缩略图

    pubdate

    int(10)

     

    UNSIGNED

    0

    时间

    senddate

    int(10)

     

    UNSIGNED

    0

    时间

    mid

    mediumint(8)

     

    UNSIGNED

    0

    会员ID

    keywords

    char(30)

    utf8_general_ci

     

     

    关键词

    templet

    char(30)

    utf8_general_ci

     

     

     

    lastpost

    int(10)

     

    UNSIGNED

    0

    最后回复

    scores

    mediumint(8)

     

    UNSIGNED

    0

    阅读权限

    goodpost

    mediumint(8)

     

    UNSIGNED

    0

    好评

    badpost

    mediumint(8)

     

    UNSIGNED

    0

    差评

    notpost

    tinyint(1)

     

    UNSIGNED

    0

    评论选项(1:充许评论)

    userip

    char(15)

    utf8_general_ci

     

     

    IP

    redirecturl

    varchar(255)

    utf8_general_ci

     

     

    跳转地址

    description

    varchar(255)

    utf8_general_ci

     

     

    摘要

    dede_addonarticle|文章附加表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    aid

    mediumint(8)

     

    UNSIGNED

    0

    文档ID

    typeid

    smallint(5)

     

    UNSIGNED

    0

    栏目ID

    body

    mediumtext

    utf8_general_ci

     

    NULL

    内容

    dede_addonimages|图片附加表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    aid

    mediumint(8)

     

    UNSIGNED

    0

    文档ID

    typeid

    smallint(5)

     

    UNSIGNED

    0

    栏目ID

    pagestyle

    smallint(6)

     

     

    1

    表现方式(多页多图显示、多页单图显示、多行多列显示)

    maxwidth

    smallint(6)

     

     

    600

    图片宽度限制

    imgurls

    text

    utf8_general_ci

     

    NULL

    图片内容({dede:pagestyle…

    row

    smallint(6)

     

     

    0

    多列式参数(行)

    col

    smallint(6)

     

     

    0

    多列式参数(列)

    isrm

    smallint(6)

     

     

    0

    特殊选项(下载远程图片、从ZIP压缩包中解压图片、网上复制图片)

    ddmaxwidth

    smallint(6)

     

     

    200

    缩略图宽度限制

    pagepicnum

    smallint(6)

     

     

    12

    每页图片数(单页多图显示需要设置此参数)

    dede_addonshop|商品附加表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    aid

    mediumint(8)

     

    UNSIGNED

    0

    文档id

    typeid

    smallint(5)

     

    UNSIGNED

    0

    栏目id

    body

    mediumtext

    utf8_general_ci

     

    NULL

    商品内容

    price

    float

     

     

    0

    价格

    trueprice

    float

     

     

    0

    优惠价

    brand

    varchar(250)

    utf8_general_ci

     

     

    品牌

    units

    varchar(250)

    utf8_general_ci

     

     

    单位


    dede_addonsoft|软件附加表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    aid

    mediumint(8)

     

    UNSIGNED

    0

    文档ID

    typeid

    smallint(5)

     

    UNSIGNED

    0

    栏目ID

    filetype

    varchar(10)

    utf8_general_ci

     

     

    文件类型(ziprar

    language

    varchar(10)

    utf8_general_ci

     

     

    软件语言

    softtype

    varchar(10)

    utf8_general_ci

     

     

    软件类型(国产..

    accredit

    varchar(10)

    utf8_general_ci

     

     

    授权方式(共享软件..

    os

    varchar(30)

    utf8_general_ci

     

     

    运行环境(windows..

    softrank

    mediumint(8)

     

    UNSIGNED

    0

    软件等级(一星..

    officialUrl

    varchar(30)

    utf8_general_ci

     

     

    官方网址

    officialDemo

    varchar(50)

    utf8_general_ci

     

     

    程序演示

    softsize

    varchar(10)

    utf8_general_ci

     

     

    软件大小

    softlinks

    text

    utf8_general_ci

     

    NULL

    软件地址

    introduce

    text

    utf8_general_ci

     

    NULL

    软件说明

    daccess

    smallint(5)

     

     

    0

    下载权限


    dede_addonspec|专题附加表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    aid

    mediumint(8)

     

    UNSIGNED

    0

    文档ID

    typeid

    smallint(5)

     

    UNSIGNED

    0

    栏目ID

    note

    text

    utf8_general_ci

     

    NULL

    专题节点

    dede_arctype|栏目表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    smallint(5)

     

    UNSIGNED

    NULL

    栏目ID

    reid

    smallint(5)

     

    UNSIGNED

    0

    上级栏目

    topid

    smallint(5)

     

    UNSIGNED

    0

    顶级栏目

    sortrank

    smallint(5)

     

    UNSIGNED

    50

    栏目排序

    typename

    char(30)

    utf8_general_ci

     

     

    栏目名

    typedir

    char(60)

    utf8_general_ci

     

     

    目录地址

    isdefault

    smallint(6)

     

     

    0

    栏目列表选项(1:链接到默认页;0:链接到列表第一页;-1:使用动态页)

    defaultname

    char(15)

    utf8_general_ci

     

    index.html

    默认页的名称

    issend

    smallint(6)

     

     

    0

    是否支持投稿(0:不支持;1:支持)

    channeltype

    smallint(5)

     

    UNSIGNED

    1

    所属频道ID

    maxpage

    smallint(6)

     

     

    -1

     

    ispart

    smallint(6)

     

     

    0

    栏目属性(0:最终列表栏目;1:频道封面;2:外部连接)

    corank

    smallint(6)

     

     

    0

    浏览权限

    tempindex

    char(50)

    utf8_general_ci

     

     

    封面模板

    templist

    char(50)

    utf8_general_ci

     

     

    列表模板

    temparticle

    char(50)

    utf8_general_ci

     

     

    内容模板

    namerule

    char(50)

    utf8_general_ci

     

     

    文章命名规则({typedir}/{Y}{M}{D}/{aid}.html

    namerule2

    char(50)

    utf8_general_ci

     

     

    列表命名规则({typedir}/list_{tid}_{page}.html

    modname

    char(20)

    utf8_general_ci

     

     

     

    description

    char(150)

    utf8_general_ci

     

     

    栏目描述

    keywords

    char(30)

    utf8_general_ci

     

     

    关键词

    moresite

    tinyint(1)

     

    UNSIGNED

    0

    多站点支持(0:不启用)

    sitepath

    char(60)

    utf8_general_ci

     

     

    栏目地址

    siteurl

    char(50)

    utf8_general_ci

     

     

    绑定域名

    ishidden

    smallint(6)

     

     

    0

    是否隐藏栏目(0:显示)

    cross

    tinyint(1)

     

     

    0

    栏目交(0:不交叉;1:自动获取同名栏目内容;2:手工指定交叉栏目ID

    crossid

    text

    utf8_general_ci

     

    NULL

    交叉栏目ID

    content

    text

    utf8_general_ci

     

    NULL

    栏目内容

    dede_flinktype|友情链接网站类型

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    mediumint(8)

     

    UNSIGNED

    NULL

    链接类型ID

    typename

    varchar(50)

    utf8_general_ci

     

     

    类型名称



     

     

    dede_flink|友情链接表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    smallint(5)

     

    UNSIGNED

    NULL

    友链ID

    sortrank

    smallint(6)

     

     

    0

    排序值

    url

    char(60)

    utf8_general_ci

     

     

    链接地址

    webname

    char(30)

    utf8_general_ci

     

     

    网站名

    msg

    char(200)

    utf8_general_ci

     

     

    网站简况

    email

    char(50)

    utf8_general_ci

     

     

    站长EMAIL

    logo

    char(60)

    utf8_general_ci

     

     

    LOGO

    dtime

    int(10)

     

    UNSIGNED

    0

    链接时间

    typeid

    smallint(5)

     

    UNSIGNED

    0

    站点类型

    ischeck

    smallint(6)

     

     

    1

    链接位置(1、内页;2、首页)

    dede_admin|系统管理用户表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    int(10)

     

    UNSIGNED

     

    管理员ID

    usertype

    int(10)

     

    UNSIGNED

    0

    级别值

    userid

    char(30)

    utf8_general_ci

     

     

    用户名

    pwd

    char(32)

    utf8_general_ci

     

     

    用户密码

    uname

    char(20)

    utf8_general_ci

     

     

    用户笔名

    tname

    char(30)

    utf8_general_ci

     

     

    真实姓名

    email

    char(30)

    utf8_general_ci

     

     

    Email

    typeid

    smallint(5)

     

    UNSIGNED

    0

    授权栏目(0为所有)

    logintime

    int(10)

     

    UNSIGNED

    0

    登陆时间

    loginip

    varchar(20)

    utf8_general_ci

     

     

    登陆IP


    dede_member|会员表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    mid

    mediumint(8)

     

    UNSIGNED

    NULL

    会员ID

    mtype

    enum('个人','企业')

    utf8_general_ci

     

    个人

    会员类型

    userid

    char(20)

    utf8_general_ci

     

     

    注册用户名

    pwd

    char(32)

    utf8_general_ci

     

     

    密码

    uname

    char(36)

    utf8_general_ci

     

     

    昵称

    sex

    enum('','','保密')

    utf8_general_ci

     

    保密

    性别

    rank

    smallint(5)

     

    UNSIGNED

    0

    会员级别值

    uprank

    smallint(5)

     

    UNSIGNED

    0

    是否待升级

    money

    mediumint(8)

     

    UNSIGNED

    0

    会员金币

    upmoney

    smallint(5)

     

    UNSIGNED

    0

    是否待充值

    email

    char(50)

    utf8_general_ci

     

     

    Email

    scores

    mediumint(8)

     

    UNSIGNED

    0

    积分

    matt

    smallint(5)

     

    UNSIGNED

    0

    推荐

    spacesta

    smallint(6)

     

     

    0

    会员空间状况

    face

    char(50)

    utf8_general_ci

     

     

    头像

    safequestion

    smallint(5)

     

    UNSIGNED

    0

    安全提示问题

    safeanswer

    char(30)

    utf8_general_ci

     

     

    安全提示问题答案

    jointime

    int(10)

     

    UNSIGNED

    0

    注册时间

    joinip

    char(16)

    utf8_general_ci

     

     

    注册IP

    logintime

    int(10)

     

    UNSIGNED

    0

    登陆时间

    loginip

    char(16)

    utf8_general_ci

     

     

    登陆IP

    dede_member_space|会员空间资料

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    mid

    mediumint(8)

     

    UNSIGNED

    0

    会员ID

    pagesize

    smallint(5)

     

    UNSIGNED

    10

    每页文档数

    matt

    smallint(6)

     

     

    0

     

    spacename

    varchar(50)

    utf8_general_ci

     

     

    空间名

    spacelogo

    varchar(50)

    utf8_general_ci

     

     

    空间LOGO

    spacestyle

    varchar(20)

    utf8_general_ci

     

     

    空间风格

    sign

    varchar(100)

    utf8_general_ci

     

    没签名

    签名

    spacenews

    text

    utf8_general_ci

     

    NULL

    空间动态

    dede_plus|插件管理表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    aid

    mediumint(8)

     

    UNSIGNED

    NULL

    插件ID

    plusname

    varchar(30)

    utf8_general_ci

     

     

    插件名

    menustring

    varchar(200)

    utf8_general_ci

     

     

    菜单配置

    mainurl

    varchar(50)

    utf8_general_ci

     

     

    目标框架

    writer

    varchar(30)

    utf8_general_ci

     

     

    作者

    isshow

    smallint(6)

     

     

    1

    是否启用

    filelist

    text

    utf8_general_ci

     

    NULL

    文件列表



     

     

    dede_sys_set|系统设置表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    smallint(5)

     

    UNSIGNED

    NULL

    auto_increment

    sname

    char(20)

    utf8_general_ci

     

     

    设置名称

    items

    text

    utf8_general_ci

     

    NULL

    设置条目

    dede_sysconfig|系统参数表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    aid

    smallint(8)

     

    UNSIGNED

    0

    参数ID

    varname

    varchar(20)

    utf8_general_ci

     

     

    参数名

    info

    varchar(100)

    utf8_general_ci

     

     

    变量说明

    groupid

    smallint(6)

     

     

    1

    变量类型ID

    type

    varchar(10)

    utf8_general_ci

     

    string

    变量类型

    value

    text

    utf8_general_ci

     

    NULL

    dede_tagindex|Tags标签表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    int(10)

     

    UNSIGNED

    NULL

    Tagid

    tag

    char(12)

    utf8_general_ci

     

     

    TAG内容

    count

    int(10)

     

    UNSIGNED

    0

    点击

    total

    int(10)

     

    UNSIGNED

    0

    文档数

    weekcc

    int(10)

     

    UNSIGNED

    0

    周统计

    monthcc

    int(10)

     

    UNSIGNED

    0

    月统计

    addtime

    int(10)

     

    UNSIGNED

    0

    添加时间

    dede_tagindex|Tags标签表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    id

    int(10)

     

    UNSIGNED

    NULL

    Tagid

    tag

    char(12)

    utf8_general_ci

     

     

    TAG内容

    count

    int(10)

     

    UNSIGNED

    0

    点击

    total

    int(10)

     

    UNSIGNED

    0

    文档数

    weekcc

    int(10)

     

    UNSIGNED

    0

    周统计

    monthcc

    int(10)

     

    UNSIGNED

    0

    月统计

    addtime

    int(10)

     

    UNSIGNED

    0

    添加时间

    dede_taglist|TAG标签列表表

    字段

    类型

    整理

    属性

    Null

    默认

    额外

    tid

    int(10)

     

    UNSIGNED

    0

    TAGID

    aid

    int(10)

     

    UNSIGNED

    0

    文章ID

    arcrank

    smallint(6)

     

     

    0

     

    typeid

    smallint(5)

     

    UNSIGNED

    0

    栏目ID

    tag

    varchar(12)

    utf8_general_ci

     

     

    TAG内容


    四、程序篇 

    4.1自定义模型使用教程

    在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一个软件下载站点。
    当然以上随系统附带的模型被称为系统模型,用户可以自己定义一些模型,比如图书、音乐专辑等,自定义了这些模型才可以构建更多内容形式的站点,本篇将讲述如何使用系统的自定义模型管理功能来实现内容模型的构建。
    我们首先登录系统后台,点击[核心]-[内容模型管理],进入内容模型管理界面,如下图所示:


     

    这里我们介绍几个相关参数的概念:
    •ID 用于区分模型的唯一ID,一般常规模型的ID都是大于0的,比如普通文章、软件等,如果使用了单表模型,ID一般需要小于-1,例如这里的分类信息模型;
    •频道名称 用于识别频道类型的标识;
    •识别id 系统用于识别的id,这个关系到模板方面;
    •附加表 系统内容附加表项;
    •模型类型 分为系统类型和自动类型,系统类型为固化在系统中的内容模型,自动类型为用户可创建的内容模型类型;

    接下来我们开始介绍如何使用自定义模型管理来创建一个自己的模型,并且用于建设不同内容类型的网站中去。
    这里我们介绍一些周边的内容,几个要用到的概念:
    •字段 在数据库中,表的列称为字段,织梦系统也是如此,但更恰当的说法,存储某个内容信息单元,称为字段,例如标题、来源、作者等都是一个字段;
    •内容系统主表 程序将一些公用字段存储在系统主表dede_archives,例如:标题、关键词、缩略图等,主表具体字段可以查询织梦帮助中心(http://help.dedecms.com)的有关二次开发手册数据表部分的内容;
    •附加表 不同内容模型对应不同的附加表,通常以dede_addon[识别ID]命名,附加表中存放的都是详细内容的相关字段(非公用),例如:文章内容(dede_addonarticle)、软件类型(dede_addonsoft)、图片集合(dede_addonimage)等;
    •单表独立模型 存储时候不用到主表+附加表的结构形式,直接使用单个数据表进行存储内容数据,这样脱离主从表,减少主表数据服在开销,可以从很大程度上解决数据负载问题;
    明白了以上几个概念我们可以来学习如何来自己创建一个内容模型了。
    一个完整的内容模型包含模型数据表、数据字段、模型模板、模型参数4个部分,制作一个内容模型大致有以下几个步骤:1.模型规划;2.模型制作;3.模板制作;4.栏目设置,下面我们从上面4个步骤来讲解内容模型的制作。这里我们以一个图书模型(book)为例子,这个模型主要功能就是介绍书籍。

    模型规划
    模型规划分为几个部分一个是模型应用方面的规划,其次就是字段信息方面的规划,以图书(book)模型为例子,我们现规划一个频道使用这个模型,这个频道作用就是让大家分享一些好的学习资料,这里主要是编程方面的书籍,所以栏目划分大致如下:

    [网络编程书籍]
        |____[ASP相关]
         |____[PHP相关]
         |____[JSP相关]
         |____[.NET相关]

    这几个栏目是支持会员投稿的,因为这个推荐的书籍不是很多,所以直接采用主从表的形式,不使用独立单表模型,因为涉及到会员分享,所以这里需要会员投稿,我们给投稿会员级别设置为中级会员才有权限,并且需要摘要和说略图,投稿之后需要经过管理员审核,这样基本的使用规划完成,下面就是字段方面的规划了。
    因为介绍一本书,我们规划了以下内容:

    出 版 社

    publish

    单行文本(varchar)

    出版时间

    pubtime

    时间类型

    字  数

    cnum

    整数类型

    版  次

    pubnum

    整数类型

    页  数

    pagenum

    整数类型

    印刷时间

    pritime

    时间类型

    开  本

    kbook

    单行文本(varchar)

    印  次

    prinum

    整数类型

    纸  张

    pages

    单行文本(varchar)

    I S B N

    isbn

    单行文本(varchar)

    包  装

    packs

    单行文本(varchar)

    内容简介

    body

    HTML文本

    作者简介

    wrbody

    HTML文本

    目录

    bindex

    HTML文本

    这样,我们完成了第一步模型的规划。

    模型制作
    规划完成了,接下来我们开始将这些规划的内容创建为一个内容模型。首先以超级管理员身份登录到系统后台。点击[核心]-[模型管理],点击增加新模型按钮来创建模型。
    按照系统提示配置模型的基本信息,这里因为选择的是自动模型,所以档案发布的相管程序页面只需要保留默认即可。因为我们发布的是图书,所以这里投稿标题使用名称设置为:图书名称。


    因为这里我们使用的是自动模型,没有自己制作相应的发布管理程序,所以下面的相关模型发布程序保持默认即可,当然如果你有一定的编程能力,可以自己制作一个内容发布程序,然后在这里指定即可。


    基本信息设置完毕,直接单击确定即可,进入到字段管理的页面,点击字段管理中的添加新字段按钮,进入字段添加页面,我们根据相关的字段信息进行字段添加。
    下面是一些字段类型我们对部分字段进行一些说明:


    单行文本(varchar):常用字段,如文章标题、作者等都属于直接输入少量内容的文本,设置这个文本之后需要指定文本长度,默认为250,如果大于255则为text类型
    多行文本:也是较为常用的字段类型,如个人简介、产品描述都可以使用多行文本进行存储
    HTML文本:用织梦编辑器编辑产生的html内容,用于比较复杂的内容形式
    附件类型:可以后台上传附件让用户下载,附件类型可以在后台进行设置
    option下拉框:下拉选择,一般用于如软件类型、语言类型等字段
    联动类型:一种数组形式的数据类型,可以在系统后台联动类型管理中进行设置

    了解了这些字段类型我们就可以添加我们的字段信息了。


    添加完成点击确定即可,这样我们就完成了这个模型的制作。模型添加完毕之后我们发现在内容发布的地方多出来一个发布图书的选项,这个说明我们的模型就已经成功添加了。

    模板制作
    我们通过织梦帮助中心的《主要模板文件与功能说明》了解到每个模型还需要制作对应的模型模板文件,我们可以通过后台模型管理中的模板文件说明查看模板文件。

    模板制作主要有2个地方需要讲解下。
    1.      列表页模板list_[识别ID].htm中显示在列表中需要调用添加扩展的字段需要在添加字段页面勾选使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择)”,这样在{dede:list/}标签中就可以使用[field:fieldname/]来进行调用。
    2.      内容页的标签可以使用{dede:field.fieldname /} 进行调用,具体可以参考帮助中心模板相关的帮助文档。

    栏目设置
    接下来我们就可以来添加一个栏目,在栏目设置中将栏目的内容模型设置为图书


     然后我们就可以在这个栏目下添加文档,会发现我们现在可以发布图书内容了


     

    添加完成之后,我们可以浏览我们的网站页面,预览我们的模型效果。


     

    至此我们完成了整个模型的制作,整个过程还是非常简单的。这里只介绍了自动模型的制作,当然有一定PHP基础的用户可以自己开发系统模型,这样就会拥有更为强大的织梦系统,使得网站内容更加丰富。

    4.2联动类别使用说明教程

    织梦在新版本V5.3中加入了一个联动类别的功能,不少人不理解这个联动类别的使用方法,本教程天涯就来介绍如何使用这个功能。
    联动类别使用的地方还是比较多的,首先我们可以通过后台的[核心]-[频道模型]-[联动类别管理]查看,联动类别其定义如下:系统一种特殊的枚举数据类别,可以有系统内置或由用户管理。系统内置的枚举用户是不可以删除的,但可以对这些数据进行添加子分类及修改。到这里可能一些用户还是不了解什么是联动类型,下面我们举几个简单的例子。
    一个最简单的联动类型是只有一级选择的类型,比如说系统内置的星座、教育程度、血型,这种类型你可以点击进去查看,其结构很简单,例如星座(star)

    在这个联动类别中级数为一级选择,就是在这个星座类别下面只有一列品级数据进行选择,我们点击进去可以查看到以下内容:

    这个让我们很容易联想到许多网站中设置用户资料的时候,需要用户选择星座,我们就可以通过一个下拉框进行选择:

    当然,上面说到的是最简单的联动类别,只有一级联动,这种一级联动就可以好比是一个下拉框,用户在选择具体数据的时候只要通过下拉框这种形式就可以对数据进行选择。但是我们在很多联动数据中遇到不少需要二级联动的类型,例如我们在资料设置中选择所在城市这个类别,如下图所示

    这种数据类型就属于需要选择2次分类,首先选择上海市,然后列出上海市拥有的地区,然后再进行第二次选择,这就是一个二级联动的类别,我们可以通过系统后台查看联动类别中的地区来看看系统的枚举类型。

    通过以上2个例子我们不难理解联动类型的概念,其实说简单了就是一种特殊的枚举数据类型,这种特殊的枚举类型运用在创建内容模型、用户资料等数据录入的页面中,其中应用在创建模型及用户自定义表单是联动类别最常用的地方,下面我们来介绍如何使用这个联动模型。
    我们以创建一个图书(book)”内容模型为例,这个模型中我们需要网站管理员(用户)提交一个图书特征的分类,我们知道以下图书特征的分类:
    线装书,精装书,平装书,袋装书,电子书,有声读物,盲人书
    下面我们就创建一个这个一级选择的枚举类型,这个类型叫图书特征(bookfeature),我们点击新增类别组来创建分类。

    创建完成后我们将类别的内容全部添加到这个类别中去,在页面中提示我们如果一次性添加多个类别可以用“,”将不同类别隔开,然后一次性添加。

    这样我们就创建完成了这个图书特征(bookfeature)的联动类型,接下来我们要应用这个联动类型,我们在新创建的模型中添加字段,在字段添加的页面中添加相应的字段名称,选择数据类型为联动类型,如下图所示:

    在我们发布图书内容的时候,就会发现有一个选择是图书特征的内容类型选择,不过个人建议如果设计一级联动选择,最好还是使用“option下拉框这个数据类型。
    使用同样的字段设置方法也可以添加其他二级联动的字段,这个我们可以查看分类信息这个模型里面的联动类型数据。

    当然我们在系统的自定义表单中也可以使用这个联动类型,使用的方法和模型管理里面添加字段是一样的,这里就不再重复了。当然,在二次开发中也会遇到在一些页面调用这些枚举的列表,可以查看/include/enums.func.php61GetEnumsForm这个函数,具体的使用可以参考下会员中心编辑用户信息这个页面文件的方法,具体文件为/member/templets/ edit_info_person.htm
    枚举类型在模型制作和系统开发中用到的地方还是比较多的,大家可以有空的时候进行一些研究,会发现更多关于联动类型的应用方法,不要忘记分享哦。

    五、标签篇

    adminname

    仅内容模板

    V55,V56,V57

    获得责任编辑名称

    基本语法
    {dede:adminname /}

    arclist

    全局标记

    V55,V56,V57

    获取指定文档列表

    基本语法


    {dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'}
    [field:title/]
    {/dede:arclist}

    标签属性

    · col:分多少列显示(默认为单列),5.3版中本属性可以通过多种方式进行多行显示

    · row:返回文档列表总数

    · typeid:栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目

    · getall:在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类

    · titlelen:标题长度 等同于titlelength

    · infolen:表示内容简介长度 等同于infolength

    · imgwidth:缩略图宽度

    · imgheight:缩略图高度

    · listtype: 栏目类型 image含有缩略图 commend推荐

    · orderby:文档排序方式

    · keyword:含有指定关键字的文档列表,多个关键字用","

    · innertext:单条记录样式

    · aid:指定文档ID

    · idlist:提取特定文档(文档ID

    · channelid:频道ID

    · limit:(起始ID0开始)表示限定的记录范围(如:limit='1,2' 表示从ID1的记录开始,取2条记录

    · flag:自定义属性值:头条[h]推荐[c]图片[p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]

    · noflag:flag,但这里是表示不包含这些属性

    · orderway:值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序

    · subday:表示在多少天以内的文档

    · 

    arclistsg

    全局标记

    V55,V56,V57

    单表独立模型的文档列表调用标记

    基本语法


    {dede:arclistsg flag='h' typeid='' row='' col='' titlelen='' orderway='' keyword='' limit='0,1'}
    [field:title/]
    {/dede:arclistsg}

    标签属性

    · row:返回文档列表总数

    · typeid:栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目

    · titlelen:标题长度 等同于titlelength

    · orderwey:排序方向

    · keyword:含有指定关键字的文档列表,多个关键字用","

    · innertext:单条记录样式(innertext是放在标签之间的代码)

    · arcid:指定文档ID

    · idlist:提取特定文档(文档ID

    · channelid: 频道ID

    · limit:表示限定的记录范围

    · flag:自定义属性值:头条[h]推荐[c]图片[p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]

    · subday:表示在多少天以内的文档

    · 

    arcpagelist

    ask

    全局标记

    V55,V56,V57

    问答调用标签

    基本语法
    {dede:ask row='6' qtype='new' tid='0' titlelen='24'}


     [[field:tidname/]]
     [field:title/]

    {/dede:ask}

    标签属性

    · row:调用条数

    · qtype:排序类型 commend 推荐、ok 表示已解决问题、high 高分问题 、new 最新问题

    · tid:栏目id,默认是全部

    · titlelen:标题长度

    autochannel

    全局标记

    V55,V56,V57

    指定排序位置的单个栏目的链接

    基本语法
    {dede:autochannel partsort='' typeid=’’}{/dede:autochannel}

    标签属性

    · partsort:栏目所在的排序位置

    · typeid:获取单个栏目的顶级栏目

    bookcontentlist

    全局标记

    V55,V56,V57

    连载图书最新内容调用

    基本语法
    {dede:bookcontentlist row='12' booktype='-1' orderby='lastpost' author='' keyword=''}



    [[field:cataloglink/]] [field:booklink/]
    [field:contentlink/]
    [field:lastpost function="GetDateMk(@me)"/]


    {/dede:bookcontentlist}

    标签属性

    · row:调用记录条数

    · booktype:图书类型,图书、漫画,默认全部

    · orderby:排序类型,当按排序类型为 commend 表示推荐图书

    · author:作者

    · keyword:关键字

    booklist

    全局标记

    V55,V56,V57

    连载图书调用

    基本语法
    {dede:booklist row='12' booktype='-1' orderby='lastpost' author='' keyword=''}
    [field:bookname /]
    {/dede:booklist}

    标签属性

    · row:调用记录条数

    · booktype:图书类型,图书、漫画,默认全部

    · orderby:排序类型,当按排序类型为 commend 表示推荐图书

    · author:作者

    · keyword:关键字

    cattree

    全局标记

    V55,V56,V57

    调用树形类目

    基本语法
    {dede:cattree typeid='' catid='' showall=''/}

    标签属性

    · typeid:顶级树id

    · catid:上级栏目id

    · showall:在空或不存在时,强制用产品模型id;如果是 yes 刚显示整个语言区栏目树;为其它数字则是这个数字的模型的id

    channel

    全局标记

    V55,V56,V57

    用于获取栏目列表

    基本语法


    {dede:channel type='top' row='8' currentstyle="

  • ~typename~ 
  • "}
     
  • [field:typename/] 

  • {/dede:channel}

    标签属性

    · typeid:栏目ID

    · reid:上级栏目ID

    · row:调用栏目数

    · col:分多少列显示(默认为单列)

    · type:son表示下级栏目,self表示同级栏目,top顶级栏目

    · currentstyle:应用样式

    channelartlist

    全局标记

    V55,V56,V57

    获取当前频道的下级栏目的内容列表标签

    基本语法
    {dede:channelartlist row=6}


     
    {dede:field name='typename'/}

     

     {dede:arclist titlelen='42' row='10'} 
     
  • [field:title /]

  •  
  • ([field:pubdate function="MyDate('m-d',@me)"/])

  •  
    {/dede:arclist}

    {/dede:channelartlist}

    标签属性

    · typeid:频道ID

    · row:获取的栏目返回值

    demotag

    全局标记

    V55,V56,V57

    这仅是一个演示标签

    基本语法
    {dede:demotag /}

    feedback

    全局标记

    V55,V56,V57

    用于调用最新评论

    基本语法
    {dede:feedback}
     


       [field:username function="(@me=='guest' ? '游客' : @me)"/] 对 [field:title/] 的评论:
        [field:msg /]
       

    {/dede:feedback}

    标签属性

    · row:调用评论条数

    · titlelen:标题长度

    · infolen:评论长度

    flink

    全局标记

    V55,V56,V57

    用于获取友情链接

    基本语法
    {dede:flink row='24'/}

    标签属性

    · type:链接类型

    · row:链接数量

    · titlelen:站点文字的长度

    · linktype:链接位置内页

    · typeid:所有类型,可以在系统后台[模块]-[友情链接]中的网站类型管理中查看

    · 

    flinktype

    全局标记

    V55,V56,V57

    用于获取友情链接类型

    基本语法
    {dede:flink row='24'/}

    标签属性

    · row:链接类型数量

    · titlelen:链接文字的长度

    group

    全局标记

    V55,V56,V57

    圈子调用标签

    基本语法
    {dede:group row='6' orderby='threads' titlelen='30'}
     


  •  
     [field:groupname/]
     

  • {/dede:group}

    标签属性

    · row:调用条数

    · orderby:排列顺序(默认是主题数)

    · titlelen:圈子名称最大长度

    groupthread

    全局标记

    V55,V56,V57

    圈子主题调用标签

    基本语法
    {dede:groupthread gid='0' orderby='dateline' orderway='desc' row='12' titlelen='30'}
     


  •  [[field:groupname function="cn_substr(@me,10)"/]]
     [field:subject/]([field:lastpost function="GetDateMk('@me')"/])
     

  • {/dede:groupthread}

    标签属性

    · gid:圈子id,默认为全部

    · orderby:排序,默认为时间

    · orderway:排序方向,默认是最新主题在前

    · row:记录数

    · titlelen:主题标题(subject)最大长度

    hotwords

    全局标记

    V55,V56,V57

    获取网站搜索的热门关键字

    基本语法
    {dede:hotwords /}

    标签属性

    · num:关键词数目

    · subday:天数

    · maxlength:关键词最大长度

    · 

    infoguide

    全局标记

    V55,V56,V57

    分类信息的地区与小分类搜索

    基本语法
    {dede:infoguide /}

    infolink

    全局标记

    V55,V56,V57

    调用分类信息地区与类型快捷链接

    基本语法
    {dede:infolink /}

    json

    全局标记

    V57

    调用某个远程连接的json数据库

    基本语法
    {dede:json url='http://yoursite/json.php' cache=300}
     [field:id/]-[field:title/]

    {/dede:json}

    标签属性

    · url:json数据地址

    · cache:缓冲时间

    likearticle

    全局标记

    V55,V56,V57

    自动关连文档标签

    基本语法
    {dede:likearticle row='' col='' titlelen='' infolen=''}
    [field:title/]
    {/dede:likearticle}

    标签属性

    · col:分多少列显示(默认为单列)

    · row:返回文档列表总数

    · titlelen:标题长度 等同于titlelength

    · infolen:表示内容简介长度 等同于infolength

    · mytypeid:手工指定要限定的栏目id,用,分开表示多个

    · innertext:单条记录样式(指标签中间的内容)

    likepage

    全局标记

    V55,V56,V57

    调用相同标识单页文档

    基本语法
    {dede:likepage likeid='' row=''/}

    标签属性

    · row:调用条数

    · likeid:标识名

    · 

    likesgpage

    全局标记

    V55,V56,V57

    单页文档调用标签

    基本语法
    {dede:likespage row=''/}
    标签属性

    · row:调用条数

    loop

    全局标记

    V55,V56,V57

    调用任意表的数据标签

    基本语法
    {dede:loop table='dede_archives' sort='' row='4' if=''}
    [field:title/]
    {/dede:loop}
    标签属性

    · table:查询表名

    · sort:用于排序的字段

    · row:返回结果的条数

    · if:查询的条件

    memberinfos

    全局标记

    V55,V56,V57

    文档关连的用户信息

    基本语法
    {dede:memberinfos mid = '' /}

    标签属性

    · mid:用户ID

    memberlist

    全局标记

    V55,V56,V57

    会员信息调用标签

    基本语法
    {dede:memberlist orderby='scores' row='20'}
    {dede:field.userid /}
    {dede:field.scores /}
    {/dede:memberlist}

    标签属性

    · row:调用数目

    · iscommend:是否为推荐会员

    · orderby:按登陆时间排序 money 按金钱排序 scores 按积分排序

    myad

    全局标记

    V55,V56,V57

    获取广告代码

    基本语法


    {dede:myad name=''/}

    标签属性

    · typeid:投放范围,0为全站

    · name:广告标识

    · 

    mynews

    全局标记

    V55,V56,V57

    站内新闻调用标签

    基本语法


    {dede:mynews row='' titlelen=''/}

    标签属性

    · row:调用站内新闻数

    · titlelen:新闻标题长度

    · 

    mytag

    全局标记

    V55,V56,V57

    用于获取自定义宏标记的内容

    基本语法


    {dede:mytag typeid='0' name=''/}

    标签属性

    · name:标记名称,该项是必须的属性,以下 23是可选属性

    · ismake:默认是 no 表示设定的纯HTML代码, yes 表示含板块标记的代码

    · typeid:表示所属栏目的ID,默认为 ,表示所有栏目通用的显示内容,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目ID

    · 

    php

    全局标记

    V55,V56,V57

    调用PHP代码

    基本语法


    {dede:php}
    $a = "dede";
    echo $a;
    {/dede:php}
    productimagelist

    softmsg

    软件内容模板

    V55,V56,V57

    下载说明标签

    基本语法


    {dede:softmsg /}

    sonchannel

    全局标记

    V55,V56,V57

    子栏目调用标签

    基本语法
    {dede:sonchannel}
    [field:typename/]
    {/dede:sonchannel}

    标签属性

    · row:返回数目

    · col:默认单列显示

    · nosonmsg:没有指定ID子栏目显示的信息内容

    · 

    sql

    全局标记

    V55,V56,V57

    用于获取MySQL数据库内容的标签

    基本语法


    {dede:sql sql='' db='default'}
    [field:title/]
    {/dede}

    标签属性

    · sql:需要查询的sql语句

    · appname: 默认为default,即当前dedecms的数据库,如果需要自定义,可以在data/tag/sql.inc.php中扩展,具体扩展方法查看配置文件头部说明

    tag

    全局标记

    V55,V56,V57

    TAG调用标签

    基本语法
    {dede:tag sort='new' getall='0'}
    [field:tag /]
    {/dede:tag}

    标签属性

    · row:调用条数

    · sort:排序方式 monthrandweek

    · getall:获取类型 为当前内容页TAG标记,1为获取全部TAG标记

    type

    全局标记

    V55,V56,V57

    表示指定的单个栏目的链接

    基本语法
    {dede:type}
    [field:typename /]
    {/dede:type}

    标签属性

    · typeid:指定栏目ID

    vote

    全局标记

    V55,V56,V57

    用于获取一组投票表单

    基本语法
    {dede:vote id='' lineheight='22' tablewidth='100%' titlebgcolor='#EDEDE2' titlebackground='' tablebgcolor='#FFFFFF'/}
    {/dede}

    标签属性

    · id:数字,当前投票ID

    · lineheight:表格高度

    · tablewidth:表格宽度

    · titlebgcolor:投票标题背景色

    · titlebackground:标题背景图

    · tablebg:投票表格背景色

    你可能感兴趣的:(java,--,框架)