biblio_self.module in Biblio Autocomplete 6
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;
$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;
}