dedecms自定义函数调用(dedecms调用页面)

在网站开发过程中,DedeCMS(帝国CMS)作为一款功能强大的内容管理系统,被广泛使用。对于一些个性化的需求,仅仅依赖DedeCMS自带的模板标签和函数是远远不够的。这时候,自定义函数的作用就凸显出来了。本文将深入探讨DedeCMS自定义函数的调用方法,并结合实际案例进行实战应用,帮助大家更好地掌握这一技能。

一、什么是DedeCMS自定义函数?

DedeCMS自定义函数是指在DedeCMS模板文件中,通过定义一段PHP代码,实现特定功能的一种方式。自定义函数可以重复调用,提高代码复用性,使模板更加简洁易读。

二、DedeCMS自定义函数的调用方法

1. 在模板文件中定义自定义函数

“`php

function custom_function($param1, $param2) {

// 函数体

// …

return $result;

}

>

“`

2. 在模板文件中调用自定义函数

“`php

// 调用自定义函数

$result = custom_function($param1, $param2);

>

“`

三、DedeCMS自定义函数实战应用

以下是一些常见的DedeCMS自定义函数应用场景:

1. 获取文章分类名称

假设我们有一个文章分类列表,需要将其名称显示在模板中。以下是一个自定义函数实现该功能的示例:

“`php

function get_category_name($cid) {

$sql = “

dedecms自定义图片字段标签问题

之前选择的自定义图片图集

一、添加一个获取图片地址的方法

打开/include/extend.func.文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的?>上一行加入以下函数代码:(如果结尾没有?>那就直接在最下面添加)

function GetOneImgUrl($img,$ftype=1){ if($img<>''){$dtp= new DedeTagParse();$dtp->LoadSource($img); if(is_array($dtp->CTags)){ foreach($dtp->CTags as$ctag){ if($ctag->GetName()=='img'){$width=$ctag->GetAtt('width');$height=$ctag->GetAtt('height');$imgurl= trim($ctag->GetInnerText());$img=''; if($imgurl!=''){ if($ftype==1){$img.=$imgurl;} else{$img.='<img src=”'.$imgurl.'” width=”'.$width.'” height=”'.$height.'”/>';}}}}}$dtp->Clear(); return$img;}}

可以直接用下面的方法调用

[field:自定义图片字段名 function=”GetOneImgUrl(@me,显示类型)”/]

最终使用方法。

{dede:arclist typeid='12' addfields='datu' channelid='17' limit='0,7'}

<li><a href=”[field:arcurl/]” target=”_blank”><img border=”0″ src=”[field:datu%20function='GetOneImgUrl(@me,1)'/]”></a></li>

{/dede:arclist}

最终调用到这个图片地址。

关于dedecms修改模板的一个基础问题

◆DedeCms模板安装/制作概述:

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

功能:会员后台的模板。

四、二次开发

DedeCms主要的模板解析类是 include/inc_arcpart_view.php、include/inc_arclist_view.php、include/inc_archives_view.php,这些类是与pub_dedetag.php一起工作的,如果你想为文档模板、列表模板、板块模板增加一些功能,可以直接修改这几个类的ParseTemplet()或ParseTempletsFirst()这类的方法,把标记名称,属性对应试相应该的功能函数即时。

希望能帮到你

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享