您现在的位置是:首页 > cms教程 > DedeCMS教程DedeCMS教程
直接调用dede织梦自定义字段图片地址的方法
王悟营2023-10-05DedeCMS教程已有人查阅
导读在默认的自定义图片字段模型调用时,一般调用出来是:这样的形式。 非常明显,这样是不能正确显示的,这是自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数。
在默认的自定义图片字段模型调用时,一般调用出来是:
假如我们要制作如下效果图中的幻灯片,方便在后台直接更改图片。而使用广告图片显然没法实现,我这里用的是新建一个模型,然后简历一个这个模型的栏目,再以发布文章的形式把图片添加进去,这个整个流程来说下。
一、新建一个模型,这个模型下共新添加两个字段:大图、小图。至于链接地址我直接使用的是跳转地址。其他设置默认即可。
二、新建一个栏目,模型选择刚才新建的模型”幻灯片“
三、设置好以后在该栏目下新建需要显示的文档数目即可。我这里需要7个大图,那么我就建立了七个文档。
新建七个文档
四、在建立文档的时候填写的方法如下图,我这里因为幻灯片点击需要调整到其他页,我没用新的字段,直接用的跳转地址更方便。
五、下面就是开始调用了,我是用在头部的。
如果直接用一般的调用方法,直接用调用字段名的方法是显然就会出现如开头所说的现象。下面我们就来开始修改下程序,以便可以直接调用图片地址:
六、创建自定义函数
打开 /include/extend.func. 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的?>上一行加入以下函数代码:(如果结尾没有?>那就直接在最下面添加)
只举例调用datu字段的方法,那么调用方式有以下两种:
至此全部修改完毕。
{dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img}
这样的形式。 非常明显,这样是不能正确显示的,这是自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数。这里我从新建模型到自定义字段的使用来举例说明下怎么直接调用图片地址。假如我们要制作如下效果图中的幻灯片,方便在后台直接更改图片。而使用广告图片显然没法实现,我这里用的是新建一个模型,然后简历一个这个模型的栏目,再以发布文章的形式把图片添加进去,这个整个流程来说下。
一、新建一个模型,这个模型下共新添加两个字段:大图、小图。至于链接地址我直接使用的是跳转地址。其他设置默认即可。
二、新建一个栏目,模型选择刚才新建的模型”幻灯片“
三、设置好以后在该栏目下新建需要显示的文档数目即可。我这里需要7个大图,那么我就建立了七个文档。
新建七个文档
四、在建立文档的时候填写的方法如下图,我这里因为幻灯片点击需要调整到其他页,我没用新的字段,直接用的跳转地址更方便。
五、下面就是开始调用了,我是用在头部的。
如果直接用一般的调用方法,直接用调用字段名的方法是显然就会出现如开头所说的现象。下面我们就来开始修改下程序,以便可以直接调用图片地址:
六、创建自定义函数
打开 /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,显示类型)"/]
比如:我们的自定义图片字段名为 datu 和 xiaotu,只举例调用datu字段的方法,那么调用方式有以下两种:
[field:datu function='GetOneImgUrl(@me,0)'/] 调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />)
[field:datu function='GetOneImgUrl(@me,1)'/] 只调用图片地址,一般可用于背景图嵌套
八、具体到调用代码里面的调用方法就是:
{dede:arclist typeid='12' addfields='datu' channelid='17' limit='0,7'}
<li><a href="[field:arcurl/]" target="_blank"><img border="0" src="[field:datu function='GetOneImgUrl(@me,1)'/]"></a></li>
{/dede:arclist}
注意:上面蓝色的为要调用的字段要写进去,紫色为模型的颜色。至此全部修改完毕。
本文标签:
很赞哦! ()
相关教程
图文教程
dedecms中文章页面上一篇下一篇链接处怎么增加文章摘要
DedeCMS系统默认的是在文章的上一篇和下一篇的链接只显示标题,但是有时我们希望显示其他信息,比如文章的摘要。找到arc.archives.class.php文件,在include目录下面
dedecms把数据保存到数据库附加表 `dede_addonimages` 时出错
报错内容:把数据保存到数据库附加表`dede_addonimages`时出错,请把相关信息提交给DedeCMS官方。
怎么调用织梦cms文档中的所有图片
织梦CMS如果发布的文档中的有图片,那么系统默认缩略图为第一张,即使你的文档中有多张图片,也只显示一张,那么如何调用当前文档中的所有图片呢?
dedecms参考手册函数及文件大全整理
DedeCms参考手册 函数及文件大全,方便制作模板的朋友,有些函数可能用得到文件:include/inc_function.php 系统默认会载入此文件
相关源码
-
(自适应)大气网络公司工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为网络技术服务类企业打造,具备高度可定制性。通过简洁现代的设计语言展现企业专业形象,后台数据实时同步机制确保多终端内容一致性,查看源码 -
(自适应响应式)英文外贸电子产品手机配件网站pbootcms模板专业级外贸网站模板基于PbootCMS内核开发,为电子产品跨境贸易企业设计。采用响应式布局技术,确保电脑、平板、手机等设备访问时自动适配显示效果。数据实时同步管理,一次编辑全平台生效。查看源码 -
(自适应)营销型健身器材产品设备类pbootcms模板网站为健身器材企业打造的营销型网站模板,基于PbootCMS开源内核开发。采用HTML5响应式架构,PC与移动端数据实时同步,适配多终端展示场景。查看源码 -
(自适应)帝国CMS7.5模板淘宝客导购博客文章源码本模板基于帝国CMS7.5内核深度开发,为电商导购类网站设计。采用响应式布局技术,确保在手机、平板及电脑端均能获得优质浏览体验。模板内置商品推荐模块与优惠信息展示区,可快速搭建专业导购平台。查看源码 -
(自适应)大型农业机械设备水稻玉米收割机网站pbootcms源码下载本模板基于PbootCMS内核开发,为农业机械设备制造与销售企业设计,特别适合水稻玉米收割机、拖拉机、播种机等农用机械展示。模板充分考虑了农机行业的特性,从产品展示到技术参数,从作业案例到售后服务查看源码 -
(自适应响应式)水墨风白酒酿制酒业酒文化酒类产品网站源码下载本模板基于PbootCMS内核开发,为酒类企业打造的水墨风响应式网站解决方案。采用传统东方美学设计语言,呈现白酒文化底蕴,自适应移动端展示效果,数据实时同步更新,助力酒企建立专业数字化形象。查看源码
| 分享笔记 (共有 篇笔记) |
