做站过程中碰到这样一个问题,找到解决办法收藏分享:为什么在首页用自定义列表调用出来的图片字段不是正确的图片地址,而是类似于:
{dede:imgtext=''width='270'height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img} 这样的格式!
非常明显,这样是不能正确显示的,这是织梦自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数,其实现方式为:
一、实现方法
1)创建自定义函数
打开/include/extend.func.php文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个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;
}
}
保存后关闭即可。
2)函数调用方法
问:我们创建好函数以后,那么这个函数要如何来调用呢?
答:本函数的调用方法为:
[field:自定义图片字段名function="GetOneImgUrl(@me,显示类型)"/]
比如:我们的自定义图片字段名为imgurl,那么调用方式有以下两种:
[field:imgurlfunction='GetOneImgUrl(@me,0)'/]<!--调用图片的信息,自动调用宽度和高度(已包含Html代码的<img/>标签)-->
[field:imgurlfunction='GetOneImgUrl(@me,1)'/]<!--只调用图片地址,一般可用于背景图嵌套-->
二、示例演示
1)模型字段添加
进入网站后台,点击[核心]——[内容模型管理],点击“普通文章”的“更改”按钮,进入编辑界面,切换到“字段管理”选项,点击“添加新字段”,如图:
创建好字段以后,我们在增加或编辑文档时候,那么就会有这个字段了,如图:
上传好你要显示的图片以后,保存即可。
2)前台调用
原本我们前台调用这个字段的方法,就是通过arclist标签的channelid与addfields两个参数来配合调用(点击查看arclist的标签详解),这里不再重复的一一熬述。但大体的自定义字段的方法是这样的:
{dede:arclist row='2' channeld='1' addfields='自定义字段1,自定义字段2'}
底层模板 insertext
{/dede:arclist}
运用到我们刚才的这个函数,调用方法为:
{dede:arclist row='5' orderby='id' channelid='1' addfields='imgurl'}
<li>[field:title/][field:imgurl function='GetOneImgUrl(@me,0)'/]</li>
{/dede:arclist}
或者使用sql语句查询:
{dede:arclist typeid='~id~' flag = 'p'}
[field:id runphp="yes"]
$row = $GLOBALS['dsql']->GetOne("Select img From `dede_addonimages` where aid=@me");
@me = $row['img'];
@me=GetOneImgUrl(@me,1);
[/field:id]
{/dede:arclist}
好了,我们来看一下前台的效果图:
分享到:
相关推荐
图片字段:arcpic 调用图片路径:{dede:field.arcpic/} 执行下面的sql: ALTER TABLE `dede_arctype` ADD `arcpic` VARCHAR( 200 ) NULL 注意事项:如果你只给父栏目添加了图片,而子栏目想用父栏目图片请使用...
包含要搭建一个织梦网站的所有要点及搭建网站所有常用的标签,网站根目录:{dede:global.cfg_cmsurl/} 网页主页链接:{dede:global.cfg_indexurl/} 网站描述:{dede:global.cfg_description/} 网站关键字:{dede:...
织梦自定义sql查询,sql标签查询自定义,用于任何模板
注意是修改方法的参数,为其添加$pagelang个...在页面中可以调用 {dede:pagelist listsize='5'/} {dede:pagelist pagelang='en' listsize='5'/} pagelang:en为英文,cn为中文,默认语言中文 其他功能可以自行扩展
}, //自定义发布提示 }); }); var options = { bigStarsPath : '{dede:global.cfg_phpurl/}/star/css/icons/stars.png', //星星图片路径 phpPath : '{dede:global.cfg_phpurl/}/jRating.php', //接收脚本 type :...
dede织梦数据库字段祥解
织梦手册及相关调用文档积累 织梦手册及相关调用文档积累 织梦手册及相关调用文档积累
织梦文章图片自动添加alt功能:代码替换iclude对应页面就行了,就可以实现自动添加图片ALTle1.
织梦添加自定义属性,织梦自定义属性方便织梦调取合适的内容
/dede106b1.rar/dede106b1.rar/dede106b1.rar
织梦 dede 列表Pagelist 内容prenext 中英 首先需要找到安装目录下的include/arc.archives.class.php 注意是修改方法的参数,为其添加$pagelang个参数; 在页面中可以调用 {dede:prenext get='next' pagelang='...
1.001版本——20150629 --------------更新内容-------------- 1、降序/升序 标签未生成 2、友情链接标签生成错误 3、列表类型标签结束语句...8、列表页 titile标签改为 {dede:field.seotitle/} 9、新增织梦教程选项。
DEDE栏目内容调用成企业简介类的单页面如何实现DEDE栏目内容调用成企业简介类的单页面如何实现DEDE栏目内容调用成企业简介类的单页面如何实现
如何调用自定义函数################################ 1.而在模板中我们的调用方式的写法也有所改变,代码如下: {dede:loop table='dede_archives' sort='' row='4' if=''} <li><a href='[field:id function=...
织梦图片批量上传图片添加栏目修改系统设置程序
DELPHI反编译工具 DeDe V3.50.02.rar
在Dede系统SQL调用文章并获取静态地址的方法里面,我可以可以自由使用SQL调用文章并获取静态地址的方法SQL语句来配合织梦标签SQL调用文章并获取静态地址的方法进行更多的个性化调用。 如果是dede:php标签,也差不多...
织梦模块,前者为已经集成淘宝客模块的整站系统,用户只需要下载安装便可以使用淘宝客的所有功能,后者专门为已经安装织梦系统的用户准备的,只需要在系统模块管理中上传安装模块便可以同样使用淘宝客系统功能。...
Dede帮助文件.rar adminname|责任编辑 标签名称:adminname 功能说明:获得责任编辑名称 适用范围:仅内容模板 article_*.htm 基本语法: {dede:adminname /} 相关函数: 文件\include\taglib\adminname.lib.php第7...
织梦CMS默认首页文章列表是不能分页的,但是我这个网站主页做个人博客网站的,首页要用到分页,所以装了织梦首页分页插件这个插件来实现。但是装完插件后发现,首页分页URL地址是index**.html这种格式,和我原来hexo...