Content management system 如何在Drupal 7中获取搜索表单值
我尝试实现一个新模块,它捕获默认搜索表单中写入的键,并显示默认搜索结果页面以外的其他结果。使用这些其他结果,我将进行一个外部查询,该查询放在一个特殊的块中 你知道怎么做吗 我曾尝试使用自定义模块制作“hook\u alter\u form”,但没有成功 换言之: 我有这样一个函数:Content management system 如何在Drupal 7中获取搜索表单值,content-management-system,drupal-7,search-form,Content Management System,Drupal 7,Search Form,我尝试实现一个新模块,它捕获默认搜索表单中写入的键,并显示默认搜索结果页面以外的其他结果。使用这些其他结果,我将进行一个外部查询,该查询放在一个特殊的块中 你知道怎么做吗 我曾尝试使用自定义模块制作“hook\u alter\u form”,但没有成功 换言之: 我有这样一个函数: function my_function_name_form_alter(&$form,&$form_state,$form_id){ switch($form_id){
function my_function_name_form_alter(&$form,&$form_state,$form_id){
switch($form_id){
case 'search-block-form':
//Here i want to catch the text that i wrote in the search box
break;
}
}
谢谢你 您可以更改搜索查询以显示其他结果:
function mymodule_query_alter(QueryAlterableInterface $query){
$is_search = FALSE;
foreach ($query->getTables() as $table) {
if ($table['table'] == 'search_index') {
$is_search = TRUE;
}
}
if ($is_search) {
global $language;
$db_or = db_or();
$db_or->condition('n.type', 'event', '=');
$db_or->condition('n.type', 'real_sitio', '=');
$query->condition($db_or);
$query->condition('n.language' , $language->language, '=');
}
}
这是一个性能杀手,因此drupal的修补程序增加了一个钩子,用于直接在搜索查询中进行更改:
所以最后它看起来像:
function mymodule_search_query_search_node_alter(&$query) {
$query->condition('n.type', 'article', '=');
}
你应该向我们展示你的尝试和失败。事实上,这个问题非常广泛,很难回答。好的,在我创建的de模块中,我有一个这样的函数:
function my_function\u name\u form\u alter(&$form,&$form_state,$form_id){switch($form_id){case'search block form'://这里我想捕捉我在搜索框break中写的文本;}}
谢谢!你可能应该把这一点放在最初的问题中,以确保可读性和后面的任何人。使用问题底部的“编辑”链接。好的,对不起,我是这个论坛的新手,你看!您需要使用搜索块表单而不是搜索块表单