我們在編寫DEDECMS后臺的會后,經常會遇到如何在文章頁直接調用dede織夢自定義字段圖片地址的問題,網站有很多的解決辦法,眾說紛紜,這里,我們徹底解決這個問題:
比如情況是這樣的:我建立了一個獨立模型,然后添加了一個自定義表單圖片picname1
我在內容頁調用{dede:field.picname1 /}
系統調用出來的帶有模板,如下
我想掉去這個模板,只調用地址,該怎么解決呢?
“在文章頁直接調用dede織夢自定義字段圖片地址”簡單的解決辦法
修改自定義的模型中的圖片字段,選擇圖片(僅網址)這個屬性,保存之后就行了。
下面附上dedecms在列表頁和首頁關于自定義字段 圖片的詳細調用方法
在默認的自定義圖片字段模型調用時,一般調用出來是: {dede:img text=” width=’270′ height=’129′} /uploads/101017/1-10101H21F54P.gif {/dede:img}這樣的形式。 非常明顯,這樣是不能正確顯示的,這是自定義圖片字段的處理方式造成的。要解決這個問題,我們必須得創建一個自定義函數。這里我從新建模型到自定義字段的使用來舉例說明下怎么直接調用圖片地址。
假如我們要制作如下效果圖中的幻燈片,方便在后臺直接更改圖片。而使用廣告圖片顯然沒法實現,我這里用的是新建一個模型,然后簡歷一個這個模型的欄目,再以發布文章的形式把圖片添加進去,這個整個流程來說下。
一、新建一個模型,這個模型下共新添加兩個字段:大圖、小圖。至于鏈接地址我直接使用的是跳轉地址。其他設置默認即可。
大圖、小圖字段都這樣添加
二、新建一個欄目,模型選擇剛才新建的模型”幻燈片“
最好設置為隱藏該欄目
三、設置好以后在該欄目下新建需要顯示的文檔數目即可。我這里需要7個大圖,那么我就建立了七個文檔。
四、在建立文檔的時候填寫的方法如下圖,我這里因為幻燈片點擊需要調整到其他頁,我沒用新的字段,直接用的跳轉地址更方便。
注意上圖填寫
五、下面就是開始調用了,我是用在頭部的。
如果直接用一般的調用方法,直接用調用字段名的方法是顯然就會出現如開頭所說的現象。下面我們就來開始修改下程序,以便可以直接調用圖片地址:
六、創建自定義函數
打開 /include/extend.func. php文件(注:這個文件就是系統預留的自定義函數接口文件,主要用于二次開發用的。如果你是老版本,默認沒有這個文件,自己創建一個PHP文件即可),在最下面的?>上一行加入以下函數代碼:(如果結尾沒有?>那就直接在最下面添加)
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;
}
}
七、下面就可以開始調用圖片地址了。
[field:自定義圖片字段名 function=”GetOneImgUrl(@me,顯示類型)”/]
比如:我們的自定義圖片字段名為 datu 和 xiaotu,
只舉例調用datu字段的方法,那么調用方式有以下兩種:
[field:datu function=’GetOneImgUrl(@me,0)’/] 調用圖片的信息,自動調用寬度和高度(已包含Html代碼的)
[field:datu function=’GetOneImgUrl(@me,1)’/] 只調用圖片地址,一般可用于背景圖嵌套
八、具體到調用代碼里面的調用方法就是:
{dede:arclist typeid=’12’ addfields=’datu’ channelid=’17’ limit=’0,7′}
{/dede:arclist}
注意:上面藍色的為要調用的字段要寫進去,紫色為模型的顏色。
此文由 網站目錄_網站網址收錄與提交入口 編輯,未經允許不得轉載!: