dedecmsV5.7自定义图片字段调用方法

正常情况下,在列表页(也就是 {dede:list}标签)调用附加的图片类型字段则会出现Fatal error: Call to a member function GetInnerText() on a non-object in /include/taglib/channel/img.lib.php”此类错误,解决方案如下:

打开/include/taglib/channel/img.lib.php文件并找到



$innerTmp = $arcTag->GetInnerText();

将其修改为


$innerTmp = ($arcTag=="") ? trim($arcTag) : trim($arcTag->GetInnerText());

这 样一来,附加的图片字段就可以正常调用了,不过调出来的并非纯粹的图片路径,而是包含li标签的一大段代码,这是因为调用附加图片字段时解析了系统模板里 面的channel_article_image.htm造成的,打开/templets/system /channel_article_image.htm可以看到如下内容:

<li> <a href=‘[field:linkurl/]‘ target=‘_blank‘><img src=‘[field:imgsrc/]‘ [field:imgwidth /] border=‘0‘/></a> <br /> <a href=‘[field:linkurl/]‘ target=‘_blank‘>[field:text /]</a> </li>

将其修改为

[field:imgsrc/] 或者是在文章页调用的时候直接调用底层模板
{dede:field.字段名}       <a class="" href=‘[field:linkurl/]‘ target=‘_blank‘><img src=‘[field:imgsrc/]‘ [field:imgwidth /] border=‘0‘/></a> {/dede:field.字段名}
 

即可调用到纯粹的图片路径了。

另外要注意的是,如果{dede:list}里面无法取出附加字段,一般是因为dede_channeltype表中listfields字段中未添加附加字段名称造成的。

如果图片为空时,调用会显示“无图片信息!”,我们让他显示暂无图片,可以修改include/taglib/channel下面的img.lib.php

找到以下这句代码

return "无图片信息!";

替换成

return "<a href=‘javascript:()‘><img width=‘503‘ height=‘411‘ src=‘/images/defaultpic.gif‘></a>";

当无图片时候就调用出来了暂无图片。

 

AiteCms,企业模板快速建站专家,点击了解更多

转载自织梦模板教程(www.dede58.com

时间: 2024-08-25 22:39:37

dedecmsV5.7自定义图片字段调用方法的相关文章

织梦自定义图片字段调用图片地址

dedecms模型添加的图片数据类型,在前台模板输出后是带有html代码的,我们在使用时只是需要图片地址就行了. 这样我们只需要写个自定义方法从字符串中把图片提取出来即可. 打开 /include/extend.func.php 在最下面添加 /** * 自定义图片字段调用图片地址 * * @access public * @param string $fieldname 字段名 * @param string $ftype 输出样式 * @return string */ if(!functi

织梦DedeCms频道模型新建字段调用方法

不少朋友在使用织梦DedeCms建站的过程中可能会用到系统模型里面没有的字段,比如我想在内容模型里面加上一个价格的字段,这样就需要在频道模型里面添加上自定义字段,在发表文章的时候,可以在后台填入改字段的数值,再将调用代码插入到文件里面,生成html文件的时候,就会出现该字段的结果了. 修改方法如下: 巩义网站建设 1.进织梦DedeCms后台后打开 核心 -> 频道模型 -> 内容模型管理. 这样就会看到织梦DedeCms集成的几个内容模板,比如商品.图片集.文章和软件之类的,然后点击你需要修

DEDECMS首页,列表页调用自定义图片字段,只显示图片地址

第一步:将自定义字段“图片”类型改为“图片(仅地址)”类型. 第二部:在{dede:arclist row='1' addfields='stu' titlelen='24' orderby='pubdate' typeid='35' channelid='1' } 中添加一句listtype='image'就可以解决问题了.

dede新增字段调用方法

各位在使用{dede:channel }标签的时候,难免会遇到因为现在字段不能满足业务需求,需要新增的情况(具体怎么新增字段自行百度). 但是新增的字段通过DEDE的标签是不能直接使用的,现在博主介绍下怎么添加字段后如何调用: 1.找到/include/taglib/channel.lib.php文件: 2.搜索   $type==  : 3.将找到的sql语句添加新增的字段名; 例如: if($type=='top') { $sql = "SELECT id,typename,typedir,

织梦添加和调用自定义字段的方法

织梦自定义字段要想在任何位置任何模版中调用或者在{dede:list }和{dede:arclist }标签中调用,需要特殊设置.自定义字段就是列表附加字段自定义的字段. 一,织梦如何添加自定义字段:网站后台>核心>频道模型>内容模型管理>选择要添加自定义字段的频道模型,这里以图片集频道举例 注意:创建字段,前台参数这里“使字段可以在列表的底层模板中获得”这个必须勾选 在字段管理>添加新字段中添加(价格属性) 在基本设置里>列表附加字段中添加jiage(可以在列表模板{

dede在内容模型中新增字段的调用方法

今天需要在文章的内容模型中增加一些新的字段,增加了两个图片类型的字段,可(字段无法显示)前台调用不出来. 我们以在首页调用为例: Dedecms模板中默认调用文章标题的标签如下: {dede:arclist row=6 titlelen=32} [field:dbtp] {/dede:arclist} 那么我们调用自定义字段就是在这个基础上加以修改来实现的,我们以增加两个图片为例,具体标签表现为: {dede:arclist row=8 titlelen=32 addfields='dbtp'

Oracle自定义数据类型 2 (调用对象方法)

调用对象方法 调用对象方法基于类型创建表后,就可以在查询中调用对象方法 A. 创建基于对象的表语法: create   table   <表名>   of   <对象类型>意义:此表具有该类型和member方法的所有属性, 我们不能通过DBA   STUDIO的表数据编辑器来编辑数据. 例:create   table   FLIGHT_SCH_TAB   of   FLIGHT_SCH_TYPE insert   into   FLIGHT_SCH_TAB     values(

phpcms_v9 多图字段 内容页,首页,分页自定义字段调用

phpcms_v9 多图字段 内容页,首页,分页自定义字段调用 说明:自定义多图字段名 shigongtu1 内容页调用{loop $shigongtu $r}     <img src="{$r[url]} " title="测试"/>{/loop} 2 首页,分页调用第一种推荐位调用自定义字段在模型里加好自定义字段后,必须把“在推荐位标签中调用”点击“是“然后用同一样的方法去调节数据就OK了,记住,如果你加了文章,必须去更新文章才会显示,自定义段在推

利用反射机制,获取类的字段、方法、并实现简单调用

这篇文章是为之后要介绍Android的ICO框架做预备的,所以,如果想最近学习Android的ICO框架的同学,可以稍微看一下. 首先,简单介绍一下Java里面的反射. JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 不知道这样的一段解释,你能否看懂.如果更简单的说,反射就是能够根据你给出类名实例化出一个实实在在的对象.所以,对象的实例