很多站长朋友们都不太清楚dedecms实时筛选,今天小编就来给大家整理dedecms实时筛选,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 织梦筛选功能怎么弄?详细说明 ,谢谢! 2、 dedecms如果要做一个可以分类筛选的模块,应该怎么做 3、 dedecms织梦5.7多条件筛选 4、 dedecms信息筛选问题 织梦筛选功能怎么弄?详细说明 ,谢谢!织梦多条件筛选功能实现
我们已经在前台实现了筛选的功能了,虽然价格、尺寸两个类型没有添加,这是因为我是要把他们固定做好,因为他们在模型中使用的类型是数字类型,并非其他三个(品牌、平台以及显卡)是option类型。
既然前台已经做好了,那我们就开始后台的功能了。
具体的后台我使用的是advancesearch.php这个搜索的功能来实现的。
我们复制一个advancesearch.php的模板出来,默认的advanceserach.php的模板是/templets/default/advancesearch.htm,我们把这个模板,复制到我们的自定义的模板文件夹/templets/jingdong里面,名字就叫做filter_tmp.htm。
然后进入后台,在“内容模型管理”里面选择你所需要搜索的模型,然后点击这个模型后面的放大镜图标,在“附件表可供自定义搜索的字段”中,勾选上你需要搜索的字段,自定义搜索结果模板页,写上我们刚刚复制的模板名称,叫做filter_tmp.htm,确定。
这里可以测试一下,能否正常使用搜索。
不过好像是织梦系统自带的不可以的,我试了好多次都不行,追踪了一下,好像并没有查询附加表,于是在advancesearch.php的218行,原来的代码是
$query = "SELECT main.id AS aid,main.*,main.description AS description1, type.*
FROM $maintable main
LEFT JOIN #@__arctype type ON type.id = main.typeid
LEFT JOIN $addontable addon ON addon.aid = main.id
$where $orderby";
在type.*的后面添加行一个addon.*,也就是变成如下的代码
$query = "SELECT main.id AS aid,main.*,main.description AS description1, type.*,addon.*
FROM $maintable main
LEFT JOIN #@__arctype type ON type.id = main.typeid
LEFT JOIN $addontable addon ON addon.aid = main.id
$where $orderby";
然后还有124行添加 ${$var}=iconv(“utf-8″,”gb2312″,${$var}); 否则会导致中文乱码。
还有一个就是如果使用()英文括号的话,要小心了,因为会被安全sql过滤掉。
下面,是我简单的制作了下filter_tmp.htm,大家可以参考使用。
{dede:datalist}
<div style="border: 1px solid #CCC;margin:20px 0;">
<strong>标题:</strong>{dede:field.title/}<br />
<strong>品牌:</strong>{dede:field.pinpai/}<br />
<strong>价格:</strong>{dede:field.jiage/}<br />
<strong>尺寸:</strong>{dede:field.chicun/}<br />
<strong>平台:</strong>{dede:field.pingtai/}<br />
<strong>显卡:</strong>{dede:field.xianka/}<br />
</div>
{/dede:datalist}
{dede:pagelist listsize='5'/}
但是我们最终是要把这个页面“嵌”到filter.htm中,也就是最终的列表页里面。
现在我们打开filter这个模板文件,在最下面加一个div,id设置为result,这个是用来存放最后筛选出来的结果的地方。
然后打开filter.js,下面重点都是在这个js里面写的。
dedecms如果要做一个可以分类筛选的模块,应该怎么做这个需要用到分类信息和联动类别管理
在联动类别管理里面添加品牌、价格等
在分类信息模型里添加自定义字段品牌、价格等字段的名字和联动管理里的品牌、价格等对应 数据类型选择联动类型
修改 include\taglib\infolink.lib.php 文件
搜索require_once(DEDEDATA.'/enums/infotype.php');下面添加require_once(DEDEROOT.'/data/enums/自定义联动类别字段名.php');
修改
function lib_infolink($ctag,$refObj)
{
global $dsql,$nativeplace,$infotype,$自定义联动类别字段名,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;
global $em_nativeplaces,$em_infotypes,$em_自定义联动类别字段名s; //看清楚,这里后面的个s
搜索$fields = array('nativeplace'=>'','infotype'=>''
修改
$fields = array('nativeplace'=>'','infotype'=>'','自定义联动类别字段名'=>'','typeid'=>$typeid,
'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'','linkall自定义联动类别字段名'=>'');
$fields['nativeplace'] = $fields['infotype'] = $fields['自定义联动类别字段名'] = '';
搜索$fields['linkalltype'] =
在下面添加
1
$fields['linkall自定义联动类别字段名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}tid={$typeid}自定义联动类别字段名={$自定义联动类别字段名}'>不限</a>";
搜索if(is_array($ctp->CTags))在这句上面添加
/自定义联动类别字段链接
if(empty($自定义联动类别字段名))
{
foreach($em_自定义联动类别字段名s as $eid=>$em)
{
if($eid % 500 != 0) continue;
$fields['自定义联动类别字段名'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}tid={$typeid}自定义联动类别字段名={$eid}nativeplace={$nativeplace}'>{$em}</a>";
}
}
else
{
$sontype = ( ($自定义联动类别字段名 % 500 != 0) ? $自定义联动类别字段名 : 0 );
$toptype = ( ($自定义联动类别字段名 % 500 == 0) ? $自定义联动类别字段名 : ( $自定义联动类别字段名-($membertype%500) ) );
$fields['自定义联动类别字段名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}tid={$typeid}自定义联动类别字段名={$toptype}nativeplace={$nativeplace}'><b>{$em_自定义联动类别字段名s[$toptype]}</b></a> ";
foreach($em_自定义联动类别字段名s as $eid=>$em)
{
if($eid < $toptype+1 || $eid > $toptype+499) continue;
if($eid == $自定义联动类别字段名) {
$fields['自定义联动类别字段名'] .= " <b>{$em}</b>";
}
else {
$fields['自定义联动类别字段名'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}tid={$typeid}自定义联动类别字段名={$eid}nativeplace={$nativeplace}'>{$em}</a>";
}
}
}
dedecms织梦5.7多条件筛选这种多条件筛选构思上就是利用条件拼接sql语句,但就dedecms的功能来看,静态页比较难实现。
建议进行二次开发,或者制作php单页。
况且存储你所要查询的信息的表,应该也不是dede内置的表就能做的。
一个比较好的方式就是静态的栏目页,用ajax向一个php页提交参数,得到返回值后载入到页面中,体验好,难度也不大。
引入 /include/common.inc.php 文件,利用dedecms的语法二次开发吧,需要详细交流可以联系我。
dedecms信息筛选问题内容模型使用分类信息,信息筛选可以使用联动类型,建立的新模型字段要包含你前面设的联动类型。
关于dedecms实时筛选的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于dedecms实时筛选 dedecms采集怎么用的详细内容...