]> git.mxchange.org Git - friendica.git/blobdiff - src/App.php
Create Nav class
[friendica.git] / src / App.php
index 4cdaa94ccd6f4b2ae4fb44ce7a15e0510e3c486a..cd39604789288903c780ffa5e25ab3e075894110 100644 (file)
@@ -2,17 +2,21 @@
 
 namespace Friendica;
 
+use Friendica\Core\System;
+use Friendica\Core\Cache;
 use Friendica\Core\Config;
 use Friendica\Core\PConfig;
+use Friendica\Database\DBM;
 
-use Cache;
 use dba;
-use dbm;
 
 use Detection\MobileDetect;
 
 use Exception;
 
+require_once 'boot.php';
+require_once 'include/dba.php';
+
 /**
  *
  * class: App
@@ -29,9 +33,11 @@ use Exception;
 class App {
 
        public $module_loaded = false;
+       public $module_class = null;
        public $query_string;
        public $config;
        public $page;
+       public $page_offset;
        public $profile;
        public $profile_uid;
        public $user;
@@ -54,6 +60,7 @@ class App {
        public $timezone;
        public $interactive = true;
        public $plugins;
+       public $plugins_admin = array();
        public $apps = array();
        public $identities;
        public $is_mobile = false;
@@ -72,7 +79,6 @@ class App {
        public $videowidth = 425;
        public $videoheight = 350;
        public $force_max_items = 0;
-       public $theme_thread_allow = true;
        public $theme_events_in_profile = true;
 
        /**
@@ -86,7 +92,6 @@ class App {
                'videowidth' => 425,
                'videoheight' => 350,
                'force_max_items' => 0,
-               'thread_allow' => true,
                'stylesheet' => '',
                'template_engine' => 'smarty3',
        );
@@ -131,8 +136,14 @@ class App {
 
                $hostname = '';
 
-               if (file_exists('.htpreconfig.php')) {
-                       include '.htpreconfig.php';
+               if (! static::directory_usable($basepath, false)) {
+                       throw new Exception('Basepath ' . $basepath . ' isn\'t usable.');
+               }
+
+               $this->basepath = rtrim($basepath, DIRECTORY_SEPARATOR);
+
+               if (file_exists($this->basepath.DIRECTORY_SEPARATOR.'.htpreconfig.php')) {
+                       include $this->basepath.DIRECTORY_SEPARATOR.'.htpreconfig.php';
                }
 
                $this->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
@@ -200,17 +211,10 @@ class App {
                        $this->hostname = $hostname;
                }
 
-               if (! static::directory_usable($basepath, false)) {
-                       throw new Exception('Basepath ' . $basepath . ' isn\'t usable.');
-               }
-
-               $this->basepath = rtrim($basepath, DIRECTORY_SEPARATOR);
-
                set_include_path(
                        get_include_path() . PATH_SEPARATOR
                        . $this->basepath . DIRECTORY_SEPARATOR . 'include' . PATH_SEPARATOR
                        . $this->basepath . DIRECTORY_SEPARATOR . 'library' . PATH_SEPARATOR
-                       . $this->basepath . DIRECTORY_SEPARATOR . 'library/langdet' . PATH_SEPARATOR
                        . $this->basepath);
 
 
@@ -295,7 +299,7 @@ class App {
                // Register template engines
                $dc = get_declared_classes();
                foreach ($dc as $k) {
-                       if (in_array('ITemplateEngine', class_implements($k))) {
+                       if (in_array('Friendica\Render\ITemplateEngine', class_implements($k))) {
                                $this->register_template_engine($k);
                        }
                }
@@ -311,10 +315,8 @@ class App {
         *
         * @return string
         */
