我构建了一个带有选择框的简单块模块(用户可以选择某种类型的用户或项目或og组)并填写搜索词。
在提交时,它会查询具有这些标记的节点。
必须在页面上打印结果,指向用户配置文件或节点的链接。
我不知道如何打印结果。
我想去另一个页面,并在那里显示结果......但我该怎么办呢?
<?php
// $Id$
/*
* @file
* Searches on Project, Person, Freelancer or Group. Search will be done on taxonomy.
*/
define('GENERAL_TAGS_VID', 25);
/**
* Implementation of hook_menu().
*/
function vm_search_menu() {
$items['zoek'] = array(
'title' => t('Zoek'),
'page callback' => 'zoek_view',
'access arguments' => array('search content'),
'type' => MENU_SUGGESTED_ITEM,
);
return $items;
}
/**
* Define the form.
*/
function vm_search_general_search_form() {
$search_on = array(
'project' => 'Zoek project',
'freelancer' => 'Zoek freelancer',
'persoon' => 'Zoek persoon',
'groep' => 'Zoek groep',
);
$form['search_on'] = array(
'#type' => 'select',
'#options' => $search_on,
);
$form['search_term'] =
array('#type' => 'textfield',
'#autocomplete_path' => 'taxonomy/autocomplete/'. GENERAL_TAGS_VID,
'#maxlength' => 1024,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Zoek'),
);
return $form;
}
function vm_search_block($op = 'list', $delta = 0, $edit = array()) {
switch ($op) {
case 'list':
$blocks[0]['info'] = t('General Search');
return $blocks;
case 'view':
$block['subject'] = t('Zoek');
$block['content'] = drupal_get_form('vm_search_general_search_form');
return $block;
}
}
function vm_search_general_search_form_submit($form, &$form_state) {
switch ($form_state['values']['search_on']) {
case 'project':
case 'groep':
$nodes = search_nodes($form_state);
break;
case 'freelancer':
case 'persoon':
$users = search_users($form_state);
}
dpm($form_state);
}
答案 0 :(得分:1)
您可以通过多种方式解决这个问题,但您可以考虑2: 1.(默认搜索处理它的方式)将搜索参数添加到网址,以便可以在适当的页面上提取和查看它们。在您将结果发送到菜单挂钩中定义的页面之前,请不要实际查询结果 2.更改表单的发布位置,并告知表单不要重定向。默认情况下,您的表单将回发到同一页面并在帖子的末尾重定向。通过使用以下内容,您应该能够影响该行为:
$form['#action'] = url('zoek');
$form['#redirect'] = FALSE;