diff --git a/nodequeue.module b/nodequeue.module index 3d5be45..2a4fc25 100644 --- a/nodequeue.module +++ b/nodequeue.module @@ -1977,19 +1977,22 @@ function nodequeue_api_autocomplete($queue, $subqueue, $string) { $query->where('LOWER(n.title) LIKE LOWER(:string)', array(':string' => '%' . db_like($string) . '%')); } - // Call to the API. - $function = $queue->owner . "_nodequeue_autocomplete"; - if (function_exists($function)) { - return $function($queue, $subqueue, $string, $query); + $query->addMetaData('queue', $queue); + $query->addMetaData('subqueue', $subqueue); + $query->addTag('nodequeue_api_autocomplete'); + $query->addTag('i18n_select'); + + // Call to hook_nodequeue_api_autocomplete. + $matches = module_invoke_all('nodequeue_api_autocomplete', $queue, $subqueue, $string, $query); + if (!empty($matches)) { + return $matches; } - else { - $query->addTag('i18n_select'); - $result = $query->execute(); - foreach ($result as $node) { - $id = nodequeue_get_content_id($queue, $node); - $matches[$node->nid] = check_plain($node->title) . " [nid: $id]"; - } + $result = $query->execute(); + + foreach ($result as $node) { + $id = nodequeue_get_content_id($queue, $node); + $matches[$node->nid] = check_plain($node->title) . " [nid: $id]"; } return $matches;