[РЕШЕНО]Autocomplete advance sphinx search

Главные вкладки

Аватар пользователя Svezhak Svezhak 17 декабря 2012 в 16:30

Подскажите, пожалуйста, в чем может быть дело, если к sphinx search выставлены права для всех и автокомплит работает? Но только под админом и контентом без ограничений, а для обычных пользователей он выпадает если только в Блоке Sphinx search box ставлю показ на определенной странице, другие варианты не работают. Если не ограничиваю показ, то ни где нет автокомплита, а если перечисляю построчно страницы показа, то на первой он есть, а все последующие, из списка, без него.

Комментарии

Аватар пользователя Svezhak Svezhak 19 декабря 2012 в 12:51

Да, то что на одной из страниц начинает работать автокомплит, это кэш(для незарегистрированных пользователей). Автокомплит работает только на странице результатов поиска.

В модуле я прописал:

$items['ajax_search'] = array(
'title' => 'Autocomplete',
'page callback' => 'sphinxsearch_ajax_search',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);

function sphinxsearch_ajax_search($string=''){

$matches = array();
$result = db_query_range("SELECT title FROM {node} WHERE LOWER(title) LIKE LOWER('%s%%')", $string, 0, 10);
while ($node = db_fetch_object($result)) {
$matches[$node->title] = check_plain($node->title);
}
return drupal_json($matches);
}

$form['inline']['keys'] = array(
'#type' => 'textfield',
'#autocomplete_path' => 'ajax_search',
'#title' => '',
'#default_value' => $search_options['keys'],
'#size' => 50,
'#maxlength' => 255,
);

И в pages.inc

$form['inline']['keys'] = array(
'#type' => 'textfield',
'#autocomplete_path' => 'ajax_search',
'#title' => '',
'#default_value' => $search_options['keys'],
'#size' => 50,
'#maxlength' => 255,
);

Аватар пользователя Svezhak Svezhak 20 декабря 2012 в 15:22

А ларчик, просто открывался. Убрал кэширование и проблема решена.
$blocks = array(
'searchbox' => array(
'info' => t('Sphinx search box'),
'cache' => BLOCK_NO_CACHE),
);