Написал для текстового поля 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%%')) ", $string, 0, 10);
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;
}
?>
Комментарии
Вы бы это, лишний код, к автодополнению не имеющий отношения, убрали что ли - неохота все это читать.
А по вопросу: наверное надо убрать плейсхолдер "%" в адресе автодополнения, как из hook_menu, так и из генерации формы. В примерах реализации автодополнений их, кстати, нет.
Ну и не забудьте меню-ребилд потом сделать.
Спасибо! На самом деле проблема была в %... Я пробывал их раньше убирать, но без очистки кеша. А тут решил ещё и кеш почистить... и заработало)