POST TIME:2017-11-13 00:40
dede調(diào)用自定義圖片的時候在內(nèi)容頁或列表頁輸出的格式如下:
<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>
這很難滿足我們的實(shí)際需要,比如做一個幻燈片的時候會調(diào)用圖集的圖片,而不用默認(rèn)的dedecms的圖集模版,所以自己動手吧,網(wǎng)上查閱了很多這方面的資料,最后總結(jié)如下:
在設(shè)置自定義字段為圖片的時候一定要選“圖片(僅網(wǎng)址)”,這樣輸出的格式就是
{dede:imgtext='' width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}
如果自定義字段名為:name,內(nèi)容頁前臺這樣調(diào)用:
<img src="{dede:field.name}"/>
輸出的是
<img src="{dede:img text=''width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}"/>
其實(shí)是輸出的時候沒有相關(guān)的php函數(shù),找到/include/extend.func. php
在最下面復(fù)制以下代碼(?>前面)
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; } }
保存即可。
前臺內(nèi)容頁格式為:
<img alt="{dede:field.title/}" src="{dede:field.name function='GetOneImgUrl(@me,1)'/}">
看得懂的站長容易理解,@me,0 代表只輸出路徑,@me,0 代表連寬、高一起輸出
同樣的列表頁或首頁用相應(yīng)的標(biāo)簽套進(jìn)去就行了。