Dummy module implementing a search type for search module testing.
<?php
/**
* @file
* Dummy module implementing a search type for search module testing.
*/
/**
* Implements hook_search_info().
*/
function search_extra_type_search_info() {
return array(
'title' => 'Dummy search type',
'path' => 'dummy_path',
'conditions_callback' => 'search_extra_type_conditions',
);
}
/**
* Implements callback_search_conditions().
*
* Tests the conditions callback for hook_search_info().
*/
function search_extra_type_conditions() {
$conditions = array();
if (!empty($_REQUEST['search_conditions'])) {
$conditions['search_conditions'] = $_REQUEST['search_conditions'];
}
return $conditions;
}
/**
* Implements hook_search_execute().
*
* This is a dummy search, so when search "executes", we just return a dummy
* result containing the keywords and a list of conditions.
*/
function search_extra_type_search_execute($keys = NULL, $conditions = NULL) {
if (!$keys) {
$keys = '';
}
return array(
array(
'link' => url('node'),
'type' => 'Dummy result type',
'title' => 'Dummy title',
'snippet' => "Dummy search snippet to display. Keywords: {$keys}\n\nConditions: " . print_r($conditions, TRUE),
),
);
}
/**
* Implements hook_search_page().
*
* Adds some text to the search page so we can verify that it runs.
*/
function search_extra_type_search_page($results) {
$output['prefix']['#markup'] = '<h2>Test page text is here</h2> <ol class="search-results">';
foreach ($results as $entry) {
$output[] = array(
'#theme' => 'search_result',
'#result' => $entry,
'#module' => 'search_extra_type',
);
}
$output['suffix']['#markup'] = '</ol>' . theme('pager');
return $output;
}
/**
* Implements hook_search_admin().
*/
function search_extra_type_search_admin() {
// Output form for defining rank factor weights.
$form['extra_type_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Extra type settings'),
'#tree' => TRUE,
);
$form['extra_type_settings']['boost'] = array(
'#type' => 'select',
'#title' => t('Boost method'),
'#options' => array(
'bi' => t('Bistromathic'),
'ii' => t('Infinite Improbability'),
),
'#default_value' => config('search_extra_type.settings')
->get('boost'),
);
$form['#submit'][] = 'search_extra_type_admin_submit';
return $form;
}
/**
* Form API callback: Save admin settings
*/
function search_extra_type_admin_submit($form, &$form_state) {
config('search_extra_type.settings')
->set('boost', $form_state['values']['extra_type_settings']['boost'])
->save();
}
Name | Description |
---|---|
search_extra_type_admin_submit | Form API callback: Save admin settings |
search_extra_type_conditions | Implements callback_search_conditions(). |
search_extra_type_search_admin | Implements hook_search_admin(). |
search_extra_type_search_execute | Implements hook_search_execute(). |
search_extra_type_search_info | Implements hook_search_info(). |
search_extra_type_search_page | Implements hook_search_page(). |