You are here

function commons_search_search_form_submit in Drupal Commons 7.3

Search form submit handler. Add group id filter if appropriate.

File

modules/commons/commons_search/commons_search.module, line 99

Code

function commons_search_search_form_submit($form, &$form_state) {
  if ($form_state['values']['custom_search_types'] == 'o-commons_search' && isset($form_state['search_group_id'])) {
    $keys = $form_state['values']['search_block_form'];
    if (module_exists('apachesolr_search')) {

      // Add on a filter to the solr query to only list results within the
      // specified group.
      $qm = strpos($form_state['redirect'], '?') !== FALSE ? '' : '?';
      $form_state['redirect'] .= $qm . '&f[1]=sm_og_group_ref:node:' . $form_state['search_group_id'];
    }
    else {

      // Using core search to search within a group doesn't work, so we simply
      // use a view with exposed search terms to do the searching.
      drupal_goto('search/group/' . $form_state['search_group_id'], array(
        'query' => array(
          'keys' => $keys,
        ),
      ));
    }
  }
  else {
    if ($form_state['values']['custom_search_types'] == 'c-user') {

      // Force update the redirect on User search since Custom Search is weird.
      $keys = check_plain($form_state['values']['search_block_form']);
      $form_state['redirect'] = 'search/user/' . $keys;
    }
  }
}