如何 把 dedecms 搜索页面模糊查找改为精确查找
这种多条件筛选构思上就是利用条件拼接sql语句,但就dedecms的功能来看,静态页比较难实现。
建议进行二次开发,或者制作php单页。
况且存储你所要查询的信息的表,应该也不是dede内置的表就能做的。
一个比较好的方式就是静态的栏目页,用ajax向一个php页提交参数,得到返回值后载入到页面中,体验好,难度也不大。
引入 /include/commonincphp 文件,利用dedecms的语法二次开发吧
dede57伪静态设置七步法:
第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;
注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静态的。Apache服务器伪静态相对简单,直接在htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载Rewrite组件,然后配置httpdini文件。
第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:
将所有文档设置为“仅动态浏览”:
update dede_archives set ismake=-1
将所有栏目设置为“使用动态页”:
update dede_arctype set isdefault=-1
第三步、列表页、文章页伪静态修改
打开/include/helpers/channelunithelperphp。
(1)查找:
//动态文章
if($cfg_rewrite == 'Y')
{
return $GLOBALS["cfg_plus_dir"]"/view-"$aid'-1html';
}
替换为
//动态文章
if($cfg_rewrite == 'Y')
{
return "/DedeCMS/DedeCMS57-"$aid'-1html';
}
意思是:将默认的/plus/view-1-1html文章链接格式改为/DedeCMS/DedeCMS57-1-1html。
(2) 查找:
//动态
$reurl = $GLOBALS['cfg_phpurl']"/listphptid="$typeid;
替换为
//动态
$reurl = "/category/list-"$typeid"html";
意思是:将默认的频道或是列表页URL/plus//listphptid=1变更为/dedecms/list-1html形式。
第四步、列表分页伪静态修改
打开/include/arclistviewclassphp
查找:
$plist = str_replace('phptid=', '-', $plist);
替换为
$plist = str_replace('plus/listphptid=', ‘DedeCMS/DedeCMS57-', $plist);
将默认的plus/listphptid=替换成RMB/list-;
意思是:将默认的列表分页链接格式plus/listphptid=x$x$xl修改为DedeCMS/DedeCMS57-x-x-xhtml。
第五步、文章分页伪静态
打开/include/arcarchivesclassphp,找到获取动态的分页列表GetPagebreakDM()函数末尾处:
查找:
$PageList = str_replace("plus/viewphptid=","DedeCMS/DedeCMS57-",$PageList);
替换为
$plist = str_replace('plus/viewphptid=', ’DedeCMS/DedeCMS57-', $plist);
将默认的plus/viewphptid=替换成RMB/huilv-;
意思是:将默认的文章分页链接格式plus/viewphptid=x$x$xl修改为DedeCMS/DedeCMS57-x-x-xhtml
第六步、TAG标签伪静态
DedeCms默认的TAG标签URL,形如/tagsphp/dedecms模板 /,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板 /,是不是好看多了。
下面我们来改一下,打开/include/taglib/taglibphp:
查找:
$row['link'] = $cfg_cmsurl"/tagsphp/"urlencode($row['keyword'])"/";
替换为
$row['link'] = $cfg_cmsurl"/tags/"urlencode($row['keyword'])"/";
这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!
第七步、httpdini伪静态规则:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^()/RMB/list-([0-9]+)\html $1/plus/list\php\tid=$2 [I]
RewriteRule ^()/RMB/list-([0-9]+)-([0-9]+)-([0-9]+)\html $1/plus/list\php\tid=$2&TotalResult=$3&PageNo=$4 [I]
RewriteRule ^()/RMB/huilv-([0-9]+)-([0-9]+)\html $1/plus/view\php\arcID=$2&pageno=$3 [I]
RewriteRule ^()/()_()_([0-9]+)\html $1/huilv/from=$2&to=$3&num=$4 [I]
RewriteRule ^()/tags\html $1/tags\php [I]
RewriteRule ^()/tags/()(:(\)) $1/tags\php\\/$2 [I]
RewriteRule ^()/tags/()\/(:(\)) $1/tags\php\\/$2\/ [I]
RewriteRule ^()/tags/()\/([0-9])(:(\)) $1/tags\php\\/$2\/$3 [I]
RewriteRule ^()/tags/()\/([0-9])\/(:(\)) $1/tags\php\\/$2\/$3\/ [I]
将上面代码保存为:httpdini 上传到网站的根目录。
如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。
找到searchphp这个文件,修改!
找到里面有这个标题搜索,和智能搜索的,将其中的2个代码位置调换下就可以了,后面的字你可以改成自己想要的即可!不明白的HI我,或者百度飞鹿优化,找里面的教程
这个你可以通过修改搜索模板文件来达到你的要求。默认的搜索结果是显示内容标题,你可以通过重新编写调用代码来实现,可以用arclist来实现,默认的是用LIST标签来调用。最好是将栏目属性设置成“模型”这样更利于调用内容。不然调用效果也不是很好。
0条评论