1. 程式人生 > >dedecmsV5.7自定義圖片字段調用方法

dedecmsV5.7自定義圖片字段調用方法

類型 tmp lds dedecms blank www tpi java 解決方案

正常情況下,在列表頁(也就是 {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)

dedecmsV5.7自定義圖片字段調用方法