dedecms V5.6自定义模型添加上传图片字段,list列表生成出错的解决方法
问题:我自定义模型里,添加了一个自定义字段是上传图片的。该字段如果留空,不上传图片,list列表页显示一切正常。
上传图片后,文档里图片显示正常。但生成list列表页出现以下错误:
Fatal error: Call to a member function GetInnerText() on a non-object in
D:\PC_webserver\phproot\include\taglib\channel\img.lib.php on line 42
img.lib.php on line 42是 $innerTmp = $arcTag->GetInnerText();
如果把list标签改成arclist又列表可以了,但arclist不能分页啊。
上传图片字段里代码是:
{dede:img text='' width='146' height='55'} /uploads/100815/1-100Q5091253304.jpg {/dede:img}
折腾好几天了也没找到原因,请各位帮帮忙!
原因及完美解决方法:
此dedecms V5.3-V5.6的BUG,不修改程序代码的解决方法,进入后台的自建模型的字段管理界面,在图片的字段管理里取消“使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择) ”列表用缩略图就可以了,如下图所示:
---------------------------------------------------------------------------------------------
解决方法二:
我也碰到这个问题,查了论坛也没看到官方的修改,我也懒得去一个一个改,我没有指定{dede:img}{/img}这个标签的模板,自定义的图片类型是没有指定模板的
我就直接修改img.lib.php这个文件
把42行代码改为
//debug by risun 2009-5-4
//$innerTmp = $arcTag->GetInnerText();
$innerTmp = "";
再把60行的
//debug by risun 2009-5-4
// if(is_object($arcTag) && $arcTag->GetAtt('pagesize') > 0)
// {
// $pagesize = $arcTag->GetAtt('pagesize');
// }
注释掉就行了
我为了以后好修改我就加了注释
也可以直接把40行的代码
//$innerTmp = $arcTag->GetInnerText(); 前加// 或直接删除
60行的
// if(is_object($arcTag) && $arcTag->GetAtt('pagesize') > 0)
// {
// $pagesize = $arcTag->GetAtt('pagesize');
// }
加//或删除
----------------------------------------------------------------------------
解决方法三:
自定义模型遇到错误
Fatal error: Call to a member function GetInnerText() on a non-object in \include\taglib\channel\img.lib.php on line 42
将 $innerTmp = $arcTag->GetInnerText();替换为
//扬帆修复bug 2010-4-23 16:46
if($arcTag=="")
{$innerTmp = trim($arcTag);}
else
{$innerTmp = trim($arcTag->GetInnerText());}
--------------------------------------------------------------------------------------------
页:
[1]