View source
<?php
include_once 'search_autocomplete.admin.inc';
include_once 'search_autocomplete.view_autocomplete.inc';
function search_autocomplete_init() {
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;
$input_data = explode("\n", $match->data_static);
$data_static = array();
for ($i = 0; $i < count($input_data); $i++) {
$cut = strripos($input_data[$i], '=>');
$object = array();
if ($cut > 0) {
$object['label'] = trim(substr($input_data[$i], 0, $cut));
$object['value'] = trim(substr($input_data[$i], 0, $cut));
$object['link'] = trim(substr($input_data[$i], $cut + 2, strlen($input_data[$i])));
}
else {
$object['label'] = trim($input_data[$i]);
$object['value'] = trim($input_data[$i]);
}
$data_static[] = $object;
}
$theme_id = preg_replace("/\\.[^.\\s]{3,4}\$/", "", $match->theme);
$data_source = $match->data_callback;
if ($match->data_source == 1 && !url_is_external($match->data_callback)) {
$data_source = urldecode(url($match->data_callback, array(
'absolute' => TRUE,
)));
}
drupal_add_js(array(
'search_autocomplete' => array(
$form_id => array(
'selector' => $match->selector,
'minChars' => $match->min_char,
'max_sug' => $match->max_sug,
'no_results' => $match->no_results,
'type' => $match->data_source,
'datas' => $match->data_source > 1 ? $data_static : $data_source,
'fid' => $match->fid,
'theme' => str_replace(' ', '-', strtolower($theme_id)),
'auto_submit' => $match->auto_submit,
'auto_redirect' => $match->auto_redirect,
),
),
), 'setting');
drupal_add_css(drupal_get_path('module', 'search_autocomplete') . '/css/' . $match->theme);
}
if ($result) {
drupal_add_library('system', 'ui');
drupal_add_library('system', 'ui.widget');
drupal_add_library('system', 'ui.position');
drupal_add_library('system', 'ui.autocomplete');
drupal_add_js(drupal_get_path('module', 'search_autocomplete') . '/js/jquery.autocomplete.js');
}
}
}
if (isset($_GET['sort_order'])) {
$_GET['sort_order'] = drupal_strtoupper($_GET['sort_order']);
}
}
function search_autocomplete_replaceArguments(&$input, &$args) {
$modified = FALSE;
foreach ($args as $key => $data) {
$input = preg_replace('#' . $key . '#', $data, $input);
$modified = TRUE;
}
return $modified;
}
function search_autocomplete_get_translite() {
$result = db_select('search_autocomplete_forms', 'f')
->fields('f', array(
'translite',
))
->range(0, 1)
->execute()
->fetchField();
return $result;
}