]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Design.php
Merge branch '2828' into 0.9.x
[quix0rs-gnu-social.git] / classes / Design.php
index ff44e010964042f0d6e8b18de603668c2c71d496..a8fdb72191e861055bf527dda81c4dc7247f40c7 100644 (file)
@@ -139,34 +139,50 @@ class Design extends Memcached_DataObject
 
     static function url($filename)
     {
-        $path = common_config('background', 'path');
-
-        if ($path[strlen($path)-1] != '/') {
-            $path .= '/';
-        }
+        if (StatusNet::isHTTPS()) {
+
+            $sslserver = common_config('background', 'sslserver');
+
+            if (empty($sslserver)) {
+                // XXX: this assumes that background dir == site dir + /background/
+                // not true if there's another server
+                if (is_string(common_config('site', 'sslserver')) &&
+                    mb_strlen(common_config('site', 'sslserver')) > 0) {
+                    $server = common_config('site', 'sslserver');
+                } else if (common_config('site', 'server')) {
+                    $server = common_config('site', 'server');
+                }
+                $path   = common_config('site', 'path') . '/background/';
+            } else {
+                $server = $sslserver;
+                $path   = common_config('background', 'sslpath');
+                if (empty($path)) {
+                    $path = common_config('background', 'path');
+                }
+            }
 
-        if ($path[0] != '/') {
-            $path = '/'.$path;
-        }
+            $protocol = 'https';
 
-        $server = common_config('background', 'server');
+        } else {
 
-        if (empty($server)) {
-            $server = common_config('site', 'server');
-        }
+            $path = common_config('background', 'path');
 
-        $ssl = common_config('background', 'ssl');
+            $server = common_config('background', 'server');
 
-        if (is_null($ssl)) { // null -> guess
-            if (common_config('site', 'ssl') == 'always' &&
-                !common_config('background', 'server')) {
-                $ssl = true;
-            } else {
-                $ssl = false;
+            if (empty($server)) {
+                $server = common_config('site', 'server');
             }
+
+            $protocol = 'http';
         }
 
-        $protocol = ($ssl) ? 'https' : 'http';
+        if ($path[strlen($path)-1] != '/') {
+            $path .= '/';
+        }
+
+        if ($path[0] != '/') {
+            $path = '/'.$path;
+        }
 
         return $protocol.'://'.$server.$path.$filename;
     }