文档库 最新最全的文档下载
当前位置:文档库 › DedeCMS教程,DedeCMS二次开发

DedeCMS教程,DedeCMS二次开发

DedeCMS教程,DedeCMS二次开发
DedeCMS教程,DedeCMS二次开发

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'}

2

[field:title/]


3

[field:description/]...[查看全文]


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

[field:titlecommet="这

是文章标题标签"/]


3

[field:description 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',这里flag和limit是标签的相关属性,通过手册可以查阅属性的介绍。

如果模板标签如果没有列出属性,系统有默认属性值,用户可以参考模板标签说明查看默认属性。

编程

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

格式为:

1 {dede:tagname runphp='yes'}

2 $aaa = @me;

3 @me = "123456";

4 {/dede:tagname}

@me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me。

此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。

二、代码篇

2.1、common.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 GetCkVdV alue()

过滤前台用户输入的文本内容

// $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.2、dedesql.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();

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

4{

5}

可以简化为:

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

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

8{

9}

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

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

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

12{

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

14while($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->GetV ersion($isformat=true)

默认的情况下会转换成x.xx 形式浮点数

8、析放某查询的资源

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

9、在数据库中是否存在某数据表

$db->IsTable($tbname)

10、重新选择要操作的数据库

$db->SelectDB($dbname);

11、获得数据库连接标识

$db->linkID

获得这个连接标识后,可以直接用mysql相关函数进行数据库操作

在非不得已的情况,项目中一般不使用这个变量。

2.3、datalistcp.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"/}

    listitem、listsize 是可选属性

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

    2.4、dedetag.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版本中,通常除了field、list等专用标签之外,凡arc.*开头的类解析的文件,标签都是对应该include/taglib 的源码的,这个由系统进行了自动的映射。

    4、显示或保存为HTML

    $dtp->display();

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

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

    1class DedeTag

    2{

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

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

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

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

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

    8var $CAttribute=""; //标记属性描述,即是class DedeAttribute 9var $TagV alue=""; //标记的值

    10var $TagID = 0;

    11

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

    13function GetName()

    14{

    15return strtolower($this->TagName);

    16}

    17

    18function GetV alue()

    19{

    20return $this->TagV alue;

    21}

    22

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

    24function GetTagName()

    25{

    26return strtolower($this->TagName);

    27}

    28

    29function GetTagV alue()

    30{

    31return $this->TagV alue;

    32}

    33

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

    35function IsAttribute($str)

    36{

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

    38}

    39

    40function GetAttribute($str)

    41{

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

    43}

    44

    45function GetAtt($str)

    46{

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

    48}

    49

    50function GetInnerText()

    51{

    52return $this->InnerText;

    53}

    54}

    2.5、dedetemplate.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:https://www.wendangku.net/doc/c26779719.html,/}

    等同于

    {dede:tagname name='' /}

    (2) 块标记

    {dede:tagname}

    循环代码

    {/dede:tagname}

    2、标记的具体语法及对应的PHP代码

    (1) 配置变量

    {dede:config name='' value=''/}

    配置变量可以在载入模板后通过$tpl->GetConfig($name) 获得,仅作为配置,不在模板中显示。

    (2) 短标记

    {dede:https://www.wendangku.net/doc/c26779719.html,/} 外部变量等同于

    {dede:https://www.wendangku.net/doc/c26779719.html,/} var数组等同于

    {dede:https://www.wendangku.net/doc/c26779719.html,/} field数组等同于

    {dede:https://www.wendangku.net/doc/c26779719.html,/} 系统配置变量等同于

    考虑到大多数情况下都会在函数或类中调用模板,因此$_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}

    条件中允许使用https://www.wendangku.net/doc/c26779719.html, 、https://www.wendangku.net/doc/c26779719.html, 、https://www.wendangku.net/doc/c26779719.html,、https://www.wendangku.net/doc/c26779719.html, 表示相应的变量。

    如:

    {dede:if field.id>10 }

    {/dede:if}

    (8) 遍历一个array 数组

    {dede:https://www.wendangku.net/doc/c26779719.html,}

    {dede:key/} = {dede:value/}

    {/dede:array}

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

    块调用示例代码:

    1、示例一

    1{tag:datalist timeformat=""}

    2

    3

    4


    5

    6

    7{tag:field.formattime/}

    8

    9{/tag:datalist}

    编译后的代码

    10

    11$atts = array();

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

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

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

    15foreach( $blockV alue 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/}]{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$blockV alue = MakePublicTag($atts,$this->refObj,$fields);

    39if(is_array($blockV alue) && count($blockV alue) > 0){

    40foreach( $blockV alue 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_c

    i 是NULL图片内容

    ({dede:page

    style…)

    row smallint(6) 否0 多列式参数

    (行)

    col smallint(6) 否0 多列式参数

    (列)

    isrm smallint(6) 否0 特殊选项(下

    载远程图片、

    从ZIP压缩包

    中解压图片、

    网上复制图

    片)

    ddmaxwidt h 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否文件类型(zip、rar)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

    namerule2char(50) utf8_general_ci 是列表命名规则

    ({typedir}/list_{ti

    d}_{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 登陆时间

    DedeCMS专题功能使用详细教程

    爱雅逸整理 https://www.wendangku.net/doc/c26779719.html,
    DEDECMS 专题详解
    DEDECMS 专题详解
    一个网站通常会在不同时期推出一些针对性的专题内容,专题的功能其实就是将站点的内容根据特 定的需求进行一次检索,将这些不同形式的内容进行一次整合,这个我们可以看看一些大的门户网 站,例如新浪、搜狐,他们有自己的专题频道。一个专题可以包含几个不同栏目的内容或者包含不 同内容模型如:文章、图片、音频、视频等,不同的专题需要有自己符合当时环境的页面风格,比 如在元旦、新年就需要红色主题的专题模板,在春天、夏天就需要绿色主题的专题模板等。一个好 的专题容易让网站会员更全面的了解相关信息,以增强对网站的关注度,下面我们介绍如何使用 DedeCMS 的专题功能来制作一个专题。 我们以超级管理员身份登陆后台,在系统的[核心]-[专题管理]中对专题进行管理。
    因为这里的常用管理同文档管理类似,一些常用操作如添加、删除、更新、推荐这些操作在这里不 做冗述,本教程主要介绍如何通过专题结合模板文件制作出自己的专题页面。 制作一个专题页面,需要准备 2 样东西:内容、模板,当然如果你没有自己设计的模板文件,系统 默认是自带了一套专题页的风格的,可以在后台[核心]-[内容模型管理],点击专题类型的模板 会查看到以下内容:
    文档模板:/templets/default/article_spec.htm [修改] 列表模板:/templets/default/list_spec.htm [修改] 频道封面模板:/templets/default/index_spec.htm [修改]
    这几个默认模板文件用户可以自己进行全局统一修改,但一般情况下都是在添加专题时在常规参数 的“专题模板”中进行指定。 当然有一些专题也不必用到已经发布在内容管理系统中的内容,这种专题直接可以用静态页面就可 以完成,不需要标签进行调用,但又希望在专题列表中显示出来,为了解决这个问题,建议用户在 制作专题页时候把专题页面做成一个不含标记的模板文件,在添加专题时候指定模板即可。 接下来我们介绍下织梦的专题功能是如何划分的。 我们以 chinaz 两个专题页面为例: DedeCms V5.3 经典解析与揭秘(https://www.wendangku.net/doc/c26779719.html,/zt/dedecms/)
    第 1 页共 6 页

    dedecms织梦二次开发视频教程

    韩顺平dedecms织梦二次开发视频教程联系方式QQ1805571531 韩顺平老师主讲,是我听过最好的织梦二次开发的视频教程,填补了国内织梦dedecms二次开发视频教程的空白!非常珍贵的一套资料,实体教室讲课全程实录,原价可是1万多的VIP课程,7天特训织梦二次开发防站实战经典再现视频教程。 视频目录如下: 第1天 06-27(no6)(dede快速入门)\2012-6-27(no6)(dede快速入门) 第2天 06_28_dedecms\(no1)[dede四张核心表的关系分析] 06_28_dedecms\(no2)[dede在DEDE中增加内容的基本步骤和如何去掉广告] 06_28_dedecms\(no3)[dede在DEDE中标签的使用 06_28_dedecms\(no4)[dede在DEDE中标签的使用和把dede首页面替换成a67首页面 06_28_dedecms\(no5)[将dede首页面栏目换成a67电影网的首页面栏目] 06_28_dedecms\(no6)[点击对应的栏目,可以看到对应的栏目列表页面] 06_28_dedecms\(no7)[电影的自定义字段] 第3天 06_29_dedecms_自定义标签\(no1)[把首页面的今日更新的数据] 06_29_dedecms_自定义标签\(no2)[sql标签的使用] 06_29_dedecms_自定义标签\(no3)[a67网的首页的添加我的电视剧,并完成各个栏目对应的列表页]

    06_29_dedecms_自定义标签\(no4)[我点击我的电影,只取出国语电影] 06_29_dedecms_自定义标签\(no5)[主页面和栏目列表的今日更新,点击后进入内容页面] 06_29_dedecms_自定义标签\capture-1 第4天 07_02_dedecms\(no1)[当小手移动到星星的时候,星星根据实际情况变化和取出热门电影] 07_02_dedecms\(no2)[显示下载地址信息] 07_02_dedecms\(no3)[当某个用户评分后,在内容页实时的显示评分值] 07_02_dedecms\(no4)[动态的取出评分值] 07_02_dedecms\(no5)[自定义搜索功能] 第5天 07_03_dedecms\(no1)[把检索结果页面,换成a67 提供的检索结果页面,并分页] 07_03_dedecms\(no2)[需求做出我们自己的分页导航] 07_03_dedecms\(no3)[在搜索时带自定义参数] 07_03_dedecms\(no4)[在搜索时带多个自定义参数,分页时可以传递到下页] 07_03_dedecms\(no5)[显示自己网站的所有分类检索,并可以按照地区来检索信息] 07_03_dedecms\(no6)[完成点击列表页的某个连接,跳转到对应的检索页面] 07_03_dedecms\(no7)[完成列表页小星星的评分功能] 第6天 07_05_数据采集\(no1)当我们点击检索结果的某个电影超链接时,如何跳转到对应的内容页

    DedeCMS基本操作说明

    栏目管理: DedeCMS 的栏目设置有相当丰富的参数,当然如果你想使用更简单些,你可 以不理会多余的参数,只填写红色字提示的表单项即可,在介绍栏目管理操 作之前,先把栏目操作的相关界面图片列出来,以便提升直观性。
    栏目管理操作页面

    增加新栏目操作,后面图片为其它选项



    这个图片为快速创建栏目的表单 创建修改栏目时,有很多小提示因此不对每项功能进行一一详细介绍,在这 里列出几个注意事项: 1、增加栏目时最基本的设置填写栏目名称和选择栏目所属的内容模型,此外 还需要注意文件保存目录的选项,内容模型是指栏目属于文章、图集、下载 等类型或自定义的内容类型,文件保存目录在没有填写的情况下系统会自动 使用栏目名称的拼音作为栏目目录; 2、栏目属性:决定当前栏目是普通的多页列表还是单个封面页或跳转到其它 网址的链接; 3、栏目交叉:栏目交叉是指一个大栏目与另一个非下级的子栏目出现交叉的 情况,相当于系统原来的副栏目功能,不过现在改在栏目里预先设置好。 例如:网站上有大栏目——智能手机、音乐手机,另外又有栏目——诺基亚-> 智能手机、诺基亚->音乐手机,这样顶级的大栏目就和另一个大栏目的子栏

    目形成了交叉,这样只需要在大栏目中指定交叉的栏目即可。(注:会自动索
    引交叉栏目的内容,但不会索引交叉栏目下级栏目的内容,这种应用也适用 于按地区划分资讯的站点。)
    4、绑定域名的设置:被绑定域名指向当前栏目目录为绑定域名的根目录,只 有顶级栏目才能绑定域名,开启了栏目的二级域名还需要修改系统参数 “是/ 否)支持多站点,开启此项后附件、栏目连接、arclist 内容启用绝对网址:”改 为“是”。 5、栏目模板、栏目生成的 HTML 和栏目文档的 HTML 的命名规则都是可以手 工指定的,可以在高级参数中填写这个选项。 6、栏目内容,对于大多数据栏目而言,这一项可以不需要填写,通常如果用 于公司简介等简单页面,可以直接在栏目里填写内容,栏目模板中用 {dede:field.content/}调用。 7、快速创建栏目——如果你不需要设置复杂的栏目参数,可以用快速创建栏 目的模式创建二级的栏目,当然如果你要创建更深层次的目录,则必须单独 创建。
    内容发布:

    2013年最新织梦dedecms5.7官方幻灯片修改教程

    分享给大家看看 dedecms 官方模板的首页幻灯片比较小,而且是调取站内的缩略图,并且只能跳转到缩略图所在的文章页面。一般情况下缩略图都比较小,这样导致了幻灯片图片显得模糊不清,大大降低了网站品质。现在,我教您随心定制首页幻灯片,并达到下面的目的: 第一、幻灯片大小随心设置,第二、幻灯片的图片不从站内缩略图提取,而是自己指定,第三、幻灯片链接跳转到指定网址(比如广告页)而不是站内文章页。第四、幻灯片上的文字调整或者去掉。最后效果如站长街https://www.wendangku.net/doc/c26779719.html,首页的幻灯片一样,当然,你可以做的更漂亮一些,我只是提供一下方法。首先修改幻灯片大小:用记事本打开首页模板文件templets/default/index.htm,找到如下代码: 复制代码 < !-- size: 280px * 192px -->