]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/htmloutputter.php
auth fix
[quix0rs-gnu-social.git] / lib / htmloutputter.php
index 4a88337bc509b66429efe6ae4181bcc9953bedef..b341d14958b44c04615924644d36fd73a1513afe 100644 (file)
@@ -100,6 +100,7 @@ class HTMLOutputter extends XMLOutputter
             $type = common_negotiate_type($cp, $sp);
 
             if (!$type) {
+                // TRANS: Client exception 406
                 throw new ClientException(_('This page is not available in a '.
                                             'media type you accept'), 406);
             }
@@ -118,9 +119,16 @@ class HTMLOutputter extends XMLOutputter
 
         $language = $this->getLanguage();
 
-        $this->elementStart('html', array('xmlns' => 'http://www.w3.org/1999/xhtml',
-                                          'xml:lang' => $language,
-                                          'lang' => $language));
+        $attrs = array(
+            'xmlns' => 'http://www.w3.org/1999/xhtml',
+            'xml:lang' => $language,
+            'lang' => $language
+        );
+
+        if (Event::handle('StartHtmlElement', array($this, &$attrs))) {
+            $this->elementStart('html', $attrs);
+            Event::handle('EndHtmlElement', array($this, &$attrs));
+        }
     }
 
     function getLanguage()
@@ -324,6 +332,7 @@ class HTMLOutputter extends XMLOutputter
      * @param string $label text of the button
      * @param string $cls   class of the button, default 'submit'
      * @param string $name  name, if different than ID
+     * @param string $title  title text for the submit button
      *
      * @return void
      *
@@ -350,40 +359,74 @@ 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']))
-            {
-                $path = common_config('javascript', 'path');
+            if (empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment'])) {
 
-                if (empty($path)) {
-                    $path = common_config('site', 'path') . '/js/';
-                }
+                // XXX: this seems like a big assumption
 
-                if ($path[strlen($path)-1] != '/') {
-                    $path .= '/';
-                }
+                if (strpos($src, 'plugins/') === 0 || strpos($src, 'local/') === 0) {
 
-                if ($path[0] != '/') {
-                    $path = '/'.$path;
-                }
+                    $src = common_path($src, StatusNet::isHTTPS()) . '?version=' . STATUSNET_VERSION;
 
-                $server = common_config('javascript', 'server');
+                } else {
 
-                if (empty($server)) {
-                    $server = common_config('site', 'server');
-                }
+                    if (StatusNet::isHTTPS()) {
+
+                        $sslserver = common_config('javascript', 'sslserver');
+
+                        if (empty($sslserver)) {
+                            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') . '/js/';
+                        } else {
+                            $server = $sslserver;
+                            $path   = common_config('javascript', 'sslpath');
+                            if (empty($path)) {
+                                $path = common_config('javascript', 'path');
+                            }
+                        }
 
-                // XXX: protocol
+                        $protocol = 'https';
 
-                $src = 'http://'.$server.$path.$src . '?version=' . STATUSNET_VERSION;
+                    } else {
+
+                        $path = common_config('javascript', 'path');
+
+                        if (empty($path)) {
+                            $path = common_config('site', 'path') . '/js/';
+                        }
+
+                        $server = common_config('javascript', 'server');
+
+                        if (empty($server)) {
+                            $server = common_config('site', 'server');
+                        }
+
+                        $protocol = '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));
         }
@@ -433,7 +476,7 @@ class HTMLOutputter extends XMLOutputter
                 if(file_exists(Theme::file($src,$theme))){
                    $src = Theme::path($src, $theme);
                 }else{
-                   $src = common_path($src);
+                    $src = common_path($src, StatusNet::isHTTPS());
                 }
                 $src.= '?version=' . STATUSNET_VERSION;
             }