DedeCMS 列表頁(yè)調(diào)用文章的第一張圖片
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-02-03 01:11:24 閱讀次數(shù):3088次
1:有的幻燈片有大小圖,一般來(lái)說(shuō)那大圖比小的要大很多,例如我仿制的163k的文章幻燈片就是如此,我看很多人都放棄了這個(gè)幻燈,因?yàn)轱@示大圖的地方調(diào)用縮略圖的話就會(huì)圖片失真...
2:用來(lái)實(shí)現(xiàn)有些博客風(fēng)格一個(gè)功能:在列表頁(yè)面每個(gè)日志的標(biāo)題下顯示一張圖片(不是dede的縮略圖哦)
辦法,
由于標(biāo)簽arclist不支持body,所以arclist調(diào)用的地方改為sql標(biāo)簽 獨(dú)立模型列表和list支持底層模板調(diào)用body ,所以可以直接使用
{dede:sql sql='select * from dede_archives left join dede_addonarticle on dede_archives.id=dede_addonarticle.aid where find_in_set("f",dede_archives.flag)>0 order by dede_archives.id desc limit 0,5'}
<div>[field:body function=firstimg('@me')/]</div>
{/dede:sql}
注意:實(shí)現(xiàn)的辦法是自定義一個(gè)函數(shù)
函數(shù)代碼
Copy codefunction firstimg($str)
{
$str1 = str_replace('"','',$str);
preg_match('/<img[^>]*>/i',$str1,$str2);
$str3 = array_shift($str2);
$str4 = str_replace(' alt= ',' ',$str3);
return $str4;
}
將以上代碼加入到include下的channelunit.func.php中,
底層模板字段調(diào)用的時(shí)候
[field:body function=firstimg('@me')/]
標(biāo)簽調(diào)用
{field:body function=firstimg('@me')/}
不過(guò)這個(gè)函數(shù)有它的局限性,文章中的圖片一定要出現(xiàn)在文章的開(kāi)頭才能達(dá)到效果,否則會(huì)失敗
好了,辛苦了幾天終于搞定!
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)