You are here

biblio_self.module in Biblio Autocomplete 6

Same filename and directory in other branches
  1. 7 plugins/biblio_self/biblio_self.module

Allows autocoompletion of Biblio fields from values previously used.

Plugin module for biblio_autocomplete.

File

plugins/biblio_self/biblio_self.module
View source
<?php

/**
 * @file
 * Allows autocoompletion of Biblio fields from values previously used.
 *
 * Plugin module for biblio_autocomplete.
 */

/**
 * Implements hook_biblio_autocomplete_info().
 *
 * @return $fields
 *   An array of Biblio fields with associated autocomplete data.
 *   Format:
 *     'biblio_field_to_autocomplete' => array('function' => 'autocomplete_callback_function')
 */
function biblio_self_biblio_autocomplete_info() {
  $fields = array(
    'biblio_secondary_title' => array(
      'function' => 'biblio_self_autocomplete_secondary_title',
    ),
    'biblio_tertiary_title' => array(
      'function' => 'biblio_self_autocomplete_tertiary_title',
    ),
    'biblio_alternate_title' => array(
      'function' => 'biblio_self_autocomplete_alternate_title',
    ),
    'biblio_original_publication' => array(
      'function' => 'biblio_self_autocomplete_original_publication',
    ),
    'biblio_short_title' => array(
      'function' => 'biblio_self_autocomplete_short_title',
    ),
    'biblio_publisher' => array(
      'function' => 'biblio_self_autocomplete_publisher',
    ),
    'biblio_place_published' => array(
      'function' => 'biblio_self_autocomplete_place_published',
    ),
    'biblio_type_of_work' => array(
      'function' => 'biblio_self_autocomplete_type_of_work',
    ),
    'biblio_translated_title' => array(
      'function' => 'biblio_self_autocomplete_translated_title',
    ),
  );
  return $fields;
}
function biblio_self_autocomplete_secondary_title($string) {
  return biblio_self_autocomplete($string, 'secondary_title');
}
function biblio_self_autocomplete_tertiary_title($string) {
  return biblio_self_autocomplete($string, 'tertiary_title');
}
function biblio_self_autocomplete_alternate_title($string) {
  return biblio_self_autocomplete($string, 'alternate_title');
}
function biblio_self_autocomplete_original_publication($string) {
  return biblio_self_autocomplete($string, 'original_publication');
}
function biblio_self_autocomplete_short_title($string) {
  return biblio_self_autocomplete($string, 'short_title');
}
function biblio_self_autocomplete_publisher($string) {
  return biblio_self_autocomplete($string, 'publisher');
}
function biblio_self_autocomplete_place_published($string) {
  return biblio_self_autocomplete($string, 'place_published');
}
function biblio_self_autocomplete_type_of_work($string) {
  return biblio_self_autocomplete($string, 'type_of_work');
}
function biblio_self_autocomplete_translated_title($string) {
  return biblio_self_autocomplete($string, 'translated_title');
}
function biblio_self_autocomplete($string, $field) {
  $field = 'biblio_' . $field;
  $sql = "SELECT DISTINCT %s FROM biblio WHERE %s LIKE '%%%s%%'";
  $result = db_query($sql, $field, $field, $string);
  $results = array();
  while ($match_array = db_fetch_array($result)) {
    foreach ($match_array as $field => $match) {
      $results[] = array(
        'key' => $match,
        'description' => $match,
        'provider' => 'Biblio',
      );
    }
  }
  return $results;
}