我們在編寫DEDECMS后臺的會后,經(jīng)常會遇到如何在文章頁直接調(diào)用dede織夢自定義字段圖片地址的問題,網(wǎng)站有很多的解決辦法,眾說紛紜,這里,我們徹底解決這個問題:
比如情況是這樣的:我建立了一個獨立模型,然后添加了一個自定義表單圖片picname1
我在內(nèi)容頁調(diào)用{dede:field.picname1 /}
系統(tǒng)調(diào)用出來的帶有模板,如下
<li>
<a href=’/uploads/140420/1-140420164Z2914.jpg’ target=’_blank’><img src=’/uploads/140420/1-140420164Z2914.jpg’ width=’253′ border=’0’/></a>
<br />
<a href=’/uploads/140420/1-140420164Z2914.jpg’ target=’_blank’></a>
</li>
我想掉去這個模板,只調(diào)用地址,該怎么解決呢?
在默認(rèn)的自定義圖片字段模型調(diào)用時,一般調(diào)用出來是: {dede:img text=” width=’270′ height=’129′} /uploads/101017/1-10101H21F54P.gif {/dede:img}這樣的形式。 非常明顯,這樣是不能正確顯示的,這是自定義圖片字段的處理方式造成的。要解決這個問題,我們必須得創(chuàng)建一個自定義函數(shù)。這里我從新建模型到自定義字段的使用來舉例說明下怎么直接調(diào)用圖片地址。
假如我們要制作如下效果圖中的幻燈片,方便在后臺直接更改圖片。而使用廣告圖片顯然沒法實現(xiàn),我這里用的是新建一個模型,然后簡歷一個這個模型的欄目,再以發(fā)布文章的形式把圖片添加進去,這個整個流程來說下。
一、新建一個模型,這個模型下共新添加兩個字段:大圖、小圖。至于鏈接地址我直接使用的是跳轉(zhuǎn)地址。其他設(shè)置默認(rèn)即可。
大圖、小圖字段都這樣添加
二、新建一個欄目,模型選擇剛才新建的模型”幻燈片“
最好設(shè)置為隱藏該欄目
三、設(shè)置好以后在該欄目下新建需要顯示的文檔數(shù)目即可。我這里需要7個大圖,那么我就建立了七個文檔。
四、在建立文檔的時候填寫的方法如下圖,我這里因為幻燈片點擊需要調(diào)整到其他頁,我沒用新的字段,直接用的跳轉(zhuǎn)地址更方便。
注意上圖填寫
五、下面就是開始調(diào)用了,我是用在頭部的。
如果直接用一般的調(diào)用方法,直接用調(diào)用字段名的方法是顯然就會出現(xiàn)如開頭所說的現(xiàn)象。下面我們就來開始修改下程序,以便可以直接調(diào)用圖片地址:
六、創(chuàng)建自定義函數(shù)
打開 /include/extend.func. php文件(注:這個文件就是系統(tǒng)預(yù)留的自定義函數(shù)接口文件,主要用于二次開發(fā)用的。如果你是老版本,默認(rèn)沒有這個文件,自己創(chuàng)建一個PHP文件即可),在最下面的?>上一行加入以下函數(shù)代碼:(如果結(jié)尾沒有?>那就直接在最下面添加)
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 .= ‘<img src=”‘.$imgurl.'” width=”‘.$width.'” height=”‘.$height.'” />';
}
}}
}
}
$dtp->Clear();
return $img;
}
}
七、下面就可以開始調(diào)用圖片地址了。
[field:自定義圖片字段名 function=”GetOneImgUrl(@me,顯示類型)”/]
比如:我們的自定義圖片字段名為 datu 和 xiaotu,
只舉例調(diào)用datu字段的方法,那么調(diào)用方式有以下兩種:
[field:datu function=’GetOneImgUrl(@me,0)’/] 調(diào)用圖片的信息,自動調(diào)用寬度和高度(已包含Html代碼的<img />)
[field:datu function=’GetOneImgUrl(@me,1)’/] 只調(diào)用圖片地址,一般可用于背景圖嵌套
八、具體到調(diào)用代碼里面的調(diào)用方法就是:
{dede:arclist typeid=’12’ addfields=’datu’ channelid=’17’ limit=’0,7′}
<li><a href=”[field:arcurl/]” target=”_blank”><img border=”0″ src=”[field:datu function=’GetOneImgUrl(@me,1)’/]”></a></li>
{/dede:arclist}
注意:上面藍色的為要調(diào)用的字段要寫進去,紫色為模型的顏色。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 在文章頁直接調(diào)用dede織夢自定義字段圖片地址