X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=boot.php;h=becb9bd570e895172d7a6e0465517eaccf4169c3;hb=07faa14361f46b744e4b135d161ad491baa93809;hp=e660cb3ede90ad94d2c9944fa6d7c3fbe92a3755;hpb=f85e6d2aacd9071047b86cd7b45c73c532218057;p=friendica.git diff --git a/boot.php b/boot.php index e660cb3ede..becb9bd570 100644 --- a/boot.php +++ b/boot.php @@ -17,7 +17,7 @@ * easily as email does today. */ -require_once('include/autoloader.php'); +require_once(__DIR__ . DIRECTORY_SEPARATOR. 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'); use \Friendica\Core\Config; @@ -29,7 +29,6 @@ require_once('include/datetime.php'); require_once('include/pgettext.php'); require_once('include/nav.php'); require_once('include/cache.php'); -require_once('library/Mobile_Detect/Mobile_Detect.php'); require_once('include/features.php'); require_once('include/identity.php'); require_once('update.php'); @@ -39,7 +38,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_CODENAME', 'Asparagus'); define ( 'FRIENDICA_VERSION', '3.5.2-dev' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1216 ); +define ( 'DB_UPDATE_VERSION', 1219 ); /** * @brief Constant with a HTML line break. @@ -253,7 +252,6 @@ define ( 'NETWORK_PHANTOM', 'unkn'); // Place holder * and existing allocations MUST NEVER BE CHANGED * OR RE-ASSIGNED! You may only add to them. */ - $netgroup_ids = array( NETWORK_DFRN => (-1), NETWORK_ZOT => (-2), @@ -384,6 +382,7 @@ define ( 'ACTIVITY_UPDATE', NAMESPACE_ACTIVITY_SCHEMA . 'update' ); define ( 'ACTIVITY_TAG', NAMESPACE_ACTIVITY_SCHEMA . 'tag' ); define ( 'ACTIVITY_FAVORITE', NAMESPACE_ACTIVITY_SCHEMA . 'favorite' ); define ( 'ACTIVITY_SHARE', NAMESPACE_ACTIVITY_SCHEMA . 'share' ); +define ( 'ACTIVITY_DELETE', NAMESPACE_ACTIVITY_SCHEMA . 'delete' ); define ( 'ACTIVITY_POKE', NAMESPACE_ZOT . '/activity/poke' ); define ( 'ACTIVITY_MOOD', NAMESPACE_ZOT . '/activity/mood' ); @@ -503,6 +502,7 @@ function startup() { */ class App { + /// @TODO decide indending as a colorful mixure is ahead ... public $module_loaded = false; public $query_string; public $config; @@ -647,28 +647,28 @@ class App { startup(); set_include_path( - 'include' . PATH_SEPARATOR + get_include_path() . PATH_SEPARATOR + . 'include' . PATH_SEPARATOR . 'library' . PATH_SEPARATOR - . 'library/phpsec' . PATH_SEPARATOR . 'library/langdet' . PATH_SEPARATOR . '.' ); - $this->scheme = 'http'; - if ((x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) || - (x($_SERVER['HTTP_FORWARDED']) && preg_match("/proto=https/", $_SERVER['HTTP_FORWARDED'])) || - (x($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || - (x($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || - (x($_SERVER['FRONT_END_HTTPS']) && $_SERVER['FRONT_END_HTTPS'] == 'on') || - (x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) // XXX: reasonable assumption, but isn't this hardcoding too much? - ) { + + if ((x($_SERVER, 'HTTPS') && $_SERVER['HTTPS']) || + (x($_SERVER, 'HTTP_FORWARDED') && preg_match("/proto=https/", $_SERVER['HTTP_FORWARDED'])) || + (x($_SERVER, 'HTTP_X_FORWARDED_PROTO') && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || + (x($_SERVER, 'HTTP_X_FORWARDED_SSL') && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || + (x($_SERVER, 'FRONT_END_HTTPS') && $_SERVER['FRONT_END_HTTPS'] == 'on') || + (x($_SERVER, 'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) // XXX: reasonable assumption, but isn't this hardcoding too much? + ) { $this->scheme = 'https'; } - if (x($_SERVER,'SERVER_NAME')) { + if (x($_SERVER, 'SERVER_NAME')) { $this->hostname = $_SERVER['SERVER_NAME']; - if (x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) + if (x($_SERVER, 'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) { $this->hostname .= ':' . $_SERVER['SERVER_PORT']; } /* @@ -676,6 +676,7 @@ class App { * or in a sub-directory and adjust accordingly */ + /// @TODO This kind of escaping breaks syntax-highlightning on CoolEdit (Midnight Commander) $path = trim(dirname($_SERVER['SCRIPT_NAME']), '/\\'); if (isset($path) && strlen($path) && ($path != $this->path)) { $this->path = $path; @@ -686,50 +687,45 @@ class App { $this->hostname = $hostname; } - if (is_array($_SERVER["argv"]) && $_SERVER["argc"]>1 && substr(end($_SERVER["argv"]), 0, 4)=="http" ) { - $this->set_baseurl(array_pop($_SERVER["argv"]) ); + if (is_array($_SERVER["argv"]) && $_SERVER["argc"] > 1 && substr(end($_SERVER["argv"]), 0, 4) == "http" ) { + $this->set_baseurl(array_pop($_SERVER["argv"])); $_SERVER["argc"] --; } - #set_include_path("include/$this->hostname" . PATH_SEPARATOR . get_include_path()); + if ((x($_SERVER, 'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'], 0, 9) === "pagename=") { + $this->query_string = substr($_SERVER['QUERY_STRING'], 9); - if ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,9) === "pagename=") { - $this->query_string = substr($_SERVER['QUERY_STRING'],9); // removing trailing / - maybe a nginx problem - if (substr($this->query_string, 0, 1) == "/") - $this->query_string = substr($this->query_string, 1); - } elseif ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") { - $this->query_string = substr($_SERVER['QUERY_STRING'],2); + $this->query_string = ltrim($this->query_string, '/'); + } elseif ((x($_SERVER, 'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'], 0, 2) === "q=") { + $this->query_string = substr($_SERVER['QUERY_STRING'], 2); + // removing trailing / - maybe a nginx problem - if (substr($this->query_string, 0, 1) == "/") - $this->query_string = substr($this->query_string, 1); + $this->query_string = ltrim($this->query_string, '/'); } - if (x($_GET,'pagename')) { - $this->cmd = trim($_GET['pagename'],'/\\'); - } elseif (x($_GET,'q')) { - $this->cmd = trim($_GET['q'],'/\\'); + if (x($_GET, 'pagename')) { + $this->cmd = trim($_GET['pagename'], '/\\'); + } elseif (x($_GET, 'q')) { + $this->cmd = trim($_GET['q'], '/\\'); } // fix query_string - $this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string); + $this->query_string = str_replace($this->cmd . "&", $this->cmd . "?", $this->query_string); // unix style "homedir" - - if (substr($this->cmd,0,1) === '~') { - $this->cmd = 'profile/' . substr($this->cmd,1); + if (substr($this->cmd, 0, 1) === '~') { + $this->cmd = 'profile/' . substr($this->cmd, 1); } // Diaspora style profile url - - if (substr($this->cmd,0,2) === 'u/') { - $this->cmd = 'profile/' . substr($this->cmd,2); + if (substr($this->cmd, 0, 2) === 'u/') { + $this->cmd = 'profile/' . substr($this->cmd, 2); } /* - * * Break the URL path into C style argc/argv style arguments for our * modules. Given "http://example.com/module/arg1/arg2", $this->argc * will be 3 (integer) and $this->argv will contain: @@ -740,12 +736,11 @@ class App { * * There will always be one argument. If provided a naked domain * URL, $this->argv[0] is set to "home". - * */ - $this->argv = explode('/',$this->cmd); + $this->argv = explode('/', $this->cmd); $this->argc = count($this->argv); - if ((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) { + if ((array_key_exists('0', $this->argv)) && strlen($this->argv[0])) { $this->module = str_replace(".", "_", $this->argv[0]); $this->module = str_replace("-", "_", $this->module); } else { @@ -759,9 +754,10 @@ class App { * pagination */ - $this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1); + $this->pager['page'] = ((x($_GET, 'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1); $this->pager['itemspage'] = 50; $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage']; + if ($this->pager['start'] < 0) { $this->pager['start'] = 0; } @@ -808,11 +804,11 @@ class App { $basepath = $_SERVER["PWD"]; } - return($basepath); + return $basepath; } function get_scheme() { - return($this->scheme); + return $this->scheme; } /** @@ -896,8 +892,8 @@ class App { } function get_hostname() { - if (get_config('config','hostname') != "") { - $this->hostname = get_config('config','hostname'); + if (get_config('config', 'hostname') != "") { + $this->hostname = get_config('config', 'hostname'); } return $this->hostname; @@ -908,7 +904,7 @@ class App { } function set_path($p) { - $this->path = trim(trim($p),'/'); + $this->path = trim(trim($p), '/'); } function get_path() { @@ -943,8 +939,8 @@ class App { // compose the page title from the sitename and the // current module called - if (!$this->module=='') { - $this->page['title'] = $this->config['sitename'].' ('.$this->module.')'; + if (!$this->module == '') { + $this->page['title'] = $this->config['sitename'] . ' (' . $this->module . ')'; } else { $this->page['title'] = $this->config['sitename']; } @@ -1032,29 +1028,6 @@ class App { function get_cached_avatar_image($avatar_image){ return $avatar_image; - - // The following code is deactivated. It doesn't seem to make any sense and it slows down the system. - /* - if ($this->cached_profile_image[$avatar_image]) - return $this->cached_profile_image[$avatar_image]; - - $path_parts = explode("/",$avatar_image); - $common_filename = $path_parts[count($path_parts)-1]; - - if ($this->cached_profile_picdate[$common_filename]){ - $this->cached_profile_image[$avatar_image] = $avatar_image . $this->cached_profile_picdate[$common_filename]; - } else { - $r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'", - $common_filename); - if (! dbm::is_result($r)) { - $this->cached_profile_image[$avatar_image] = $avatar_image; - } else { - $this->cached_profile_picdate[$common_filename] = "?rev=".urlencode($r[0]['picdate']); - $this->cached_profile_image[$avatar_image] = $avatar_image.$this->cached_profile_picdate[$common_filename]; - } - } - return $this->cached_profile_image[$avatar_image]; - */ } @@ -1069,7 +1042,7 @@ class App { // Is the function called statically? if (!(isset($this) && get_class($this) == __CLASS__)) { - return(self::$a->remove_baseurl($orig_url)); + return self::$a->remove_baseurl($orig_url); } // Remove the hostname from the url if it is an internal link @@ -1151,18 +1124,6 @@ class App { function set_template_engine($engine = 'smarty3') { $this->theme['template_engine'] = $engine; - /* - $this->theme['template_engine'] = 'smarty3'; - - switch($engine) { - case 'smarty3': - if (is_writable('view/smarty3/')) - $this->theme['template_engine'] = 'smarty3'; - break; - default: - break; - } - */ } function get_template_ldelim($engine = 'smarty3') { @@ -1266,11 +1227,16 @@ class App { } function get_useragent() { - return(FRIENDICA_PLATFORM." '".FRIENDICA_CODENAME."' ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION."; ".$this->get_baseurl()); + return + FRIENDICA_PLATFORM . " '" . + FRIENDICA_CODENAME . "' " . + FRIENDICA_VERSION . "-" . + DB_UPDATE_VERSION . "; " . + $this->get_baseurl(); } function is_friendica_app() { - return($this->is_friendica_app); + return $this->is_friendica_app; } /** @@ -1282,32 +1248,29 @@ class App { * @return bool Is it a known backend? */ function is_backend() { - $backend = array(); - $backend[] = "_well_known"; - $backend[] = "api"; - $backend[] = "dfrn_notify"; - $backend[] = "fetch"; - $backend[] = "hcard"; - $backend[] = "hostxrd"; - $backend[] = "nodeinfo"; - $backend[] = "noscrape"; - $backend[] = "p"; - $backend[] = "poco"; - $backend[] = "post"; - $backend[] = "proxy"; - $backend[] = "pubsub"; - $backend[] = "pubsubhubbub"; - $backend[] = "receive"; - $backend[] = "rsd_xml"; - $backend[] = "salmon"; - $backend[] = "statistics_json"; - $backend[] = "xrd"; - - if (in_array($this->module, $backend)) { - return(true); - } else { - return($this->backend); - } + static $backends = array(); + $backends[] = "_well_known"; + $backends[] = "api"; + $backends[] = "dfrn_notify"; + $backends[] = "fetch"; + $backends[] = "hcard"; + $backends[] = "hostxrd"; + $backends[] = "nodeinfo"; + $backends[] = "noscrape"; + $backends[] = "p"; + $backends[] = "poco"; + $backends[] = "post"; + $backends[] = "proxy"; + $backends[] = "pubsub"; + $backends[] = "pubsubhubbub"; + $backends[] = "receive"; + $backends[] = "rsd_xml"; + $backends[] = "salmon"; + $backends[] = "statistics_json"; + $backends[] = "xrd"; + + // Check if current module is in backend or backend flag is set + return (in_array($this->module, $backends) || $this->backend); } /** @@ -1384,12 +1347,11 @@ class App { // This should prevent the forking of masses of workers. $cachekey = "app:proc_run:started"; $result = Cache::get($cachekey); - /// @TODO maybe merge these both into one if() ? - if (!is_null($result)) { - if ((time() - $result) < 10) { - return; - } + + if (!is_null($result) AND (time() - $result) < 10) { + return; } + // Set the timestamp of the last proc_run Cache::set($cachekey, time(), CACHE_MINUTE); @@ -1402,12 +1364,12 @@ class App { $args[$x] = escapeshellarg($args[$x]); } - $cmdline = implode($args," "); + $cmdline = implode($args, " "); - if (get_config('system','proc_windows')) { - proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__))); + if (get_config('system', 'proc_windows')) { + proc_close(proc_open('cmd /c start /b ' . $cmdline, array(), $foo, dirname(__FILE__))); } else { - proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__))); + proc_close(proc_open($cmdline . " &", array(), $foo, dirname(__FILE__))); } } @@ -1487,7 +1449,7 @@ function get_app() { */ function x($s,$k = NULL) { if ($k != NULL) { - if ((is_array($s)) && (array_key_exists($k,$s))) { + if ((is_array($s)) && (array_key_exists($k, $s))) { if ($s[$k]) { return (int) 1; } @@ -1879,7 +1841,7 @@ function killme() { session_write_close(); } - exit; + exit(); } /** @@ -2392,7 +2354,7 @@ function get_cachefile($file, $writemode = true) { } /// @TODO no need to put braces here - return($cachepath); + return $cachepath; } function clear_cache($basepath = "", $path = "") { @@ -2511,7 +2473,7 @@ function get_temppath() { // Check if it is usable if (($temppath != "") AND App::directory_usable($temppath)) { // To avoid any interferences with other systems we create our own directory - $new_temppath .= "/".$a->get_hostname(); + $new_temppath = $temppath."/".$a->get_hostname(); if (!is_dir($new_temppath)) { /// @TODO There is a mkdir()+chmod() upwards, maybe generalize this (+ configurable) into a function/method? mkdir($new_temppath); @@ -2544,7 +2506,7 @@ function set_template_engine(App $a, $engine = 'internal') { if (!function_exists('exif_imagetype')) { function exif_imagetype($file) { $size = getimagesize($file); - return($size[2]); + return $size[2]; } }