biblio_self.module in Biblio Autocomplete 7
Same filename and directory in other branches
Allows autocoompletion of Biblio fields from values previously used.
Plugin module for biblio_autocomplete.
File
plugins/biblio_self/biblio_self.moduleView 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;
$query = db_select('biblio', 'b');
$query
->fields('b', array(
$field,
));
$query
->distinct();
$query
->condition($field, '%' . db_like($string) . '%', 'LIKE');
$records = $query
->execute()
->fetchAll();
$results = array();
foreach ($records as $match) {
$results[] = array(
'key' => $match->{$field},
'description' => $match->{$field},
'provider' => 'Biblio',
);
}
return $results;
}