返回新闻列表

pbootcms 列表页加入标题搜索功能,pboot:list添加列表直接搜索 -不用跳转到搜索页面

发布日期: 2023-07-10 | 来源: 智软设计工作室

最近制作网站的时候。因为搜索的地方比较多。比如常见问题和经销商,产品,都得搜索,用传统得{pboot:scaction}  他都会到统一得页面去,当然页可以用   <input type="hidden" name="searchtpl" value="1.html" >,置顶不同模板,但是置顶后。有些问题。比如栏目封面和当前位置,都会到搜索哪里。当然你页可以定死,但是不太灵活,万一后面又有其他栏目就又要做个模板了。下面是pboot:list列表页直接搜索得解决方法:


先找到:apps/home/controller/ParserController.php


找到:

  // 解析内容列表标签
    public function parserListLabel($content, $cscode = '')

然后:

 $count = count($matches[0]);


下面添加:

/*添加列表直接搜索 */

$keyword = request('keyword', 'vars');

/*end */

然后在

  // 扩展字段数据筛选
                    foreach ($_GET as $key => $value) {
                        if (preg_match('/^ext_[w-]+$/', $key)) { // 其他字段不加入
                            $where3[$key] = get($key, 'vars');
                        }
                    }
                }


下面添加:

// 采取keyword方式
 if ($keyword) {
    if (strpos($field, '|')) { // 匹配多字段的关键字搜索
        $field = explode('|', $field);
        foreach ($field as $value) {
            if ($value == 'title') {
                $value = 'a.title';
            }
            if ($fuzzy) {
                $like = " like '%" . $keyword . "%'"; // 前面已经转义过
            } else {
                $like = " like '" . $keyword . "'"; // 前面已经转义过
            }
            if (isset($where3[0])) {
                $where3[0] .= ' OR ' . $value . $like;
            } else {
                $where3[0] = $value . $like;
            }
        }
        if (count($field) > 1) {
            $where3[0] = '(' . $where3[0] . ')';
        }
    } else { // 匹配单一字段的关键字搜索
        if ($field) {
            if ($field == 'title') {
                $field = 'a.title';
            }
            $where3[$field] = $keyword;
        } else {
            $where3['a.title'] = $keyword;
        }
    }
}


// 数据接收
if ($_POST) {
    $receive = $_POST;
} else {
    $receive = $_GET;
}

foreach ($receive as $key => $value) {
    if (! ! $value = request($key, 'vars')) {
        if ($key == 'title') {
            $key = 'a.title';
        }
        if (preg_match('/^[w-.]+$/', $key)) { // 带有违规字符时不带入查询
            $where3[$key] = $value;
        }
    }
}

// 去除特殊键值
unset($where3['keyword']);
unset($where3['field']);
unset($where3['scode']);
unset($where3['page']);
unset($where3['from']);
unset($where3['isappinstalled']);
unset($where3['tdsourcetag']);
unset($where3['x']);
unset($where3['y']);
unset($where3['searchtpl']);
unset($where3['p']);
unset($where3['s']);

// 无任何条件不显示内容
/* 取消。不然进入没条件,列表页不显示内容,
if (! $where3) {
    $content = str_replace($matches[0][$i], '', $content);
    continue;
}
/*
end 
*/

然后还要找到:IndexController.php


在44行左右:

 if(stripos(URL,'?') !== false && stripos(URL,'/?tag=')
 //加入列表页直接搜索?keyword条件,不然会出现您访问的内容不存在,请核对后重试
 
                if(stripos(URL,'?') !== false && stripos(URL,'/?tag=') == false && stripos(URL,'/?page=') == false && stripos(URL,'/?ext_') == false && stripos(URL,'/?keyword') == false){
                    _404('您访问的内容不存在,请核对后重试!');
                }

ParserController文件在里面,pbootcms3.2.5

加入list标签直接keyword搜索,ParserController.rar


推荐技术资料

网站中JS怎么实现禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12

2023-08-27

我们在做网站得时候,有时候会为了防止人家拿代码 复制 保存等功能。来做一点防御方法,但是这种只能仿菜鸟,没法彻底防御,下面是代码,vararr=[123,17,18];//先定义下要禁止哪些键,document.oncontextmenu=newFunction("event.returnValue=false;"),//禁用

阅读更多

pbootcms url不允许带其他参数解决办法,带参数出现404页面,取消后缀参数过滤安全功能

2024-03-22

pbootcms 新版本中,加入了一个 url不允许带其他参数,这个也是为了安全,可以大大减少注入风险,一但访客加入了其他?参数 ,就会出现404页面,那我们怎么取消后缀参数过滤安全功能了,有写客户网站可能要推广什么的,推广公司可能需要带这些参数来统计报告,下面我说下怎么解决。打开:/apps/home/controller/IndexControl

阅读更多

解决pbootcms栏目URL名称,不支持_ 下划线问题,

2023-06-12

栏目URL名称自定义功能还是挺常用的。但是发现客户要去有下划线,但是pbootcms不支持。下面是修改方法,解决办法:找到ContentSortController.php修改二处。一个是新增和修改,//官方正则不支持下横杠//if

阅读更多

pbootcms利用扩展标签二次格式化模型字段 -分割多行字段成为faq问答

2023-04-24

分割多行字段成为faq问答,首先先模型字段新增一个多行字段,填写内容如下,问题.答案.@问题1.答案.@@是必备的。因为要拆分二次,一个组一个@然后在,\apps\home\controller/ExtLabelController.php 目录里面添加自定义标签 (扩展标签)添加以下代码/*必备启动函数*/

阅读更多

FFmpeg解决大视频播放卡顿-FFmpeg Batch AV Converte_3.0.5图形软件 设置批量视频转m3u8教程

2024-05-28

最近网站制作一个视频播放网站,客户视频比较大。把视频已经托管在腾讯云对象存储里面。也开启了加速。下载速度也有20M,但是视频。拖动。或者快进还是卡顿,于是找解决方案,发现把视频格式转成m3u8格式是一个很好的解决办法,他这个格式。会把视频切成n个ts个视频。而且所有的文件大小。会变小很多很多。这样测试一

阅读更多

pbootcms 增加清理冗余图片功能可视化,默认没显示,自己活动添加

2022-11-29

清理冗余图片功能可视化,支持图片预览和选择图片手动删除。默认没显示,自己手动添加官方最新版本已经增加,但菜单没加入打开链接/admin.php?p=/menu/index增加菜单(需要选择大类。不能是顶级分类)输入url为下面的/admin/ImageExt/index其他随意,然后重新登录后台即可

阅读更多

最新7.0video.js响应式设置,配置和设置语言为繁体

2021-12-14

最新7.0video.js响应式设置,配置和设置语言为繁体,先导入相应js和css <link href="/videojs/video-js.min.css" rel="stylesheet"> <script src="/videojs/video.min.js"></script> <script src="/videojs/lang/zh-TW.js"&g

阅读更多

{content:tags}关联文章 以及判断tags是否为空

2022-07-15

tags关联文章{content:tags}{pboot:if('{content:tags}'=='')} 空{else}手册:{pboot:list scode=40 tags={content:tags}}<p><a href="[list:link]">[list:title]</a></p>{/pboot:list}常见问题:{pboot:list scode=41 tags={content:tags}}<

阅读更多

pbootcms 自动获取标题内容,填写到url名称字段,英文seo必备

2024-01-02

利用jquery 解决,并且过滤特殊字符和空格问题,<script>//增加自动获取url名称$(document).ready(function() { // 监听上一个表单输入内容的变化 $('#input1').on('input', function() { var inpu

阅读更多