這標(biāo)題起的好像不太好理解,什么是使用圖片聯(lián)動篩選?正??棄舻穆?lián)動篩選是如下圖所示:
現(xiàn)在我們要實(shí)現(xiàn)的目標(biāo)是把第一行篩選變成用圖片代替文本的篩選
若不會織夢dedecms篩選,請看教程:
思路:
思路1: 可不可以在添加字段時直接使用<img src="">作為篩選的字段值?這是一個網(wǎng)友問題這個問題時,我第一時間想到的,但是,經(jīng)過測試這樣不可以。
思路2:可不可以根據(jù)生成的篩選鏈接直接在模板里面添加<img src="">,代碼如下所示:
<a title="紅色" href="/plus/list.php?tid=5&yanse=%E7%BA%A2%E8%89%B2"><img src="/sx00.gif"></a>
復(fù)制代碼
這樣看上去就可以了,但是,要注意這樣就把篩選寫死了,而篩選是動態(tài)的,也就是選擇不同的顏色就會有不同的內(nèi)容,而且,還與下面的“類型”篩選是聯(lián)動的,所以,固定好只能篩選一次,這種方法行不通。
思路3:上面兩種方法試了以后,那接下來唯一要做的就是要修改php代碼了,在include目錄里面找到文件extend.func.php(這個文件是已經(jīng)二次開發(fā)過的具體的代碼請看上面給的教程連接),找到函數(shù) AddFilter($channelid, $type=1, $fieldsnamef, $defaulttid, $loadtype='autofield')
我們在前網(wǎng)頁前臺看到的篩選連接就是這個函數(shù)生成的,所以,只要改這個函數(shù)就可以了。
找到代碼:switch ($type)
把這個switch里面的代碼全部替換成如下代碼:
switch ($type) { case 1: $dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a title="全部" href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'">全部</a>' : '<span>全部</span>').' '; $addonfields_items = explode(",",$ctag->GetAtt('default')); for ($i=0; $i<count($addonfields_items); $i++) { $href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]);//echo $href; $dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '<a title="'.$addonfields_items[$i].'" href="'.$href.'"><img src="/sx0'.$i.'.gif"></a>' : '<span><img src="/sx0'.$i.'.gif"></a></span>')." "; } $dede_addonfields .= '<br/>'; break; case 2: $dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a title="全部" href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'">全部</a>' : '<span>全部</span>').' '; $addonfields_items = explode(",",$ctag->GetAtt('default')); for ($i=0; $i<count($addonfields_items); $i++) { $href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]);//echo $href; $dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '<a title="'.$addonfields_items[$i].'" href="'.$href.'">'.$addonfields_items[$i].'</a>' : '<span>'.$addonfields_items[$i].'</span>')." "; } $dede_addonfields .= '<br/>'; break; } |
已經(jīng)成功實(shí)現(xiàn)了,上面的“全部”和第一張圖片不顯示,不是因?yàn)椴粚Γ俏覜]有添加上圖片,只加了三張圖片,您可以找到相應(yīng)的圖片,直接放到根目錄即可。
“全部”可以在上面的代碼把全部替換成<img src="">即可,可以參考上面我替換好的:
<img src="/sx0'.$i.'.gif"></a>
注意:
您的圖片必須以00.gif,01.gif這樣的順序起名;
圖片請放在根目錄里面,如果您想放到根目錄里面其它目錄里面,請修改上面的圖片路徑。
模板調(diào)用請使用如下方式:
{dede:php} AddFilter(1,1,'yanse'); {/dede:php}
{dede:php} AddFilter(1,2,'leixing'); {/dede:php}
其中,AddFileter(1,1,'yanse')這里面的第二個數(shù)值代表不同的篩選鏈接,1表示使用圖片,2表示文本鏈接,可以根據(jù)需要進(jìn)行設(shè)置。
如果我都使用圖片怎么設(shè)置,也不難,只需要把上面的case 1:復(fù)制一份放到case 2下面并起名為case3,然后,調(diào)用方式為:
{dede:php} AddFilter(1,3,'leixing'); {/dede:php}
復(fù)制代碼
這樣就二個篩選就可以使用圖片了。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 織夢dedecms圖片聯(lián)動篩選教程