經(jīng)常逛新聞信息類移動(dòng)站或APP會(huì)發(fā)現(xiàn),首頁(yè)或列表采用AJAX無(wú)限加載的方法,看到你不想看為止,每條新聞?dòng)幸粡埢蛉龔埮鋱D,從用戶的角度,看圖比看文字更有吸引力些,采用DedeCMS做新聞信息類也是非常受歡迎,但默認(rèn)只能加載一張縮略圖,看看實(shí)現(xiàn)三張配圖的做法。
調(diào)用圖集模型前三張圖片做法
打開(kāi)/include/taglib/arclist.php,找到
$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; $row['templeturl'] = $GLOBALS['cfg_templeturl'];
后面添加,根據(jù)自己的實(shí)際數(shù)據(jù)庫(kù)前綴修改橙色字段
$arrs = $dsql->GetOne("SELECT imgurls FROM `dede_addonimages` WHERE aid={$row['id']} ");
if(is_array($arrs)){
$m="/ddimg=\'(.*)\'/U";
if(preg_match_all($m,$arrs['imgurls'],$pregArr)){
$row['one']=preg_replace($m,'\\1',$pregArr[0][0]);
$row['two']=preg_replace($m,'\\1',$pregArr[0][1]);
$row['three']=preg_replace($m,'\\1',$pregArr[0][2]);
}
}
前臺(tái)調(diào)用多張縮略圖
{dede:arclist} <img src="[field:one/]" width="200" height="100"/> //第1張圖片的地址 <img src="[field:two/]" width="200" height="100"/> //第2張圖片的地址 <img src="[field:three/]" width="200" height="100"/> //第3張圖片的地址 {/dede:arclist}
調(diào)用文章模型前三張圖片做法
文章模型能自動(dòng)獲取文章的第一張圖為縮略圖,也有些資源修改方法,這里介紹用頻道內(nèi)容模型管理增加自定義字段掉用多張圖的方法,參考DedeCMS如何添加自定義字段與前臺(tái)調(diào)用。
如果后面需要增加說(shuō)明性的文字,就需要在該字段的自定義表單HTML填寫(xiě)具體的HTML源代碼,
自定義表單HTML用~name~表示提示文字,~form~表示表單元素
前臺(tái)用{dede:field.pic1/}調(diào)用,不是出現(xiàn)圖片地址,而是出現(xiàn)
{dede:img text='' width='270' height='129'}http://www.vi586.com/uploads/101017/1-10101H21F54P.gif{/dede:img}
這是DedeCMS處理方式的問(wèn)題,參考文章DedeCMS內(nèi)容頁(yè)列表頁(yè)調(diào)用自定義圖片地址,創(chuàng)建 GetOneImgUrl函數(shù),處理完了之后。
內(nèi)容頁(yè)調(diào)用多張縮略圖
{dede:field.pic1 function='GetOneImgUrl(@me,0)'/}<!--調(diào)用完整HTML代碼--> <img src="{dede:field.pic2 function='GetOneImgUrl(@me,1)'/}/><!--只調(diào)用圖片地址-->
列表頁(yè)調(diào)用多張縮略圖
在該欄目列表下直接使用{dede:list}標(biāo)簽,在其他列表或首頁(yè)用{dede:arclist}標(biāo)簽,需要配合addfields和channelid使用,如下:
{dede:arclist addfields='pic1,pic2' channelid='1'}
[field:pic1 function='GetOneImgUrl(@me,0)'/] <!--調(diào)用完整HTML代碼-->
[field:pic2 function='GetOneImgUrl(@me,1)'/] <!--只調(diào)用圖片地址-->
{/dede:arclist}
調(diào)用文章、圖集模型第1,2,3張圖片另一實(shí)現(xiàn)方法
打開(kāi)include/extend.func.php,在最下面添加代碼:橙色部分是該欄目所在的數(shù)據(jù)表,根據(jù)實(shí)際情況修改
//取第一張地址 function GetFirstImg($arcid){ global $dsql; $query= "SELECT anlsm FROM `dede_addon7` where aid='$arcid'"; $row = $dsql->GetOne($query); $preg = "/<img.*?src=[\'\"](.+?)[\'\"].*?>/i"; preg_match_all($preg, $row['anlsm'], $match); //print_r($match); return $match[1][0]; } //取第二張地址 function GetSecImg($arcid){ global $dsql; $query= "SELECT anlsm FROM `dede_addon7` where aid='$arcid'"; $row = $dsql->GetOne($query); $preg = "/<img.*?src=[\'\"](.+?)[\'\"].*?>/i"; preg_match_all($preg, $row['anlsm'], $match); //print_r($match); return $match[1][1]; } //取第三張地址 function GetThirImg($arcid){ global $dsql; $query= "SELECT anlsm FROM `dede_addon7` where aid='$arcid'"; $row = $dsql->GetOne($query); $preg = "/<img.*?src=[\'\"](.+?)[\'\"].*?>/i"; preg_match_all($preg, $row['anlsm'], $match); //print_r($match); return $match[1][2]; }
打開(kāi)include/taglib/arclist.lib.php,找到如下代碼(大概在第514行):
$row['fulltitle'] = $row['title'];
在下面添加代碼:
$row['firstimgurl'] = GetFirstImg($row['id']); $row['secondimgurl'] = GetSecImg($row['id']); $row['thirdimgurl'] = GetThirImg($row['id']);
調(diào)用標(biāo)簽為:
<img src="[field:firstimgurl/]" />//第一張圖片 <img src="[field:secondimgurl/]"/>//第二張圖片 <img src="[field:thirdimgurl/]"/>//第三張圖片
如果你自定義的字段中沒(méi)圖片,獲取的地址就是空的。