]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
show HTTPS urls for JavaScript if HTTPS used for page
authorEvan Prodromou <evan@status.net>
Thu, 14 Oct 2010 05:00:13 +0000 (01:00 -0400)
committerEvan Prodromou <evan@status.net>
Thu, 14 Oct 2010 05:00:13 +0000 (01:00 -0400)
lib/htmloutputter.php

index 44b02960467aa0762dfa8b9663e0d4989b138946..8d3e815d33837682b19613a510ff61ac210f51d7 100644 (file)
@@ -352,58 +352,72 @@ class HTMLOutputter extends XMLOutputter
      */
     function script($src, $type='text/javascript')
     {
-        if(Event::handle('StartScriptElement', array($this,&$src,&$type))) {
+        if (Event::handle('StartScriptElement', array($this,&$src,&$type))) {
 
             $url = parse_url($src);
 
-            if( empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment']))
-            {
+            if (empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment'])) {
+
+                // XXX: this seems like a big assumption
+
                 if (strpos($src, 'plugins/') === 0 || strpos($src, 'local/') === 0) {
 
                     $src = common_path($src) . '?version=' . STATUSNET_VERSION;
 
-                }else{
+                } else {
 
-                    $path = common_config('javascript', 'path');
+                    if (StatusNet::isHTTPS()) {
 
-                    if (empty($path)) {
-                        $path = common_config('site', 'path') . '/js/';
-                    }
+                        $sslserver = common_config('javascript', 'sslserver');
 
-                    if ($path[strlen($path)-1] != '/') {
-                        $path .= '/';
-                    }
+                        if (empty($sslserver)) {
+                            $server = common_config('site', 'server');
+                            $path   = common_config('site', 'path') . '/js/';
+                        } else {
+                            $server = $sslserver;
+                            $path   = common_config('javascript', 'sslpath');
+                            if (empty($path)) {
+                                $path = common_config('javascript', 'path');
+                            }
+                        }
 
-                    if ($path[0] != '/') {
-                        $path = '/'.$path;
-                    }
+                        $protocol = 'https';
 
-                    $server = common_config('javascript', 'server');
+                    } else {
 
-                    if (empty($server)) {
-                        $server = common_config('site', 'server');
-                    }
+                        $path = common_config('javascript', 'path');
 
-                    $ssl = common_config('javascript', 'ssl');
+                        if (empty($path)) {
+                            $path = common_config('site', 'path') . '/';
+                            if ($fallbackSubdir) {
+                                $path .= $fallbackSubdir . '/';
+                            }
+                        }
 
-                    if (is_null($ssl)) { // null -> guess
-                        if (common_config('site', 'ssl') == 'always' &&
-                            !common_config('javascript', 'server')) {
-                            $ssl = true;
-                        } else {
-                            $ssl = false;
+                        $server = common_config('javascript', 'server');
+
+                        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;
+                    }
 
                     $src = $protocol.'://'.$server.$path.$src . '?version=' . STATUSNET_VERSION;
                 }
             }
 
             $this->element('script', array('type' => $type,
-                                                   'src' => $src),
-                                   ' ');
+                                           'src' => $src),
+                           ' ');
 
             Event::handle('EndScriptElement', array($this,$src,$type));
         }