Drupal search 使用简单总结
要使用drupal search,首页要到后台模块管理开启search模块,然后重建索引,运行cron,这样就可以使用了。
search 重建索引大概只涉及到core表。比如 node title node body。
如果想搜索cck 等额外的内容,可以借用其他模块。比如faceted_search, field_indexer, cck_facets等模块结合。但是往往依靠模块可能不是很灵活。这时可以自己根据drupal search 提供的hook,直接来扩展search功能。
扩展search 很重要的hook,大概就是hook_search:
hook_search($op = 'search', $keys = NULL)
可以自定义搜索项目,可以查看node 高级搜索,就是扩展search基本的功能而来。根据这个hook,可以自定义搜索内容,比如搜索users或者nodes或者comments都可以。
具体的搜索形式,你可以根据form api 来扩展,最常用的就是hook_form_alter()。
也就是说,你可以使用form api 随心所欲的定义搜索表单,N个搜索表单都可以,当然你可以自定义一个form validate 来验证表单数据。关键一点就是key values,它的格式是比如:type:city name:xxx age:23。在验证的使用可以使用 form_set_value 把这些值保存,hook_search会自动接收处理,最后的数据都放在do_search 来处理得到结果,然后返回一个search结构数组。
最后,如果需要修改搜索结果模板,可以拷贝 search-result.tpl.php 到自己的theme目录即可。
本文固定链接:http://www.penglig.com/post-18.html
本文由Cfans_gpl原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址。
本文由Cfans_gpl原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址。