2009-08-12 11 views
1

私は選択ボックス(ユーザーが特定のタイプのユーザーまたはプロジェクトまたはグループを選択できる)で単純なブロックモジュールを構築し、検索語を入力できます。Drupal:カスタム検索結果を表示する場所

submitで、thesesタグを持つノードを照会します。

結果、ユーザープロファイルまたはノードへのリンクをページに印刷する必要があります。

結果の印刷方法はわかりません。

私は別のページに行き、そこに結果を表示したいと思います...しかし、どうすればいいですか?彼らは抽出され、上見ることができるよう
1(デフォルトの検索がそれを処理する方法)URLへの検索のparamsを追加:あなたはおそらく、いくつかの方法がありますが検討するかもしれない2はこれを扱うことができ

<?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

適切なページ。メニューフックで定義したページにそれらを送信するまで、実際に結果を照会しないでください。
2.フォームの投稿場所を変更し、リダイレクトしないようにフォームに指示します。デフォルトでは、フォームは同じページにポストバックされ、ポストの最後にリダイレクトされます。以下を使用すると、その動作に影響を与えることができます。

$form['#action'] = url('zoek'); 
    $form['#redirect'] = FALSE; 
関連する問題