You are here

function word_link_urls_autocomplete_callback in Word Link 7.2

Autocomplete callback for words by urls.

Parameters

string $string: The string that will be searched.

1 string reference to 'word_link_urls_autocomplete_callback'
word_link_menu in ./word_link.module
Implements hook_menu().

File

./word_link.module, line 810

Code

function word_link_urls_autocomplete_callback($string = "") {
  $matches = array();
  if ($string) {
    $node_query = db_select('node', 'n');
    $node_query
      ->addField('n', 'nid', 'id');
    $node_query
      ->addField('n', 'title', 'string');
    $node_query
      ->condition('status', 1, '=');
    $node_query
      ->condition('n.title', db_like($string) . '%', 'LIKE');
    $node_query
      ->range(0, 10);
    $nodes = $node_query
      ->execute()
      ->fetchAllAssoc('id');
    $user_query = db_select('users', 'u');
    $user_query
      ->addField('u', 'uid', 'id');
    $user_query
      ->addField('u', 'name', 'string');
    $user_query
      ->condition('status', 1, '=');
    $user_query
      ->condition('u.name', db_like($string) . '%', 'LIKE');
    $user_query
      ->range(0, 10);
    $users = $user_query
      ->execute()
      ->fetchAllAssoc('id');
    $results = array(
      'node' => $nodes,
      'user' => $users,
    );
    if (module_exists('taxonomy')) {
      $term_query = db_select('taxonomy_term_data', 't');
      $term_query
        ->addField('t', 'tid', 'id');
      $term_query
        ->addField('t', 'name', 'string');
      $term_query
        ->condition('t.name', db_like($string) . '%', 'LIKE');
      $term_query
        ->range(0, 10);
      $terms = $term_query
        ->execute()
        ->fetchAllAssoc('id');
      $results['taxonomy/term'] = $terms;
    }
    foreach ($results as $path => $items) {
      foreach ($items as $item) {
        $matches[$path . '/' . $item->id] = check_plain($item->string) . " ({$item->id})";
      }
    }
  }
  drupal_json_output($matches);
}