做網站,我們是認真的!

網站適配電腦+手機端,僅1280元,送2000M阿里云服務器,送com域名+免費備案
網站前端采用靜態系統顯示,后端動態管理,我們承諾網站包收錄,完成網站之后把源碼給客戶!

觀點

互聯網+時代,說建站,談運營與網絡營銷

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

時間:2020-12-15

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

當無圖片時候就調用出來了暫無圖片。

0
首頁
案例
關于
聯系
凯时平台