-       public static function get_basepath() {
-               if (isset($this)) {
-                       $basepath = $this->basepath;
-               }
+       public function get_basepath() {
+               $basepath = $this->basepath;
 
                if (! $basepath) {
                        $basepath = Config::get('system', 'basepath');
@@ -370,11 +372,6 @@ class App {
         * @return string Friendica server base URL
         */
        function get_baseurl($ssl = false) {
-               // Is the function called statically?
-               if (!(isset($this) && get_class($this) == __CLASS__)) {
-                       return self::$a->get_baseurl($ssl);
-               }
-
                $scheme = $this->scheme;
 
                if (Config::get('system', 'ssl_policy') == SSL_POLICY_FULL) {
@@ -420,8 +417,8 @@ class App {
                                $this->path = trim($parsed['path'], '\\/');
                        }
 
-                       if (file_exists('.htpreconfig.php')) {
-                               include '.htpreconfig.php';
+                       if (file_exists($this->basepath.DIRECTORY_SEPARATOR.'.htpreconfig.php')) {
+                               include $this->basepath.DIRECTORY_SEPARATOR.'.htpreconfig.php';
                        }
 
                        if (Config::get('config', 'hostname') != '') {
@@ -521,7 +518,7 @@ class App {
 
                $tpl = get_markup_template('head.tpl');
                $this->page['htmlhead'] = replace_macros($tpl, array(
-                               '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
+                               '$baseurl' => $this->get_baseurl(),
                                '$local_user' => local_user(),
                                '$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
                                '$delitem' => t('Delete this item?'),
@@ -541,7 +538,7 @@ class App {
                }
                $tpl = get_markup_template('end.tpl');
                $this->page['end'] = replace_macros($tpl, array(
-                               '$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
+                               '$baseurl' => $this->get_baseurl()
                        )) . $this->page['end'];
        }
 
@@ -582,11 +579,6 @@ class App {
         */
        function remove_baseurl($orig_url) {
 
-               // Is the function called statically?
-               if (!(isset($this) && get_class($this) == __CLASS__)) {
-                       return self::$a->remove_baseurl($orig_url);
-               }
-
                // Remove the hostname from the url if it is an internal link
                $nurl = normalise_link($orig_url);
                $base = normalise_link($this->get_baseurl());
@@ -628,7 +620,7 @@ class App {
         * If $name is not defined, return engine defined by theme,
         * or default
         *
-        * @param strin $name Template engine name
+        * @param string $name Template engine name
         * @return object Template Engine instance
         */
        function template_engine($name = '') {
@@ -693,7 +685,7 @@ class App {
                $this->performance[$value] += (float) $duration;
                $this->performance['marktime'] += (float) $duration;
 
-               $callstack = $this->callstack();
+               $callstack = System::callstack();
 
                if (!isset($this->callstack[$value][$callstack])) {
                        // Prevent ugly E_NOTICE
@@ -716,8 +708,8 @@ class App {
                dba::transaction();
 
                $r = q('SELECT `pid` FROM `process` WHERE `pid` = %d', intval(getmypid()));
-               if (!dbm::is_result($r)) {
-                       q("INSERT INTO `process` (`pid`,`command`,`created`) VALUES (%d, '%s', '%s')", intval(getmypid()), dbesc($command), dbesc(datetime_convert()));
+               if (!DBM::is_result($r)) {
+                       dba::insert('process', array('pid' => getmypid(), 'command' => $command, 'created' => datetime_convert()));
                }
                dba::commit();
        }
@@ -729,10 +721,10 @@ class App {
                dba::transaction();
 
                $r = q('SELECT `pid` FROM `process`');
-               if (dbm::is_result($r)) {
+               if (DBM::is_result($r)) {
                        foreach ($r AS $process) {
                                if (!posix_kill($process['pid'], 0)) {
-                                       q('DELETE FROM `process` WHERE `pid` = %d', intval($process['pid']));
+                                       dba::delete('process', array('pid' => $process['pid']));
                                }
                        }
                }
@@ -743,27 +735,7 @@ class App {
         * @brief Remove the active process from the "process" table
         */
        function end_process() {
-               q('DELETE FROM `process` WHERE `pid` = %d', intval(getmypid()));
-       }
-
-       /**
-        * @brief Returns a string with a callstack. Can be used for logging.
-        *
-        * @return string
-        */
-       function callstack($depth = 4) {
-               $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, $depth + 2);
-
-               // 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);
+               dba::delete('process', array('pid' => getmypid()));
        }
 
        function get_useragent() {
@@ -836,7 +808,7 @@ class App {
                        }
                }
 
-               $processlist = dbm::processlist();
+               $processlist = DBM::processlist();
                if ($processlist['list'] != '') {
                        logger('Processcheck: Processes: ' . $processlist['amount'] . ' - Processlist: ' . $processlist['list'], LOGGER_DEBUG);