2009-08-12 6 views
1

J'ai construit un module de bloc simple avec une boîte de sélection (où un utilisateur peut sélectionner un certain type d'utilisateur ou de projet ou groupe) et peut remplir un terme de recherche. Lors de l'envoi, il interroge les nœuds qui ont ces étiquettes.Drupal: où afficher les résultats de recherche personnalisés

Les résultats, liens vers des profils utilisateur ou des noeuds, doivent être imprimés sur la page.

Je ne sais pas comment imprimer les résultats.

Je veux aller à une autre page, et montrer les résultats là-bas ... Mais comment puis-je faire cela?

<?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); 
} 

Répondre

1

Vous pouvez probablement gérer ce de plusieurs façons, mais 2 que vous pourriez envisager:
1. (La recherche par défaut façon le manipule) Ajouter la recherche params à l'url afin qu'ils puissent être extraits et visualisés sur la page appropriée. N'interrogez pas les résultats avant de les avoir envoyés à la page que vous avez définie dans votre menu.
2. Modifiez l'emplacement de votre formulaire et indiquez à votre formulaire de ne pas rediriger. Par défaut, vos formulaires seront publiés sur la même page et redirigés à la fin de la publication. En utilisant ce qui suit, vous devriez pouvoir affecter ce comportement:

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