您现在的位置是:首页 > 教程 > dedecms教程dedecms教程
直接调用dede织梦自定义字段图片地址的方法
王悟营2023-10-05 12:29:26dedecms教程已有人查阅
导读在默认的自定义图片字段模型调用时,一般调用出来是:这样的形式。 非常明显,这样是不能正确显示的,这是自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数。
在默认的自定义图片字段模型调用时,一般调用出来是:
假如我们要制作如下效果图中的幻灯片,方便在后台直接更改图片。而使用广告图片显然没法实现,我这里用的是新建一个模型,然后简历一个这个模型的栏目,再以发布文章的形式把图片添加进去,这个整个流程来说下。
一、新建一个模型,这个模型下共新添加两个字段:大图、小图。至于链接地址我直接使用的是跳转地址。其他设置默认即可。
二、新建一个栏目,模型选择刚才新建的模型”幻灯片“
三、设置好以后在该栏目下新建需要显示的文档数目即可。我这里需要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后台设置“附件保存形式(按data函数日期参数)”参数无效
最近在做一个QQ站的时候,想dedecms获取的远程图片按“年月”这样的文件目录存放如:20128/xxx.jpg,我用的是dedecms5.7,在后台搜寻了番 -
优化织梦模板自带的网站地图的方法
用织梦做网站的都知道,在它的robots.txt是屏蔽掉了data目录的,可是,不巧DEDE默认的网站地图是在data下的,为了让蜘蛛更好的爬行 -
织梦搜索指定栏目下文章的实现方法
有时候我们需要搜索指定栏目下的文章,如何实现呢?找到根目录下的plus文件夹里的search.php,复制这个文件,然后重命名为jobsearch.php -
dedecms列表页自动统计当前栏目文档总数的方法
今天在百度知道看到一个关于列表页自动统计当前栏目文档总数的方法的提问,借此整理下,分享一下方法给大家,希望对大家有所帮助。
留言与评论 (共有 条评论) |
本栏推荐
相关标签
大家喜欢
- dedecms织梦后台登录提示Call to undefined function getcururl()错误
- dedecms5.7转移data目录后验证码无法显示怎么办
- 织梦dedecms首页怎么调用留言板的实例代码
- 织梦cms发布文章下载远程图片缩略图片限制尺寸的方法
- 织梦dedecms中修复mysql数据库表的方法
- 火车头DedeCMS5.6免登陆火车头发布接口
- 织梦dede提示系统无此标签,可能已经移除的原因和解决方法
- 织梦dedecms发文章上传图片提示:Upload filetype not allow怎么办
- dedecms自定义函数的使用方法实例
- dede织梦后台登陆提示验证码错误的修改方法