多條件篩選功能常用在圖片、裝修、機(jī)械設(shè)備、商城網(wǎng)站等,一般篩選的條件是用戶較關(guān)注的項目,沒必要什么條件都加入。DedeCMS多條件篩選PHP開發(fā)并不帶有刪除所選條件功能,PHP篩選和JS篩選原理不一樣,實現(xiàn)起來并不復(fù)雜。
筆者做的重慶裝修公司裝修效果圖實現(xiàn)多條件篩選帶刪除功能分享給大家。
效果參考圖
參考頁面:http://mengdiqiu.com.cn/plus/list.php?tid=85&zxfg=%CF%D6%B4%FA%BC%F2%D4%BC&zxmj=40-60%C6%BD%C3%D7,點(diǎn)擊“x”符號即可刪除篩選條件。
先參考文章《DedeCMS多條件篩選以篩選詞為標(biāo)題》,下載兩個必要的文件,鏈接:http://pan.baidu.com/s/1ntt73i5
修改下載后的extend.func.php文件,找到
} } } } echo $dede_addonfields; }
在這段代碼之前(switch條件case 2 的下面增加case 3)增加如下代碼:
case 3: $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]) ? '' : '<span class="tiao">' . $addonfields_items[$i]; } $dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a title="刪除" href="' . $GLOBALS['cfg_basehost'] . str_replace("&" . $ctag->GetName() . "=" . $fields_value,"",$filterarr) . '"> x </a></span>' : ''); break;
模板部分PHP調(diào)用
增加未篩選時不顯示“篩選條件”字樣,用PHP判斷自定義字段不為空則顯示。
<p class="textc yixuan"> {dede:php} $a = $_GET['zxfg']; $b = $_GET['hx']; $c = $_GET['zxmj']; if($a != '' || $b != '' || $c != '') echo "篩選條件:"; AddFilter(7,3,'zxfg,hx,zxmj'); //“7”是自定義字段(橙色部分)所在的頻道模型ID,“3”是上面修改部分,下面同理; {/dede:php} </p> <p class="shaixuanbox"> {dede:php} AddFilter(7,1,'zxfg,hx,zxmj'); {/dede:php} </p>
CSS樣式
.shaixuanbox{width:100%;height:auto;margin:0 auto 10px;border-bottom:1px solid #c0c0c0} .shaixuan{padding:10px;text-align:left;font-size:14px;line-height:14px} .shaixuan a{margin:0 6px;color:#000} .shaixuan a:hover{color:#32B9AB} .shaixuan .hover,.shaixuan span{padding:0 5px;color:#fff;background:#32B9AB} .tiao{position:relative;padding:0 20px 0 5px;border:1px solid #eee;border-radius:5px;margin-right:5px;} .tiao a{position:absolute;right:5px;top:0;font-size:20px;color:#ccc;line-height:31px;} .tiao a:hover{text-decoration:none;}