完美解決dedecms內容頁列表頁調用自定義圖片地址_DedeCms教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
教大家如何完美的解決dedecms內容頁或列表頁調用自定義圖片,輸出的格式如下:
<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>
這很難滿足我們的實際需要,比如做一個幻燈片的時候會調用圖集的圖片,而不用默認的dedecms的圖集模版,所以自己動手吧,網上查閱了很多這方面的資料,最后總結如下:
在設置自定義字段為圖片的時候一定要選“圖片(僅網址)”,這樣輸出的格式就是
{dede:imgtext='' width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}
如果自定義字段名為:name,內容頁前臺這樣調用:
<img src="{dede:field.name}"/>
輸出的是
<img src="{dede:img text=''width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}"/>
其實是輸出的時候沒有相關的php函數,找到/include/extend.func. 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;
}
}
保存即可。
前臺內容頁格式為:
<img alt="{dede:field.title/}" src="{dede:field.name function='GetOneImgUrl(@me,1)'/}">
看得懂的站長容易理解,@me,0 代表只輸出路徑,@me,0 代表連寬、高一起輸出
同樣的列表頁或首頁用相應的標簽套進去就可以了。
相關DedeCms教程: