XML  HTML  企业网站建设     RSS订阅深圳网站建设,网络营销,深圳网络推广,深圳seo,草根网络创业者
你的位置:首页 » 网络技术 » 正文

DedeCMS二次开发联动筛选功能的实现(含多选功能)

选择字号: 超大 标准 admin 发布于2019-05-17 属于 网络技术 栏目  0个评论 223人浏览

多选效果如下图:具体操作说明:一、注意,首先备份以下两个文件\include\arc.listview.class.php\include\extend.func.php多选版文件下载链接:https

多选效果如下图:

QQ截图20190517170811.jpg

具体操作说明:

1、注意,首先备份以下两个文件

\include\arc.listview.class.php
\include\extend.func.php

 

2、修改extend.func.php文件,在其最后面添加如下代码:

  1. //dedecms联动筛选功能 By 织梦技术研究中心  字符过滤函数
  2. function wwwcms_filter($str,$stype="inject") {
  3. if ($stype=="inject")  {
  4. $str = str_replace(
  5. array( "select", "insert", "update", "delete", "alter", "cas", "union", "into", "load_file", "outfile", "create", "join", "where", "like", "drop", "modify", "rename", "'", "/*", "*", "../", "./"),
  6. array("","","","","","","","","","","","","","","","","","","","","",""),
  7. $str);
  8. } else if ($stype=="xss") {
  9. $farr = array("/\s+/" ,
  10. "/<(\/?)(script|META|STYLE|HTML|HEAD|BODY|STYLE |i?frame|b|strong|style|html|img|P|o:p|iframe|u |em|strike|BR|div|a|TABLE|TBODY|object|tr|td |st1:chsdate|FONT|span|MARQUEE|body|title |\r\n|link |meta|\?|\%)([^>]*?)>/isU",
  11. "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
  12. );
  13. $tarr = array(" ",
  14. "",
  15. "\\1\\2",
  16. );
  17. $str = preg_replace($farr, $tarr, $str);
  18. $str = str_replace(
  19. array( "<", ">", "'", "\"", ";", "/*", "*", "../", "./"),
  20. array("<",">","","","","","","",""),
  21. $str);
  22. }
  23. return $str;
  24. }
  25. /**
  26.  *  载入自定义表单(用于发布)
  27.  *
  28.  * @access    public
  29.  * @param     string  $fieldset  字段列表
  30. * @param     string  $loadtype  载入类型
  31. * @return    string
  32.  */
  33. function AddFilter($channelid, $type=1, $fieldsnamef, $defaulttid, $loadtype='autofield')
  34. {
  35. global $tid,$dsql,$id;
  36. $tid = $defaulttid ? $defaulttid : $tid;
  37. if ($id!="")
  38. {
  39. $tidsq = $dsql->GetOne(" Select typeid From `#【分隔符】@__archives` where id='$id' ");
  40. $tid = $tidsq["typeid"];
  41. }
  42. $nofilter = (isset($_REQUEST['TotalResult']) ? "&TotalResult=".$_REQUEST['TotalResult'] : '').(isset($_REQUEST['PageNo']) ? "&PageNo=".$_REQUEST['PageNo'] : '');
  43. $filterarr = wwwcms_filter(stripos($_SERVER['REQUEST_URI'], "list.php?tid=") ? str_replace($nofilter, '', $_SERVER['REQUEST_URI']) : $GLOBALS['cfg_cmsurl']."/plus/list.php?tid=".$tid);
  44. $cInfos = $dsql->GetOne(" Select * From  `#【分隔符】@__channeltype` where id='$channelid' ");
  45. $fieldset=$cInfos['fieldset'];
  46. $dtp = new DedeTagParse();
  47. $dtp->SetNameSpace('field','<','>');
  48. $dtp->LoadSource($fieldset);
  49. $dede_addonfields = '';
  50. if(is_array($dtp->CTags))
  51. {
  52. foreach($dtp->CTags as $tid=>$ctag)
  53. {
  54. $fieldsname = $fieldsnamef ? explode(",", $fieldsnamef) : explode(",", $ctag->GetName());
  55. if(($loadtype!='autofield' || ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1)) && in_array($ctag->GetName(), $fieldsname) )
  56. {
  57. $href1 = explode($ctag->GetName().'=', $filterarr);
  58. $href2 = explode('&', $href1[1]);
  59. $fields_value = $href2[0];
  60. $dede_addonfields .= '<div class="scv-shaixuan"><b>'.$ctag->GetAtt('itemname').':</b>';
  61. switch ($type) {
  62. case 1:
  63. $dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a title="全部" href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'">全部</a>' : '<span>全部</span>').' ';
  64. $addonfields_items = explode(",",$ctag->GetAtt('default'));
  65. for ($i=0; $i<count($addonfields_items); $i++)
  66. {
  67. $href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]);//echo $href;
  68. $dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '<a title="'.$addonfields_items[$i].'" href="'.$href.'">'.$addonfields_items[$i].'</a>' : '<span>'.$addonfields_items[$i].'</span>')." ";
  69. }
  70. $dede_addonfields .= '</div>';
  71. break;
  72. case 2:
  73. $dede_addonfields .= '<select name="filter"'.$ctag->GetName().' onchange="window.location=this.options[this.selectedIndex].value">
  74.        '.'<option value="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'">全部</option>';
  75. $addonfields_items = explode(",",$ctag->GetAtt('default'));
  76. for ($i=0; $i<count($addonfields_items); $i++)
  77. {
  78. $href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]);
  79. $dede_addonfields .= '<option value="'.$href.'"'.($fields_value==urlencode($addonfields_items[$i]) ? ' selected="selected"' : '').'>'.$addonfields_items[$i].'</option>
  80.        ';
  81. }
  82. $dede_addonfields .= '</select><br/>
  83.       ';
  84. break;
  85. }
  86. }
  87. }
  88. }
  89. echo $dede_addonfields;
  90. }


多选版文件下载链接:

链接: https://pan.baidu.com/s/10H3xJBQnBr-v6hOw3oHLMw 

提取码: tyzt


有些网站现成的模板有这个功能,但是不能用的,到此基本就结束了。重新生成一下目录,基本就可以用了,聚网志成的http://www.webdome.jwzjs.com/里面就是可以直接用的了,到这步骤就结束了。

二、开始

1.把这些文件夹全部覆盖到根目录;

2.后台 - 系统 - 系统设置 - 系统基本参数 - 其他选项 - 禁用模板标签 ,把php删除后保存

QQ截图20190517171141.jpg

3.后台 - 核心 - 频道模型 - 内容模型管理
    找到您要设置筛选的模型,这里以“普通文章”为例,点击右边的编辑按钮,在出来的页面中切换到“字段管理”,
    点击“添加新字段”,填写的时候注意"数据类型"选择【Checkbox多选框】

QQ截图20190517171209.jpg


三、模板调用说明

在需要显示筛选的地方加入
{dede:php}AddFilter(模型ID,类型,"字段1");{/dede:php}
例:
{dede:php}AddFilter(1,1,"area");{/dede:php}
    
模型ID
    后台 - 核心 - 频道模型 - 内容模型管理
类型
    1文字
    2下拉
    3单选
    
如果要指定使用哪些自定义参数,请使用 
{dede:php}AddFilter(模型ID,类型,"字段1,字段1,字段1");{/dede:php}

{dede:php}AddFilter(1,1,"area,type,time,status");{/dede:php}
    
"area,type,time,status" 是指定的字段名,多个字段用半角逗号分隔。
    
首页调用方法
{dede:php}AddFilter(模型ID,类型,"字段1",栏目id);{/dede:php}
    
内容页调用方法
{dede:php}AddFilter(模型ID,类型,"字段1",栏目id,1);{/dede:php}




欢迎原创文章投稿到诺伊网博客官网

标签:dede实现多选,dede分类信息多选,dede筛选功能,

亲!深圳网站建设,网站运营,seo,草根创业博客请您点赞
  • 流泪

    0

  • 打酱油

    0

  • 开心

    0

  • 点赞

    0

  • 差评

    0

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门文章
热评文章
    随机文章 | 热门文章 | 最新文章
随机文章
扫一扫,加我为微信好友 加我为微信好友

博主承接网站建设业务

域名注册 香港虚拟主机

免费源码 B2B信息发布

客服: 客服

技术: 技术

售后: 售后

电话:075536891206

手机:13530151322

在线联系