plugins/kolab_files

Aleksander Machniak machniak at kolabsys.com
Tue Aug 19 18:42:32 CEST 2014


 plugins/kolab_files/lib/kolab_files_engine.php |   28 ++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

New commits:
commit 96205f1347190f99a8cbdde7ebc3749418b9d990
Author: Aleksander Machniak <machniak at kolabsys.com>
Date:   Mon Aug 18 14:36:53 2014 -0400

    Support relative URL as Chwala destination (#2436)

diff --git a/plugins/kolab_files/lib/kolab_files_engine.php b/plugins/kolab_files/lib/kolab_files_engine.php
index 425f3be..6e81e1a 100644
--- a/plugins/kolab_files/lib/kolab_files_engine.php
+++ b/plugins/kolab_files/lib/kolab_files_engine.php
@@ -34,7 +34,7 @@ class kolab_files_engine
      */
     public function __construct($plugin, $url)
     {
-        $this->url    = $url;
+        $this->url    = $this->resolve_url($url);
         $this->plugin = $plugin;
         $this->rc     = $plugin->rc;
     }
@@ -1017,4 +1017,30 @@ class kolab_files_engine
 
         return $mimetypes;
     }
+
+    /**
+     * Resolve relative URL
+     */
+    protected function resolve_url($url)
+    {
+        // prepend protocol://hostname:port
+        if (!preg_match('|^https?://|', $url)) {
+            $schema       = 'http';
+            $default_port = 80;
+
+            if (rcube_utils::https_check()) {
+                $schema       = 'https';
+                $default_port = 443;
+            }
+
+            $prefix = $schema . '://' . preg_replace('/:\d+$/', '', $_SERVER['HTTP_HOST']);
+            if ($_SERVER['SERVER_PORT'] != $default_port) {
+                $prefix .= ':' . $_SERVER['SERVER_PORT'];
+            }
+
+            $url = $prefix . ($url[0] == '/' ? '' : '/') . $url;
+        }
+
+        return $url;
+    }
 }




More information about the commits mailing list