Browse Source

code cleanup and comments

2.x-ebsco
Paul Pound 10 years ago
parent
commit
8a3563c82d
  1. 49
      roblib_search.module
  2. 67
      targets/solr_site/roblib_search_solr_site.module

49
roblib_search.module

@ -29,6 +29,17 @@ function roblib_search_menu() {
}
/**
* A form for managing the modules configuration.
*
* @param array $form
* A Drupal form array
* @param array $form_state
* A Drupal formstate array
*
* @return array
* A Drupal form
*/
function roblib_search_config_form($form, &$form_state) {
$form['roblib_search_panel_page'] = array(
@ -69,6 +80,9 @@ function roblib_search_permission() {
}
/**
* Implements hook_block_info().
*/
function roblib_search_block_info() {
$blocks['roblib_search_form'] = array(
@ -87,7 +101,6 @@ function roblib_search_block_info() {
* Implements hook_theme().
*/
function roblib_search_theme() {
// set path
$path = drupal_get_path('module', 'roblib_search');
$file = 'theme.inc';
@ -101,16 +114,25 @@ function roblib_search_theme() {
);
}
/**
* Hook the panels pane preprocessor so we can wrap it in a div for themeing.
*
* @param array $variables
* Drupal variables array
* @param $hook
*/
function roblib_search_preprocess_panels_pane(&$variables, $hook){
switch ($variables['pane']->subtype) {
case 'roblib_search-roblib_search_other':
$variables['title_prefix'] = '<div class="roblib-search-header roblib-search-other-sources-header">';
$variables['title_suffix'] = '</div>';
break;
}
}
/**
* Implements hook_init().
*/
function roblib_search_init() {
// Make qtip available for all targets js.
drupal_add_js(drupal_get_path('module', 'roblib_search') . '/js/jquery.qtip.min.js');
@ -119,6 +141,9 @@ function roblib_search_init() {
drupal_add_css(drupal_get_path('module', 'roblib_search') . '/css/jquery.qtip.min.css');
}
/**
* Implements hook_block_view().
*/
function roblib_search_block_view($delta = '') {
switch ($delta) {
case 'roblib_search_form':
@ -137,8 +162,9 @@ function roblib_search_block_view($delta = '') {
* Roblib search simple search form submit.
*
* @param array $form
* Drupal form array
* @param array $form_state
*
* Drupal formstate array
*/
function roblib_search_simple_form_submit($form, &$form_state) {
global $base_url;
@ -151,6 +177,12 @@ function roblib_search_simple_form_submit($form, &$form_state) {
drupal_goto($redirect_url, array('query' => array('roblib_query' => $search_string)));
}
/**
* Logs a search query to a database table.
*
* @param string $search_string
* The query to log
*/
function roblib_search_log_query($search_string) {
$eid = db_insert('roblib_search_log')
->fields(array(
@ -162,11 +194,15 @@ function roblib_search_log_query($search_string) {
}
/**
* Roblib search simple search form
* Roblib search simple search form.
*
* @param array $form
* Drupal form array
* @param array $form_state
* Drupal formstate
*
* @return array
* A Drupal formapi array
*/
function roblib_search_simple_form($form, &$form_state) {
if (isset($_GET['roblib_query'])) {
@ -188,6 +224,7 @@ function roblib_search_simple_form($form, &$form_state) {
'#size' => '15',
'#type' => 'textfield',
'#title' => '',
'#required' => TRUE,
'#default_value' => $query,
);
$form['simple']['submit'] = array(
@ -199,10 +236,6 @@ function roblib_search_simple_form($form, &$form_state) {
/**
* Implements hook_help().
*
* @param type $path
* @param type $arg
* @return type
*/
function roblib_search_help($path, $arg) {
switch ($path) {

67
targets/solr_site/roblib_search_solr_site.module

@ -57,6 +57,17 @@ function roblib_search_solr_site_menu() {
return $items;
}
/**
* A form to manage the modules configuration.
*
* @param array $form
* A Drupal form array
* @param array $form_state
* A Drupal formstate array
*
* @return array
* A Drupal form array
*/
function roblib_search_solr_site_config_form($form, &$form_state) {
$form['roblib_search_solr_site_url'] = array(
'#type' => 'textfield',
@ -129,6 +140,9 @@ function roblib_search_solr_site_theme() {
);
}
/**
* Implements hook_block_info().
*/
function roblib_search_solr_site_block_info() {
$blocks['roblib_search_solr_site_bestbet'] = array(
@ -167,8 +181,9 @@ function roblib_search_solr_site_block_info() {
*
* By adding our divs we can theme ours without affecting other drupal panels.
*
* @param $variables
* @param $hook
* @param array $variables
* Drupal variables array
* @param array $hook
*/
function roblib_search_solr_site_preprocess_panels_pane(&$variables, $hook) {
switch ($variables['pane']->subtype) {
@ -194,6 +209,9 @@ function roblib_search_solr_site_preprocess_panels_pane(&$variables, $hook){
}
}
/**
* Implements hook_block_view().
*/
function roblib_search_solr_site_block_view($delta = '') {
switch ($delta) {
case 'roblib_search_solr_site_bestbet':
@ -219,27 +237,56 @@ function roblib_search_solr_site_block_view($delta = '') {
return $block;
}
/**
* Send the query to solr but limit the results so it doesn't include certain content.
*
* Print json and exit so the javascript can consume the json.
*
* @param string $query
* The solr search string.
*/
function roblib_search_solr_site_results($query) {
print roblib_search_solr_site_get_results($query, '-bundle:bestbet OR -im_field_keywords:627 OR -bundle:database');
exit();
}
/**
* Send the query to solr but limit the results so it only includes content of type bestbet.
*
* Print json and exit so the javascript can consume the json.
*
* @param string $query
* The solr search string.
*/
function roblib_search_solr_site_bestbet($query) {
// Bestbet is a very strict search with an exact match on node title only.
// We have to surround the search with quotes but we don't want double quotes.
// If they have quotes anywhere else in the string we shouldn't get a match anyway.
$query = str_replace('"', '', $query);
$query = preg_replace('/\'\"/', '', $query);
$json = roblib_search_solr_site_get_results("sort_label:\"$query\"", 'bundle:bestbet');
$json = roblib_search_solr_site_add_url($json);
print $json;
exit();
}
/**
* Send the query to solr but limit the results so it only includes content of type database.
*
* Print json and exit so the javascript can consume the json.
*
* @param string $query
* The solr search string.
*/
function roblib_search_solr_site_databases($query) {
print roblib_search_solr_site_get_results($query, 'bundle:database');
exit();
}
/**
* Send the query to solr but limit the results so it only includes content of tagged with the guide keyword.
*
* Print json and exit so the javascript can consume the json.
*
* @param string $query
* The solr search string.
*/
function roblib_search_solr_site_guides($query) {
// TODO make the field and value searched configurable instead of hardcoded.
// sm_vid_SearchKeywords:guides is another field we might use.
@ -253,6 +300,7 @@ function roblib_search_solr_site_guides($query) {
* Updates the json passed in with a url directly to the target of the link field.
* This information is not in solr as it comes from a custom field.
*
*
* @param string $json
* The json string returned from the solr query.
*
@ -271,10 +319,15 @@ function roblib_search_solr_site_add_url($json) {
}
/**
* Sends a query to Solr.
*
* @param string $query
* A string to search for
* @param string $type
* A string to filter the query against field:value
*
* @return string
* json
* Solr results as json.
*/
function roblib_search_solr_site_get_results($query = NULL, $type) {
$solr_url = variable_get('roblib_search_solr_site_url', 'http://localhost:8983/solr');

Loading…
Cancel
Save