]> git.mxchange.org Git - friendica.git/blobdiff - boot.php
"get_baseurl" and "z_root" are disappearing ...
[friendica.git] / boot.php
index 2242ba476d85f06e811eb872b4f435f5c2625ec0..d82669f231a9fb12608d3855ea50ea78e7bb6ee2 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -17,6 +17,8 @@
  * easily as email does today.
  */
 
+require_once('include/autoloader.php');
 require_once('include/config.php');
 require_once('include/network.php');
 require_once('include/plugin.php');
@@ -36,7 +38,7 @@ define ( 'FRIENDICA_PLATFORM',     'Friendica');
 define ( 'FRIENDICA_CODENAME',     'Asparagus');
 define ( 'FRIENDICA_VERSION',      '3.5-dev' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
-define ( 'DB_UPDATE_VERSION',      1193      );
+define ( 'DB_UPDATE_VERSION',      1194      );
 
 /**
  * @brief Constant with a HTML line break.
@@ -530,6 +532,8 @@ class App {
        private $cached_profile_image;
        private $cached_profile_picdate;
 
+       private static $a;
+
        /**
         * @brief App constructor.
         */
@@ -586,15 +590,6 @@ class App {
                if(x($_SERVER,'SERVER_NAME')) {
                        $this->hostname = $_SERVER['SERVER_NAME'];
 
-                       // See bug 437 - this didn't work so disabling it
-                       //if(stristr($this->hostname,'xn--')) {
-                               // PHP or webserver may have converted idn to punycode, so
-                               // convert punycode back to utf-8
-                       //      require_once('library/simplepie/idn/idna_convert.class.php');
-                       //      $x = new idna_convert();
-                       //      $this->hostname = $x->decode($_SERVER['SERVER_NAME']);
-                       //}
-
                        if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
                                $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
                        /*
@@ -710,6 +705,8 @@ class App {
                        }
                }
 
+               self::$a = $this;
+
        }
 
        function get_basepath() {
@@ -734,6 +731,10 @@ class App {
 
        function get_baseurl($ssl = false) {
 
+               // Is the function called statically?
+               if (!is_object($this))
+                       return(self::$a->get_baseurl($ssl));
+
                $scheme = $this->scheme;
 
                if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
@@ -854,11 +855,11 @@ class App {
 
                $shortcut_icon = get_config("system", "shortcut_icon");
                if ($shortcut_icon == "")
-                       $shortcut_icon = $this->get_baseurl()."/images/friendica-32.png";
+                       $shortcut_icon = "images/friendica-32.png";
 
                $touch_icon = get_config("system", "touch_icon");
                if ($touch_icon == "")
-                       $touch_icon = $this->get_baseurl()."/images/friendica-128.png";
+                       $touch_icon = "images/friendica-128.png";
 
                $tpl = get_markup_template('head.tpl');
                $this->page['htmlhead'] = replace_macros($tpl,array(
@@ -937,6 +938,25 @@ class App {
        }
 
 
+       /**
+        * @brief Removes the baseurl from an url. This avoids some mixed content problems.
+        *
+        * @param string $url
+        *
+        * @return string The cleaned url
+        */
+       function remove_baseurl($url){
+
+               // Is the function called statically?
+               if (!is_object($this))
+                       return(self::$a->remove_baseurl($url));
+
+               $url = normalise_link($url);
+               $base = normalise_link($this->get_baseurl());
+               $url = str_replace($base."/", "", $url);
+               return $url;
+       }
+
        /**
         * @brief Register template engine class
         * 
@@ -1029,19 +1049,29 @@ class App {
                $this->performance[$value] += (float)$duration;
                $this->performance["marktime"] += (float)$duration;
 
-               // Trace the different functions with their timestamps
-               $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 5);
+               $callstack = $this->callstack();
 
-               array_shift($trace);
+               $this->callstack[$value][$callstack] += (float)$duration;
 
-               $function = array();
-               foreach ($trace AS $func)
-                       $function[] = $func["function"];
+       }
 
-               $function = implode(", ", $function);
+       /**
+        * @brief Returns a string with a callstack. Can be used for logging.
+        *
+        * @return string
+        */
+       function callstack() {
+               $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
 
-               $this->callstack[$value][$function] += (float)$duration;
+               // We remove the first two items from the list since they contain data that we don't need.
+               array_shift($trace);
+               array_shift($trace);
+
+               $callstack = array();
+               foreach ($trace AS $func)
+                       $callstack[] = $func["function"];
 
+               return implode(", ", $callstack);
        }
 
        function mark_timestamp($mark) {
@@ -1408,7 +1438,7 @@ function login($register = false, $hiddens=false) {
 
        $noid = get_config('system','no_openid');
 
-       $dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
+       $dest_url = $a->query_string;
 
        if(local_user()) {
                $tpl = get_markup_template("logout.tpl");
@@ -1727,9 +1757,9 @@ function current_theme_url() {
 
        $opts = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : '');
        if (file_exists('view/theme/' . $t . '/style.php'))
-               return($a->get_baseurl() . '/view/theme/' . $t . '/style.pcss' . $opts);
+               return('view/theme/'.$t.'/style.pcss'.$opts);
 
-       return($a->get_baseurl() . '/view/theme/' . $t . '/style.css');
+       return('view/theme/'.$t.'/style.css');
 }
 
 function feed_birthday($uid,$tz) {