Drupal:显示自定义搜索结果的位置

时间:2009-08-12 11:25:08

标签: drupal-6

我构建了一个带有选择框的简单块模块(用户可以选择某种类型的用户或项目或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);
}

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式解决这个问题,但您可以考虑2: 1.(默认搜索处理它的方式)将搜索参数添加到网址,以便可以在适当的页面上提取和查看它们。在您将结果发送到菜单挂钩中定义的页面之前,请不要实际查询结果 2.更改表单的发布位置,并告知表单不要重定向。默认情况下,您的表单将回发到同一页面并在帖子的末尾重定向。通过使用以下内容,您应该能够影响该行为:

  $form['#action'] = url('zoek');
  $form['#redirect'] = FALSE;