DEDECMS模板二次开发

阅读: 评论:0

2024年1月28日发(作者:)

DEDECMS模板二次开发

DEDECMS模板二次开发

篇一:DedeCMS二次开发手册

DedeCMS V5.7二次开发手册

一、模板篇

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

DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用

{cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2

等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。

一、概念,设计和使用模板,必须要理解下面几个概念

1、板块(封面)模板:

指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,

系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

2、列表模板:

指网站某个栏目的所有文章列表的模板,一般用 “list_识别” 命名。

3、档案模板:

表示文档查看页的模板,如文章模板,一般用 “article_识别” 命名。

4、其它模板:

一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

二、 命名,DedeCMS模板默认命名规则如下

1、模板保存位置:

模板目录:{cmspath} /templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}

2、 模板文件命名规范:

(1)index_识别: 表示板块(栏目封面)模板;

(2)list_识别: 表示栏目列表模板;

(3)article_识别: 表示内容查看页(文档模板,包括专题查看页);

(4): 搜索结果列表模板;

(5): 主页模板;

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

例:list_ 表示是就是内容类型为图片集的栏目默认列表模板。

article_ 表示的是文章查看页模板。

三、其它模板说明

1、默认底层模板

位置: {cmspath}/templets/system

功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。

2、插件目录模板

位置: {cmspath}/templets/plus

功能:评论、友情链接、RSS地图等模板。

3、会员后台模板

位置: {cmspath}/member/templets

功能:会员后台的模板。

四、二次开发

在V5.3中已经将标签开发分离出来,您可以通过后台[模板]-[标签代码管理],点击“新增加一个新的标签”来创建一个自己的标签,标签文件名为:标签名.

接口函数定义为:function lib_标签名(&$ctag,&$refObj),返回值是结果字符串

修改标签时为了防止出错,您也可以修改它的名称(同时修改文件名和函数名),这样等同继承了原来标签的代码建立一个新的标签。

1.2、模板标签语法简介

织梦的模板标签类似于XML格式,所有的模板都含有定界符,默认情况下是{dede:*}和{/dede:*},“*”代表模板标记名称。

一般情况下{dede:*}和{/dede:*}是成对出现的,例如:

例1-1:

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

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


[field:description/]...

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


{/dede:arclist}

上面的{dede:arclist}和{/dede:arclist}成对出现在模板文件中,并且在两个标签当中包含了底层模板(innertext)。

底层模板(Innertext),底层模板实际上就是对于有多条记录的模板输出,用户手工去指定单个记录的样式。

标签还有一类出现形式是{dede:*/},通常以这种形式出现都是输出变量、或者不含底层模板的内容。

例如:1-2

{dede:_webname/}

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

如果用户没有指定单个记录的样式,系统部分标签都含有默认的底层模板,具体可以查看{cmapath}/templets/system/文件夹下面的文件,这里面都是系统的底层模板文件。

注释

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

例1-3:

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

2

[field:titlemet="这是文章标题标签"/]


/>

3

[field:description met="这是摘要标签"/]...

href="[field:arcurl met="这是文章链接标签"/]">[查看全文]


4 {/dede:arclist}

在模板引擎将上述标签解析为html的时候,met的内容是被忽略掉不去解析的,用户在阅读模板标记的时候可以更好的理解标签的意义。

函数

每一个织梦的标签都可以使用自定义函数对其进行扩展,自定义函数内容主要用于对当前标签输出内容进行处理。

例1-4:

{dede:标记名称function='youfunction("参数一","参数二","@me")'/}

其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:

