织梦自定义搜索分析
为什么要使用织梦自定义搜索?
在织梦(DedeCMS)内容管理系统中,默认的搜索功能较为简单且不够精确,无法满足一些特定需求,用户需要根据特定的字段进行高级搜索,而不仅仅是简单的关键词匹配,这时,自定义搜索就显得尤为重要,通过自定义搜索,站长可以让用户按照自己的要求进行搜索,从而获得更精确的结果。
如何进行织梦自定义搜索?
进入织梦后台,点击“内容模型管理”,然后找到放大镜图标并点击,即可进入自定义搜索管理界面,在这个界面中,可以看到五个部分:频道ID、频道名称、主表字段、附加表字段和自定义模板。
频道ID和频道名称:这两个字段值是从mychannel_main.php
文件中查询表dede_channeltype
得到的。
主表字段:总共有五个固定的字段,当然也可以自己在文件mychannel_main.php
中定义,如果频道ID是负数,说明是单表独立模型,没有主表字段。
附加表字段:这些字段也是可以在自定义搜索中选择的。
自定义模板:默认模板为advancedsearch.htm
,但可以根据需要进行修改。
自定义搜索管理的实现机制
自定义搜索管理的处理程序主要是mychannel_edit.php
,对应的模板文件是mychannel_modifysearch.htm
,当选择好要搜索的字段并点击确定后,程序会生成HTML代码,这些代码会被放入搜索表单中,而搜索结果页则是由advancedsearch.htm
处理,对应的程序文件是advancedsearch.php
。
具体实现步骤
1、获取频道ID和频道名称:从mychannel_main.php
文件中查询表dede_channeltype
得到频道ID和频道名称。
2、获取主表字段和附加表字段:通过变量$step
分成两部分,当$step=0
时,获取主表字段和附加表字段;当$step=1
时,生成HTML代码。
3、生成搜索表单:选择好要搜索的字段后,点击确定,程序会生成HTML代码,将这些代码放入搜索表单中。
4、处理搜索请求:搜索结果页由advancedsearch.htm
处理,对应的程序文件是advancedsearch.php
。
FAQs
问题一:如何在织梦中添加自定义字段并进行搜索?
答:需要在数据库中找到名为dede_full_search
的表,并将自定义字段添加进去,如果要添加一个名为mygoods
的字段,则执行SQL命令ALTER TABLE dede_full_search ADD mygoods VARCHAR(255) NOT NULL;
,在后台的自定义搜索中选择该字段作为搜索条件即可。
问题二:如何更改织梦自定义搜索结果页面的模板?
答:织梦自带的搜索结果页面模板可能不太美观,可以通过修改advancedsearch.htm
文件来更改模板样式,将advancedsearch.htm
文件拷贝到自己的模板目录下,然后根据需要进行修改,如果需要在头部和尾部调用自定义标签,可以使用以下代码:
<?php pasterTempletDiy("default/head.htm"); ?>
<?php pasterTempletDiy("default/footer.htm"); ?>
在include/extend.func.php
文件的最后边添加以下代码:
function pasterTempletDiy($path) { require_once(DEDEINC."/arc.partview.class.php"); global $cfg_basedir, $cfg_templets_dir; $tmpfile = $cfg_basedir.$cfg_templets_dir."/".$path; //模版文件的路径 $dtp = new PartView(); $dtp>SetTemplet($tmpfile); $dtp>Display(); }
这样,就可以在搜索结果页面的头部和尾部调用自定义标签了。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1228027.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复