`
moqiang02
  • 浏览: 529586 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

DedeCMS织梦自定义图片字段调用出现{dede:img ..}

 
阅读更多
做站过程中碰到这样一个问题,找到解决办法收藏分享:为什么在首页用自定义列表调用出来的图片字段不是正确的图片地址,而是类似于:
{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} 
好了,我们来看一下前台的效果图:

分享到:
评论

相关推荐

    dede增加栏目图片banner或栏目图片

    图片字段: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查询,sql标签查询自定义,用于任何模板

    织梦dede中通过dede:pagelist实现中英文分页效果

    注意是修改方法的参数,为其添加$pagelang个...在页面中可以调用 {dede:pagelist listsize='5'/} {dede:pagelist pagelang='en' listsize='5'/} pagelang:en为英文,cn为中文,默认语言中文 其他功能可以自行扩展

    DEDE5.7星星评分-2013年2月1日新作首发!

     }, //自定义发布提示 }); }); var options = {  bigStarsPath : '{dede:global.cfg_phpurl/}/star/css/icons/stars.png', //星星图片路径 phpPath : '{dede:global.cfg_phpurl/}/jRating.php', //接收脚本 type :...

    dede织梦数据库字段祥解

    dede织梦数据库字段祥解

    织梦手册及相关调用文档积累

    织梦手册及相关调用文档积累 织梦手册及相关调用文档积累 织梦手册及相关调用文档积累

    织梦文章图片自动添加alt功能

    织梦文章图片自动添加alt功能:代码替换iclude对应页面就行了,就可以实现自动添加图片ALTle1.

    织梦添加自定义属性

    织梦添加自定义属性,织梦自定义属性方便织梦调取合适的内容

    dede106b1.rar

    /dede106b1.rar/dede106b1.rar/dede106b1.rar

    织梦 dede 列表Pagelist 内容prenext 中英

    织梦 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栏目内容调用成企业简介类的单页面如何实现DEDE栏目内容调用成企业简介类的单页面如何实现

    织梦dede 加强获取arcurl各种情况 自定义函数

    如何调用自定义函数################################ 1.而在模板中我们的调用方式的写法也有所改变,代码如下: {dede:loop table='dede_archives' sort='' row='4' if=''} &lt;li&gt;&lt;a href='[field:id function=...

    织梦图片批量上传图片添加栏目修改系统设置程序

    织梦图片批量上传图片添加栏目修改系统设置程序

    DELPHI反编译工具 DeDe V3.50.02

    DELPHI反编译工具 DeDe V3.50.02.rar

    织梦SQL调用文章并获取静态地址的方法

    在Dede系统SQL调用文章并获取静态地址的方法里面,我可以可以自由使用SQL调用文章并获取静态地址的方法SQL语句来配合织梦标签SQL调用文章并获取静态地址的方法进行更多的个性化调用。 如果是dede:php标签,也差不多...

    织梦CMS-淘宝客合作版织梦模块 Beta1 UTF8.rar

    织梦模块,前者为已经集成淘宝客模块的整站系统,用户只需要下载安装便可以使用淘宝客的所有功能,后者专门为已经安装织梦系统的用户准备的,只需要在系统模块管理中上传安装模块便可以同样使用淘宝客系统功能。...

    Dede帮助文件.rar

    Dede帮助文件.rar adminname|责任编辑 标签名称:adminname 功能说明:获得责任编辑名称 适用范围:仅内容模板 article_*.htm 基本语法: {dede:adminname /} 相关函数: 文件\include\taglib\adminname.lib.php第7...

    dedecms织梦首页分页插件_hexo分页_dedecms_织梦csm_

    织梦CMS默认首页文章列表是不能分页的,但是我这个网站主页做个人博客网站的,首页要用到分页,所以装了织梦首页分页插件这个插件来实现。但是装完插件后发现,首页分页URL地址是index**.html这种格式,和我原来hexo...

Global site tag (gtag.js) - Google Analytics