Не работает autocomplete [решено]

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

Аватар пользователя ALEXANDROSS ALEXANDROSS 3 мая 2010 в 15:18

Написал для текстового поля autocomplete, но он отказывается работать...Вводишь в текстовое поле текст, а реакции никакой. Вроде бы сделал всё как нужно.
Может кто знает причину? За ранее огромное спасибо!

Вод текст модуля:


<?php

function noticiaspoker_user_listing_menu() {
  
$items = array();

 

$items['user_autocomplete/nick/%']=array(
    
'title'=>t('User autocomplete'),
    
'page callback' => 'user_nick_autocomplete',
    
'access callback' => TRUE,
    
'type' => MENU_CALLBACK,
  );

  return 

$items;
}

function 

user_nick_autocomplete ($string='')
{
  
$matches = array();
  if (
$string) {
    
$result db_query_range("SELECT name FROM users
      LEFT JOIN node node_users ON users.uid = node_users.uid
      LEFT JOIN content_type_account_info ON node_users.vid = content_type_account_info.vid
      WHERE  (LOWER(users.name) LIKE LOWER('%%%s%%'))OR (LOWER (content_type_account_info.field_nick_name_value) LIKE LOWER ('%%%s%%')) "
$string010);
    while (
$user db_fetch_object($result)) {
      
$matches[$user->name] = check_plain($user->name);
    }
  }
  
drupal_json($matches);
}

/**
 * Implementation of hook_theme().
 * see http://api.drupal.org/hook_theme
 * return array Associative array of theme functions
 */
function noticiaspoker_user_listing_theme() {
  return array(
    
'noticiaspoker_user_listing_comunidad_page' => array(
      
'arguments' => array('form' => NULL,'header' => NULL,'block1' => NULL,'block2' => NULL),
      
'template'  => 'noticiaspoker-user-listing-comunidad-page',
      
'path'      => drupal_get_path('module''noticiaspoker_user_listing') .'/theme'

    

),

  );
}
function 

search_friends() {
  
$form['#theme']='search_friends';
  
$path=drupal_get_path('module''noticiaspoker_user_listing');
  
drupal_add_js($path.'/scripts/noticiaspoker_user_listing.js');
  
$form['inline'] = array('#prefix' => '<div class="container-inline">''#suffix' => '</div>');
  
$form['inline']['user_name'] = array(
    
'#type' => 'textfield',
    
'#id'=>'fsearch',
    
'#maxlength'=>'128',
    
'#size'=>'15',
    
'#autocomplete_path' => 'user_autocomplete/nick/%',
    
'#attributes' => array(
       
'class'=>'form-text searchtopbar'

    

)
  );

return 

$form;

}

?>

Комментарии

Аватар пользователя graker graker 3 мая 2010 в 15:55

Вы бы это, лишний код, к автодополнению не имеющий отношения, убрали что ли - неохота все это читать.

А по вопросу: наверное надо убрать плейсхолдер "%" в адресе автодополнения, как из hook_menu, так и из генерации формы. В примерах реализации автодополнений их, кстати, нет.

Ну и не забудьте меню-ребилд потом сделать.

Аватар пользователя ALEXANDROSS ALEXANDROSS 3 мая 2010 в 16:16

Спасибо! На самом деле проблема была в %... Я пробывал их раньше убирать, но без очистки кеша. А тут решил ещё и кеш почистить... и заработало)