這是京東篩選的截圖,天貓?zhí)詫毜纫灿邢嚓P(guān)的選購(gòu)的篩選。在用戶進(jìn)入該頻道后,對(duì)自己喜歡的商品進(jìn)行篩選,能減少大量的時(shí)間,最大程度地滿足用戶的功能性需求。
分析過(guò)程
根據(jù)實(shí)際情況,京東的品牌不屬于篩選范圍,屬于類(lèi)別。因此只有“分類(lèi)”、“有效像素”、“液晶屏尺寸”作為品牌類(lèi)別公共的篩選字段項(xiàng)目。當(dāng)然還有多選功能,這里就不細(xì)說(shuō)了。
查了N多關(guān)于dede篩選功能實(shí)現(xiàn)的文章,筆者在沒(méi)有完成篩選功能之前,運(yùn)用js進(jìn)行篩選,其實(shí)基于php的dedecms也一樣能實(shí)現(xiàn)這樣的功能。下面這是運(yùn)用了dedecmsV5.7本身的模板制作的模板,完美實(shí)現(xiàn)篩選功能,如果一定要跟京東的樣式一樣,可以慢慢敲代碼吧,這里樣式不做詳解。
由于2015年7月份后dedecms終于出更新版了,建議大家先不更新,免得修改的后臺(tái)文件發(fā)生不必要的錯(cuò)誤。本人還沒(méi)測(cè)試新版本的問(wèn)題,感興趣的童鞋可以自己測(cè)試。下面講解裝修網(wǎng)站的裝修效果圖完美實(shí)現(xiàn)dedecms二次開(kāi)發(fā)的php的篩選功能。
(帖子2015年9月更新)終于用上了新版dedecms,經(jīng)測(cè)試功能穩(wěn)定,可以安裝wappc手機(jī)版,需要提醒各位的是,如果不能正常安裝,可能是解壓縮的問(wèn)題,盡量采用在服務(wù)器解壓,避免不必要的錯(cuò)誤發(fā)生。篩選也正常,因?yàn)楹芏喽伍_(kāi)發(fā)都會(huì)動(dòng)到include下extend.func.php。因此不要隨便把文件覆蓋,而應(yīng)仔細(xì)對(duì)比后在服務(wù)器上修改該文件。
dedecms自定義字段篩選實(shí)現(xiàn)步驟
一 建立自定義字段
在頻道模型里面內(nèi)容模型里建立相應(yīng)的自定義字段,記得勾選“使字段從模板中獲得”,具體方法可以問(wèn)度娘,或參考《dedecms如何添加自定義字段與前臺(tái)調(diào)用內(nèi)容》。
可以看到篩選功能主要有三個(gè)字段:小區(qū)戶型(hx)、裝修風(fēng)格(zxfg)、裝修面積(zxmj)、裝修價(jià)格(zxjg)等,字段全部用select類(lèi)型。
文章編輯的時(shí),要選擇好相應(yīng)的分類(lèi),根據(jù)這些分類(lèi)字段,前臺(tái)可以用php直接調(diào)用。
二 修改后臺(tái)程序文件
這里要修改include下的兩個(gè)文件:arc.listview.class.php和extend.func.php。由于篇幅太長(zhǎng),修改過(guò)程請(qǐng)查看相關(guān)文章《終極講解dedecms實(shí)現(xiàn)多條件篩選并以當(dāng)前篩選詞為標(biāo)題》
三 前臺(tái)調(diào)用php
請(qǐng)把以下代碼復(fù)制到網(wǎng)站相應(yīng)的區(qū)域,這里只選擇了用戶最關(guān)注的戶型、風(fēng)格、面積作為篩選條件。
<p class="shaixuan">
{dede:php}AddFilter(7,1,'zxfg,hx,zxmj');{/dede:php}<!--7是該欄目的id,1是篩選類(lèi)型,可以自己換來(lái)看看篩選前臺(tái)顯示類(lèi)型,一般采用全部展開(kāi)或者下拉列表-->
</p>
選擇2是下拉,修改后的地方有個(gè)結(jié)尾有錯(cuò)誤,在case2結(jié)尾的標(biāo)紅</select><br/>,應(yīng)該改成</select></p>,原帖已更正。
77 |
$dede_addonfields .= '<select name="filter"' .$ctag->GetName().' onchange= "window.location=this.options[this.selectedIndex].value" > |
78 |
'.' <option value= "'.str_replace(" & ".$ctag->GetName()." = ".$fields_value," ",$filterarr).'" >全部</option>'; |
79 |
$addonfields_items = explode( "," ,$ctag->GetAtt( 'default' )); |
80 |
for ($i=0; $i<count($addonfields_items); $i++) |
82 |
$href = stripos($filterarr,$ctag->GetName(). '=' ) ? str_replace( "=" .$fields_value, "=" .urlencode($addonfields_items[$i]),$filterarr) : $filterarr. '&' .$ctag->GetName(). '=' .urlencode($addonfields_items[$i]); |
83 |
$dede_addonfields .= '<option value="' .$href. '"' .($fields_value==urlencode($addonfields_items[$i]) ? ' selected="selected"' : '' ). '>' .$addonfields_items[$i].'</option> |
86 |
$dede_addonfields .= '</ select ><br/> |
93 |
echo $dede_addonfields; |
總結(jié)
至此,dedecms二次開(kāi)發(fā)php自定義篩選全部結(jié)束。特別提醒,修改后臺(tái)程序之前一定要把原文件備份。如果前臺(tái)沒(méi)有顯示成功,一定要看下生成后的源代碼。如果是空的,看看欄目的id是否正確。