发布日期: 2023-07-10 | 来源: 智软设计工作室
最近制作网站的时候。因为搜索的地方比较多。比如常见问题和经销商,产品,都得搜索,用传统得{pboot:scaction} 他都会到统一得页面去,当然页可以用 <input type="hidden" name="searchtpl" value="1.html" >,置顶不同模板,但是置顶后。有些问题。比如栏目封面和当前位置,都会到搜索哪里。当然你页可以定死,但是不太灵活,万一后面又有其他栏目就又要做个模板了。下面是pboot:list列表页直接搜索得解决方法:
先找到:apps/home/controller/ParserController.php
找到:
然后:
$count = count($matches[0]);
下面添加:
/*添加列表直接搜索 */
$keyword = request('keyword', 'vars');
/*end */然后在
下面添加:
// 采取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行左右:
//加入列表页直接搜索?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
2023-08-27
我们在做网站得时候,有时候会为了防止人家拿代码 复制 保存等功能。来做一点防御方法,但是这种只能仿菜鸟,没法彻底防御,下面是代码,vararr=[123,17,18];//先定义下要禁止哪些键,document.oncontextmenu=newFunction("event.returnValue=false;"),//禁用
阅读更多2024-03-22
pbootcms 新版本中,加入了一个 url不允许带其他参数,这个也是为了安全,可以大大减少注入风险,一但访客加入了其他?参数 ,就会出现404页面,那我们怎么取消后缀参数过滤安全功能了,有写客户网站可能要推广什么的,推广公司可能需要带这些参数来统计报告,下面我说下怎么解决。打开:/apps/home/controller/IndexControl
阅读更多2023-06-12
栏目URL名称自定义功能还是挺常用的。但是发现客户要去有下划线,但是pbootcms不支持。下面是修改方法,解决办法:找到ContentSortController.php修改二处。一个是新增和修改,//官方正则不支持下横杠//if
阅读更多2023-04-24
分割多行字段成为faq问答,首先先模型字段新增一个多行字段,填写内容如下,问题.答案.@问题1.答案.@@是必备的。因为要拆分二次,一个组一个@然后在,\apps\home\controller/ExtLabelController.php 目录里面添加自定义标签 (扩展标签)添加以下代码/*必备启动函数*/
阅读更多2024-05-28
最近网站制作一个视频播放网站,客户视频比较大。把视频已经托管在腾讯云对象存储里面。也开启了加速。下载速度也有20M,但是视频。拖动。或者快进还是卡顿,于是找解决方案,发现把视频格式转成m3u8格式是一个很好的解决办法,他这个格式。会把视频切成n个ts个视频。而且所有的文件大小。会变小很多很多。这样测试一
阅读更多2022-11-29
清理冗余图片功能可视化,支持图片预览和选择图片手动删除。默认没显示,自己手动添加官方最新版本已经增加,但菜单没加入打开链接/admin.php?p=/menu/index增加菜单(需要选择大类。不能是顶级分类)输入url为下面的/admin/ImageExt/index其他随意,然后重新登录后台即可
阅读更多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
阅读更多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}}<
阅读更多2024-01-02
利用jquery 解决,并且过滤特殊字符和空格问题,<script>//增加自动获取url名称$(document).ready(function() { // 监听上一个表单输入内容的变化 $('#input1').on('input', function() { var inpu
阅读更多