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