diff --git a/domain_nav/domain_nav.module b/domain_nav/domain_nav.module index 9474532..acd805a 100644 --- a/domain_nav/domain_nav.module +++ b/domain_nav/domain_nav.module @@ -30,8 +30,8 @@ function domain_nav_menu() { $items['domain'] = array( 'title' => 'Domain', 'type' => MENU_SUGGESTED_ITEM, - 'page callback' => 'drupal_goto', - 'page arguments' => array($root['path']), + 'page callback' => 'domain_nav_goto', + 'page arguments' => array($root), 'access callback' => 'domain_nav_check', 'access arguments' => array(TRUE), 'description' => 'Go to main site', @@ -47,8 +47,8 @@ function domain_nav_menu() { $items['domain/' . filter_xss_admin($domain['subdomain'])] = array( 'title' => check_plain($domain['sitename']), 'type' => $type, - 'page callback' => 'drupal_goto', - 'page arguments' => array($domain['path']), + 'page callback' => 'domain_nav_goto', + 'page arguments' => array($domain), 'access callback' => 'domain_nav_check', 'access arguments' => array(TRUE), 'description' => 'Go to ' . filter_xss_admin($domain['subdomain']), @@ -82,6 +82,24 @@ function domain_nav_permission() { } /** + * Helper goto function. + * + * @param $domain + * A domain record. + * @return + * Issue a drupal_goto() redirect or not found. + */ +function domain_nav_goto($domain) { + if (isset($domain['domain_id'])) { + $path = domain_get_path($domain); + } + if ($path) { + drupal_goto($path); + } + return MENU_NOT_FOUND; +} + +/** * Implements hook_theme() */ function domain_nav_theme() {