You are here

function bigmenu_alias_autocomplete in Big Menu 6

Autocomplete callback to find page aliases

Returns a json array with suggestions based on an entered string

Matches from the beginning only Removes http etc if you left it in. Only aliases that also match a menu link item path are returned. The key used is the mlid, not the alias id or the path.

1 string reference to 'bigmenu_alias_autocomplete'
bigmenu_menu in ./bigmenu.module
Declare admin links and AJAX callbacks

File

./bigmenu.admin.inc, line 251
Administrative page callbacks for bigmenu module.

Code

function bigmenu_alias_autocomplete() {

  // The URL callback may have any number of slashes in it, which will have been split out.
  $args = func_get_args();
  $string = join('/', $args);

  // if it was an URL, one of the slashes got squashed - fixit
  $string = preg_replace('|http:/(\\w)|', 'http://$1', $string);
  if (valid_url($string)) {
    $url_parts = parse_url($string);
    $string = ltrim($url_parts['path'], '/');
  }
  $sql = "\n    SELECT u.src, u.dst, ml.mlid FROM {url_alias} u\n    JOIN menu_links ml ON ml.link_path = u.src\n    WHERE LOWER(u.dst) LIKE LOWER('%s%%')\n  ";
  $result = db_query_range($sql, $string, 0, 10);
  $matches = array();
  while ($alias = db_fetch_object($result)) {
    $id = check_plain($alias->dst) . " [mlid:{$alias->mlid}]";
    $matches[$id] = check_plain($alias->dst);
  }
  print drupal_to_js($matches);
  exit;
}