search_autocomplete.module in Search Autocomplete 7.2
File
search_autocomplete.module
View source
<?php
include_once 'search_autocomplete.admin.inc';
function search_autocomplete_autocomplete($string = '') {
global $language;
$matches = array();
$word_items = array();
$node_items = array();
$user_items = array();
$taxo_items = array();
$comment_items = array();
static $max_sug = 0;
$fid = arg(1);
$words = explode(' ', $string);
$word = $words[0];
$result = db_query('SELECT min_char FROM {search_autocomplete_forms} f WHERE f.fid = :fid', array(
':fid' => $fid,
));
foreach ($result as $match) {
if (drupal_strlen($word) < $match->min_char) {
drupal_json_output($matches);
return;
}
}
$result = db_query('SELECT * FROM {search_autocomplete_suggestions} s WHERE s.sug_fid = :fid AND s.sug_enabled = :sug_enabled', array(
':fid' => $fid,
'sug_enabled' => 1,
));
foreach ($result as $item) {
$query = $item->sug_query;
$prefix = t($item->sug_prefix);
$params = array(
':like_word' => '%' . $word . '%',
);
if (strpos($query, ':curr_lang') !== false) {
$params[':curr_lang'] = $language->language;
}
$result = db_query($query, $params);
foreach ($result as $obj) {
$sug_elem = array_shift(array_values(get_object_vars($obj)));
$sug = html_entity_decode(check_plain($sug_elem), ENT_QUOTES);
$sug_index = trim($prefix) . ' ' . $sug;
$matches[trim($sug_index)] = trim($sug);
}
}
drupal_json_output($matches);
}
function search_autocomplete_init() {
global $base_url;
if (user_access('use Search Autocomplete')) {
$settings = array();
if (db_table_exists('search_autocomplete_forms')) {
$result = db_query('SELECT * FROM {search_autocomplete_forms} WHERE enabled=1');
foreach ($result as $match) {
$form_id = 'form' . $match->fid;
drupal_add_js(array(
'search_autocomplete' => array(
$form_id => array(
'selector' => $match->selector,
'minChars' => $match->min_char,
'max_sug' => $match->max_sug,
'url' => $base_url . '/search_autocomplete/' . $match->fid . '/autocomplete',
'fid' => $match->fid,
),
),
), 'setting');
}
if ($result) {
drupal_add_css(drupal_get_path('module', 'search_autocomplete') . '/css/jquery.autocomplete.css');
drupal_add_js(drupal_get_path('module', 'search_autocomplete') . '/js/jquery.autocomplete.js');
}
}
}
}