dedecms列表調(diào)用自定義字段圖形地址

步驟 1

\include\extend.func.php 在最下面添加

/**

?*??自定義圖片字段調(diào)用圖片地址

?*

?*?@access????public

?*?@param?????string??$fieldname?? 字段名

?*?@param?????string??$ftype ?? 輸出樣式

?*?@return????string

?*/

if(!function_exists('GetImgUrl'))

{

function?GetImgUrl($fieldname,?$ftype?=?1)

{

if($fieldname?!=?'')

{

$dtp?=?new?DedeTagParse();

$dtp->LoadSource($fieldname);

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?.=?'';

}

}

}

}

}

$dtp->Clear();

return?$img;

}

}

}

步驟 2

打開\templets\system\channel_article_image.htm 清空所有東西,只留下

[field:imgsrc/]

步驟3

前臺調(diào)用方法

[field:自定義字段名 /]??



以上方法有問題,親測下面的方法有效。

做站過程中碰到這樣一個問題,找到解決辦法收藏分享:為什么在首頁用自定義列表調(diào)用出來的圖片字段不是正確的圖片地址,而是類似于:

{dede:img?text=''?width='270'?height='129'}?/uploads/101017/1-10101H21F54P.gif?{/dede:img} 這樣的格式!

非常明顯,這樣是不能正確顯示的,這是織夢自定義圖片字段的處理方式造成的。要解決這個問題,我們必須得創(chuàng)建一個自定義函數(shù),其實現(xiàn)方式為:

一、實現(xiàn)方法

1)創(chuàng)建自定義函數(shù)

打開?/include/extend.func.php?文件(注:這個文件就是系統(tǒng)預留的自定義函數(shù)接口文件,主要用于二次開發(fā)用的。如果你是老版本,默認沒有這個文件,自己創(chuàng)建一個PHP文件即可),在最下面的?>上一行加入以下函數(shù)代碼:

[html]?view plain?copy

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.=?'';?????

????????????????????????}?????

????????????????????}?????


????????????????}?????

????????????}?????

????????}?????

$dtp->Clear();?????

????????return?$img;?????????

????}?????

}????

保存后關(guān)閉即可。


2)函數(shù)調(diào)用方法

問:我們創(chuàng)建好函數(shù)以后,那么這個函數(shù)要如何來調(diào)用呢?

答:本函數(shù)的調(diào)用方法為:

[field:自定義圖片字段名?function="GetOneImgUrl(@me,顯示類型)"/]

比如:我們的自定義圖片字段名為?imgurl?,那么調(diào)用方式有以下兩種:

[field:imgurl?function='GetOneImgUrl(@me,0)'/]?標簽)-->

[field:imgurl?function='GetOneImgUrl(@me,1)'/]?

二、示例演示

1)模型字段添加

進入網(wǎng)站后臺,點擊[核心]——[內(nèi)容模型管理],點擊“普通文章”的“更改”按鈕,進入編輯界面,切換到“字段管理”選項,點擊“添加新字段”,如圖:

創(chuàng)建好字段以后,我們在增加或編輯文檔時候,那么就會有這個字段了,如圖:

上傳好你要顯示的圖片以后,保存即可。

2)前臺調(diào)用

原本我們前臺調(diào)用這個字段的方法,就是通過arclist標簽的?channelid?與?addfields?兩個參數(shù)來配合調(diào)用(點擊查看arclist的標簽詳解),這里不再重復的一一熬述。但大體的自定義字段的方法是這樣的:

{dede:arclist?row='2'?channeld='1'?addfields='自定義字段1,自定義字段2'}??

?底層模板?insertext??

{/dede:arclist}??

運用到我們剛才的這個函數(shù),調(diào)用方法為:

{dede:arclist?row='5'?orderby='id'?channelid='1'?addfields='imgurl'}? ? ??

[field:title/][field:imgurl?function='GetOneImgUrl(@me,0)'/]

{/dede:arclist}? ?

或者使用sql語句查詢:

{dede:arclist??typeid='~id~'?flag?=?'p'}??

[field:idrunphp="yes"]???

$row?=?$GLOBALS['dsql']->GetOne("Select?img?From?`dede_addonimages`?where?aid=@me");???

@me?=?$row['img'];??

@me=GetOneImgUrl(@me,1);??

????[/field:id]??

{/dede:arclist}???

重要:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 首頁 標題 關(guān)鍵詞 網(wǎng)站描述 插入head文件 列表文章調(diào)用 標簽說明 [field:arcurl /]:當前超鏈...
    null_su閱讀 440評論 0 1
  • 詳情頁面 packagecom.example.shoppingcar; importandroid.conten...
    ForCrazyLove閱讀 657評論 0 2
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,301評論 0 15
  • 經(jīng)過對django的初步學習,我們已經(jīng)對后臺的基本流程以及django的運作有了一定的了解,但是這還不足夠,dja...
    coder_ben閱讀 3,956評論 8 34
  • 2014年的蘋果全球開發(fā)者大會(WWDC),當Craig Federighi向全世界宣布“We have new ...
    yeshenlong520閱讀 2,397評論 0 9

友情鏈接更多精彩內(nèi)容