From 4724fd9ced26071e9f8eeb9ae5337b32717962c2 Mon Sep 17 00:00:00 2001 From: Tim Steiner <tsteiner2@unl.edu> Date: Tue, 3 May 2011 21:08:46 +0000 Subject: [PATCH] [gh-114] Merging from testing into staging git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x/staging@614 20a16fea-79d4-4915-8869-1ea9d5ebf173 --- sites/all/modules/unl/unl.module | 45 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/sites/all/modules/unl/unl.module b/sites/all/modules/unl/unl.module index da3e72e74..13d642f25 100644 --- a/sites/all/modules/unl/unl.module +++ b/sites/all/modules/unl/unl.module @@ -193,14 +193,14 @@ function unl_form_alter(&$form, $form_state, $form_id) { if ($form_id == 'menu_edit_item' && $form['mlid']['#value'] == 0) { $form['expanded']['#default_value'] = TRUE; } - + if ($form_id == 'system_site_information_settings') { $form['site_information']['https'] = array( '#type' => 'checkbox', '#title' => 'SSL Enabled', '#default_value' => variable_get('https', FALSE), ); - + if (conf_path() != 'sites/default') { $alternate_uris = unl_get_alternate_base_uris(); $base_urls = array('_null' => '--Select One--'); @@ -414,7 +414,7 @@ function unl_url_outbound_alter(&$path, &$options, $original_path) { if (isset($options['https'])) { return; } - + $options['https'] = (bool) (variable_get('https', 0) && !$generic_user); } @@ -501,12 +501,12 @@ function unl_cron() { $department = strtr($department, array(' ' => '')); $department = strtolower($department); $department = preg_replace('/[^[a-z0-9]/', '', $department); - + $site_name = $site->site_name; $site_name = strtr($site_name, array(' ' => '')); $site_name = strtolower($site_name); $site_name = preg_replace('/[^[a-z0-9]/', '', $site_name); - + $path = $department . '/' . $site_name; $db_prefix = unl_create_db_prefix($site); @@ -549,7 +549,7 @@ function unl_cron() { // Creates a db_prefix short enough to not go over MySQL's max table name length function unl_create_db_prefix($site) { $parent_prefix = '_' . $GLOBALS['databases']['default']['default']['prefix']; - + $site_name = strtolower($site->site_name); $site_name = preg_replace('/[^[a-z0-9]/', '', $site_name); $site_name = explode(' ', $site_name); @@ -567,14 +567,14 @@ function unl_create_db_prefix($site) { } } } while (strlen($db_prefix . $parent_prefix) > 32); - + return $db_prefix; } function unl_get_shared_db_prefix() { require 'sites/default/settings.php'; $shared_prefix = $databases['default']['default']['prefix']; - + return $shared_prefix; } @@ -592,35 +592,38 @@ function unl_get_alternate_base_uris() { . "FROM {$shared_prefix}unl_sites AS s " . "LEFT JOIN {$shared_prefix}unl_sites_aliases AS a " . " ON s.site_id = a.site_id " - . "WHERE db_prefix=:db_prefix", + . "WHERE db_prefix=:db_prefix", array(':db_prefix' => $db_prefix) )->fetchAll(); - + if (count($rows) < 1) { return array(); } - + $uris = array($rows[0]->uri); foreach ($rows as $row) { if ($row->base_uri . $row->path) { $uris[] = $row->base_uri . $row->path; } } - + return $uris; } function unl_init() { $primary_base_url = variable_get('unl_primary_base_url'); - if ($primary_base_url && substr($primary_base_url, -1) != '/') { - $primary_base_url .= '/'; - } - - if (conf_path() != 'sites/default' - && $primary_base_url - && $primary_base_url != url() - ) { - drupal_goto($primary_base_url . current_path()); + if ($primary_base_url) { + if (substr($primary_base_url, -1) != '/') { + $primary_base_url .= '/'; + } + + $current_url_schema = parse_url(url(), PHP_URL_SCHEME); + $primary_base_url_schema = parse_url($primary_base_url, PHP_URL_SCHEME); + $primary_base_url = $current_url_schema . substr($primary_base_url, strlen($primary_base_url_schema)); + + if (conf_path() != 'sites/default' && $primary_base_url != url()) { + drupal_goto($primary_base_url . current_path()); + } } } -- GitLab