最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
当前位置:主页 > 网站建设 > 织梦前台搜索和高级搜索简单分析,织梦文章

织梦前台搜索和高级搜索简单分析,织梦文章

时间:2023-07-20 10:07:20 阅读: 文章分类: 网站建设 作者: dede技术员

导读:织梦文章织梦文章搜索作为网站上快速查询内容的工具,必不可少,织梦里面的搜索有好几种,例如,我们用织梦进行仿站或进行二次开发,经常用到的有高级搜索、前台搜索和后台自定义搜索,这个dede模板堂dede免费校板下战。

dede模板堂dede免费校板下战  搜索作为网站上快速查询内容的工具,必不可少,织梦里面的搜索有好几种,例如,我们用织梦进行仿站或进行二次开发,经常用到的有高级搜索、前台搜索和后台自定义搜索,这个教程主要简分析一下,前台搜索功能,织梦前台搜索功能与自定义搜索功能,大同小异,处理过程也差不多。   前台搜索和高级搜索如下图所示。 织梦前台搜索                   前台搜索 高级搜索           &nb手机模板dedesp;       高级搜索   前台搜索可以说是高级搜索的一个简单化版,言外之意就是处理这二个提交表单的搜索关键字程序是一样的,没有错,处理搜索的程序文件都是plus/search.php。前台搜索模板是织梦模板头部模板head.htm,高级搜索对应的模板是,织梦模板里面的heightsearch.htm,它们的搜索结果页都是templets/default/search.htm,测试是不是这一个模板页,可以查看“搜索视图类”文件arc.searchview.class.php,在131行,找到: $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm";   这里就是定义了,高级搜索和前台搜索的搜索结果页模板,知道这个原理,我们就可以在这里自己定义自己喜欢的模板名称文件了。还可以用另一种方法来测试,高级搜索和这个前台搜索的结果模板是不是用的这个模板文件,我们只需要在这个模板search.htm里面随便写点东西,在我们搜索后,看看有没有我们刚写的东西,如果有说明,这二个都是用的同一个搜索结果页模板文件,这也是一种方法。   我们知道织梦模板都是通过织梦标签来调用数据的,但是在织梦插件里面,一般都不用织梦标签,而是用php代码,这个前后台搜索也是如此,特别是高级搜索。我们先看一下前台搜索,下面是搜索代码form表单。   这个表单里面,只用了{dede:global.cfg_cmsurl/}这么一个标签,其它都是html原生态的标签,这些没有什么好说的,最主要的是看action里面的文件search.php,这是重点,再看一下这个表单的name值,这点非常重要,因为,当用户输入关键搜索后,这些name值要一起发送到search.php里面的。   再看一下高级搜索模板heightsearch.htm里面的表单,我们会发现完全没有织梦表单,而是html标签和php程序,注意,它的action 也是search.php,这就可以肯定了,前台搜索和高级搜索都是通过search.php来处理,用户输入的关键字的。   因为前台搜索是高级搜索的简化版本,所以,我们只需要分析高级搜索,就可以了。   在分析高级搜索前,我们要注意一个问题:只要在php里require,include等包括了一个模板(或其它php文件),就相当于把这个模板(或其它php文件)里的代码复制到这个php文件,而模板文件(或其它php文件)就相当于,把这个php文件,通过require,include等作为联系,从php分害出来的一部分,虽然,分割出来了,但是由于require,include等,使得这个模板文件(或其它php文件)仍然是这个php文件的一部分,只是为了方便处理,才把它们分开的。这在php里面都是通用的,而不是织梦专有的。   就像在我们做模板时,把一个模反分成三部分:头部、中间和尾部,便于管理,试想如果一个程序文件,不分开的话,有可能,这个文件使它里面的全部代码,而另一个文件只使用它里面的部分代码,这样就使得不使用的代码也要加载一次,浪费服务器资源,也不方便。   知道上面的原理,我们打开heightsearch.php文件,你会发现只有三行代码,重点看下面这二个文件:   require_once(DEDEINC.'/typelink.class.php');   require_once(DEDETEMPLATE.'/pl模板织梦us/heightsearch.htm');   第一个是“栏目连接类”typelink.class.php文件,它的作用就是处理栏目的连接,例如像这样的当前位置: 主页 > 网页基础 > HTML > 连接,以及高级搜索里面的“网站栏目”、“类型”等。对于这个类文件,今天不是我们的重点,我们只需要知道,我们调用里面的一个方法GetOptionArray(0,0,0),这个方法的作用就是:获得类别列表,这里所说的类别就是栏目。对于这个方法,有兴趣的可以去研究一下。   打开高级搜索模板,heightsearch.htm,我们一一分析:   第一项:同站栏目,上面的们分析了用的是GetOptionArray(0,0,0)方法,把数据库里面的栏目表dede_arctype里面的,所有栏目都筛选出来。   第四项:内容类型,这个是把数据库里面的模型表dede_channeltype,里面的所有模型都循环出来,这种原生态的php代码调用在模板插件里面的经常用到,如果现在想调用其它的表里面的数据,我们可以通过种方法来调用。   第二项:关键字,不知道大家遇到过这种情况没有,当我们在网站上搜索时,有时候只输入了一个符号,例如:只输入了一个字母a,点搜索后,程序会提示“关键字不能小于2个字节!”,有时候我们需要一个字节的搜索,如何改呢?   修改方法:在文件search.php里面的第79行,找到if(($keyword=='' || strlen($keyword)<2) && empty($织梦网站模板typeid)),把里面的小于2,改成小于1或者直接把strlen($keyword)<2) && 这一句去掉即可,搜索一个关键字节了。     在这个search.php文件里面,上面大部分是处理我们在高级搜索里面的搜索时,选择的条件,全是为下面这三行代码服务的: $sp = new SearchView($typeid,$keyword,$orderby,$channeltype,$searchtype,$starttime,$pagesize,$kwtype,$mid); $keyword = $oldkeyword; $sp->Display();   这三行代码,就是对“搜索视图类”arc.searchview.class.php进行实例化,即创建对象,然后,把用户要搜索的关键字以及选择的条件,进行真正的处理,并显示到搜索结果页里面。在这个类里面涉及到了数据库操作,而search.php文件,则只是对搜索提交过来的参考进行基本的检验,例如输入的关键字有合不合法等。这个文件不直接与数据库打交道,而是让这个文件后面的类,进行数据库操作,这样就更加保证了程序的安全性,提高了效率。在php中 mvc里面我们称search.php为控制器,即里面的c。   这种方法我们在写程序时,也要参考一下,就是对于search.php接收到的数据,我们首先要处理,然后,再把处理后的数据交给更底层的模块处理,处理后再还给search.php,通过search.php显示到用户前面,这种思想就是mvc。   这个教程只是简单的分析了一下,高级搜索的处理过程,即对提交的搜索要求进行基本的数据检验,然后,提交给实例化的对象进行处理,对象才是真正是数据库打交道的代码,而这些代码往往都比较复杂,看上去,但如果我们细细分析一下,其实也不是多么难。   最后,要说的是,织梦自定义搜索文件是advancedsearch.php,织梦可能写错了,这个也叫高级搜索,其实,这个叫自定义搜索文件,它对应的模板是advancedsearch.htm。对于自定义搜索我们会在另一个教程里分析。相关dede模板堂dede免费校板下战。

关键词标签: 前台 高级搜索 织梦

声明: 本文由我的SEOUC技术文章主页发布于:2023-07-20 ,文章织梦前台搜索和高级搜索简单分析,织梦文章主要讲述前台,高级搜索,织梦网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_31487.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章