你在这里


替换Drupal系统提供的搜索框和结果

James Qi 2016年9月29日 - 16:17 发布

  使用Drupal很多年了,在站内搜索上基本上都是采用了系统自带的搜索功能,搜索框基本没变,只是搜索结果页通过search-results.tpl.php和search-result.tpl.php进行过一些小的修改。但遇到了数据量巨大、汉字编码等问题的时候,也在某些情况下采用过其它方式:

  • Google Custom Search Engine,这个在国外还可以用,在国内无法使用;
  • Apache Solr,需要自建一套搜索功能,比较复杂;
  • Drupal Views,可以实现一些组合条件搜索查询功能。

  最近在新建已经完善以前网站的时候,遇到用户搜索目标比较清晰,我们网站中不一定有正好用户需要的关键词但有其中截取的一部分的信息,例如电话号码、IP地址等,如果能用程序做一些判断就可以让用户避免“搜索无结果”的答复,后来试了几种办法,可以用程序与Drupal本身的搜索功能结合起来用,给用户更好的体验:

  • 修改search-results.tpl.php模板,在正常搜索结果下方添加PHP程序,对搜索词(从URL获取)进行提取、分析,给用户呈现搜索以外的结果或者操作提示;
  • 去掉Drupal搜索框block,完全自己新建一个带form的block,提交到一个专门的URL,在这个URL中用PHP程序对关键词进行提取、判断,如果符合某些特征就跳转到相应的功能模块处理,如果不符合预订的特征就跳转到正常搜索页面URL(www.example.com/search/node/xxx);
  • 修改search-block-form.tpl.php模板,在提交前就按自己的想法修改,类似自建一个带form的block;
  • 在template.php中用YOURTHEME_form_search_block_form_alter来替换系统的搜索框。

  前两种我都试过,后面两种还没有试过,但都应该可以使用。

自由标签:

添加新评论

Plain text

  • 不允许HTML标记。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符