1

選択ボックス (ユーザーが特定のタイプのユーザー、プロジェクト、または 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);
}
4

1 に答える 1

1

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

  $form['#action'] = url('zoek');
  $form['#redirect'] = FALSE;
于 2009-08-13T22:17:01.130 に答える