{dede:e 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、 公用函数

获得当前的脚本网址

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.2、 数据库类

系统会自动载入 文件,并用

$dsql = $db = new DedeSql(false);

进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql(来自: 小龙文 档网:dedecms模板二次开发) 或 $db 进行操作,为了防止错误,操作完后不必关闭数据库。

常用的方法:

1、执行一个非查询类型的SQL语句,如 insert 、create 、update 等

$rs = $db->ExecuteNoneQuery($sql);

返回值为是否执行成功。

2、执行一个非查询类型的SQL语句,并返回成功记录数

$rs = $db->ExecuteNoneQuery2($sql);

篇二:DedeCMS二次开发手册

DedeCMS V5.3二次开发手册

一、模板篇

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

DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用

{cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2

等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。

一、概念,设计和使用模板,必须要理解下面几个概念

1、板块(封面)模板:

指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

2、列表模板:

指网站某个栏目的所有文章列表的模板,一般用 “list_识别” 命名。

3、档案模板:

表示文档查看页的模板,如文章模板,一般用 “article_识别” 命名。

4、其它模板:

一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

二、 命名,DedeCMS模板默认命名规则如下

1、模板保存位置:

模板目录:{cmspath} /templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}

2、 模板文件命名规范:

(1)index_识别: 表示板块(栏目封面)模板;

(2)list_识别: 表示栏目列表模板;

(3)article_识别: 表示内容查看页(文档模板,包括专题查看页); (4): 搜索结果列表模板;

(5): 主页模板;

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

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

三、其它模板说明

1、默认底层模板

位置: {cmspath}/templets/system

功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。

2、插件目录模板

位置: {cmspath}/templets/plus

功能:评论、友情链接、RSS地图等模板。

3、会员后台模板

位置: {cmspath}/member/templets

功能:会员后台的模板。

四、二次开发

在V5.3中已经将标签开发分离出来,您可以通过后台[模板]-[标签代码管理],点击“新增加一个新的标签”来创建一个自己的标签,标签文件名为:标签名.

接口函数定义为:function lib_标签名(&$ctag,&$refObj),返回值是结果字符串

修改标签时为了防止出错,您也可以修改它的名称(同时修改文件名和函数名),这样等同继承了原来标签的代码建立一个新的标签。

1.2、模板标签语法简介

织梦的模板标签类似于XML格式,所有的模板都含有定界符,默认情况下是{dede:*}和{/dede:*},“*”代表模板标记名称。

一般情况下{dede:*}和{/dede:*}是成对出现的,例如:

例1-1:

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

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


[field:description/]...

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


?

{/dede:arclist}

上面的{dede:arclist}和{/dede:arclist}成对出现在模板文件中,并且在两个标签当中包含了底层模板(innertext)。

底层模板(Innertext),底层模板实际上就是对于有多条记录的模板输出,用户手工去指定单个记录的样式。

标签还有一类出现形式是{dede:*/},通常以这种形式出现都是输出变量、或者不含底层模板的内容。

例如:1-2

{dede:_webname/}

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

如果用户没有指定单个记录的样式,系统部分标签都含有默认的底层模板,具体可以查看{cmapath}/templets/system/文件夹下面的文件,这里面都是系统的底层模板文件。

注释

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

例1-3:

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

2

[field:titlemet="这是文章标题标签"/]


/>

3

[field:description met="这是摘要标签"/]...

href="[field:arcurl met="这是文章链接标签"/]">[查看全文]


4 {/dede:arclist}

在模板引擎将上述标签解析为html的时候,met的内容是被忽略掉不去解析的,用户在阅读模板标记的时候可以更好的理解标签的意义。

函数

每一个织梦的标签都可以使用自定义函数对其进行扩展,自定义函数内容主要用于对当前标签输出内容进行处理。

例1-4:

{dede:标记名称function='youfunction("参数一","参数二","@me")'/}

其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如: {dede:e

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、 公用函数

获得当前的脚本网址

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.2、 数据库类

系统会自动载入 文件,并用

$dsql = $db = new DedeSql(false);

进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作,为了防止错误,操作完后不必关闭数据库。

常用的方法:

1、执行一个非查询类型的SQL语句,如 insert 、create 、update 等

$rs = $db->ExecuteNoneQuery($sql);

返回值为是否执行成功。

2、执行一个非查询类型的SQL语句,并返回成功记录数

$rs = $db->ExecuteNoneQuery2($sql);

篇三:dede,织梦二次开发范例--模板篇

模板篇

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

DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的

模板,此外,DedeCMS也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用

{cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2

等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。

一、概念,设计和使用模板,必须要理解下面几个概念

1、板块(封面)模板:

指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

2、列表模板:

指网站某个栏目的所有文章列表的模板,一般用 “list_识别” 命名。

3、档案模板:

表示文档查看页的模板,如文章模板,一般用 “article_识别” 命名。

4、其它模板:

一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

二、 命名,DedeCMS模板默认命名规则如下

1、模板保存位置:

模板目录:{cmspath} /templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件} 2、 模板文件命名规范:

(1)index_识别: 表示板块(栏目封面)模板;

(2)list_识别: 表示栏目列表模板;

(3)article_识别: 表示内容查看页(文档模板,包括专题查看页); (4): 搜索结果列表模板;

(5): 主页模板;

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

例:list_ 表示是就是内容类型为图片集的栏目默认列表模板。

article_ 表示的是文章查看页模板。

三、其它模板说明

1、默认底层模板

位置: {cmspath}/templets/system

功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。

2、插件目录模板

位置: {cmspath}/templets/plus

功能:评论、友情链接、RSS地图等模板。

3、会员后台模板

位置: {cmspath}/member/templets

功能:会员后台的模板。

四、二次开发

在V5.3中已经将标签开发分离出来,您可以通过后台[模板]-[标签代码管理],点击“新增加一个新的标签”来创建一个自己的标签,标签文件名为:标签名.

接口函数定义为:function lib_标签名(&$ctag,&$refObj),返回值是结果字符串

修改标签时为了防止出错,您也可以修改它的名称(同时修改文件名和函数名),这样等同继承了原来标签的代码建立一个新的标签。

1.2、模板标签语法简介

织梦的模板标签类似于XML格式,所有的模板都含有定界符,默认情况下是{dede:*}和{/dede:*},“*”代表模板标记名称。

一般情况下{dede:*}和{/dede:*}是成对出现的,例如:

例1-1:

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

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


[field:description/]...

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


?

{/dede:arclist}

上面的{dede:arclist}和{/dede:arclist}成对出现在模板文件中,并且在两个标签当中包含了底层模板(innertext)。

底层模板(Innertext),底层模板实际上就是对于有多条记录的模板输出,用户手工去指定单个记录的样式。

标签还有一类出现形式是{dede:*/},通常以这种形式出现都是输出变量、或者不含底层模板的内容。

例如:1-2

{dede:_webname/}

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

如果用户没有指定单个记录的样式,系统部分标签都含有默认的底层模板,具体可以查看{cmapath}/templets/system/文件夹下面的文件,这里面都是系统的底层模板文件。

注释

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

例1-3:

1

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

[field:titlemet="这

是文章标题标签"/]


3

[field:description met="这是摘要标签"/]...

href="[field:arcurl met="这是文章链接标签"/]">[查看全文]


4 {/dede:arclist}

在模板引擎将上述标签解析为html的时候,met的内容是被忽略掉不去解析的,用户在阅读模板标记的时候可以更好的理解标签的意义。

函数

每一个织梦的标签都可以使用自定义函数对其进行扩展,自定义函数内容主要用于对当前标签输出内容进行处理。

例1-4:

{dede:标记名称function='youfunction("参数一","参数二","@me")'/}

其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如: {dede:e

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。

DEDECMS模板二次开发

本文发布于:2024-01-28 06:52:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063959535593.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模板   标签   默认   标记   文件   内容   系统   属性
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23