X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=boot.php;h=732816d1b9354f28010bdbfa67a85f2055060809;hb=4949be60a899105aa7f125227f2767af87afceb2;hp=199ca05551fd0da556794a2d75cb8d54990c65b0;hpb=3fdfc2e4257ecc6e02fb7d6d5e9d9f774c7eee8b;p=friendica.git diff --git a/boot.php b/boot.php index 199ca05551..732816d1b9 100644 --- a/boot.php +++ b/boot.php @@ -1,5 +1,4 @@ (-1), NETWORK_ZOT => (-2), NETWORK_OSTATUS => (-3), @@ -309,7 +307,7 @@ $netgroup_ids = array( NETWORK_PNUT => (-20), NETWORK_PHANTOM => (-127), -); +]; /** * Maximum number of "people who like (or don't like) this" that we will list by name @@ -503,7 +501,7 @@ function startup() ini_set('pcre.backtrack_limit', 500000); if (get_magic_quotes_gpc()) { - $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); + $process = [&$_GET, &$_POST, &$_COOKIE, &$_REQUEST]; while (list($key, $val) = each($process)) { foreach ($val as $k => $v) { unset($process[$key][$k]); @@ -572,6 +570,48 @@ function x($s, $k = null) } } +/** + * Return the provided variable value if it exists and is truthy or the provided + * default value instead. + * + * Works with initialized variables and potentially uninitialized array keys + * + * Usages: + * - defaults($var, $default) + * - defaults($array, 'key', $default) + * + * @brief Returns a defaut value if the provided variable or array key is falsy + * @see x() + * @return mixed + */ +function defaults() { + $args = func_get_args(); + + if (count($args) < 2) { + throw new BadFunctionCallException('defaults() requires at least 2 parameters'); + } + if (count($args) > 3) { + throw new BadFunctionCallException('defaults() cannot use more than 3 parameters'); + } + if (count($args) === 3 && is_null($args[1])) { + throw new BadFunctionCallException('defaults($arr, $key, $def) $key is null'); + } + + $default = array_pop($args); + + if (call_user_func_array('x', $args)) { + if (count($args) === 1) { + $return = $args[0]; + } else { + $return = $args[0][$args[1]]; + } + } else { + $return = $default; + } + + return $return; +} + /** * @brief Returns the baseurl. * @@ -620,7 +660,7 @@ function check_db($via_worker) $build = Config::get('system', 'build'); if (empty($build)) { - Config::set('system', 'build', DB_UPDATE_VERSION); + Config::set('system', 'build', DB_UPDATE_VERSION - 1); $build = DB_UPDATE_VERSION; } @@ -632,7 +672,7 @@ function check_db($via_worker) if ($build != DB_UPDATE_VERSION) { // When we cannot execute the database update via the worker, we will do it directly if (!Worker::add(PRIORITY_CRITICAL, 'DBUpdate') && $via_worker) { - update_db(get_app()); + update_db(); } } } @@ -653,11 +693,8 @@ function check_url(App $a) // and www.example.com vs example.com. // We will only change the url to an ip address if there is no existing setting - if (empty($url)) { - $url = Config::set('system', 'url', System::baseUrl()); - } - if ((!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname))) { - $url = Config::set('system', 'url', System::baseUrl()); + if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname))) { + Config::set('system', 'url', System::baseUrl()); } return; @@ -667,13 +704,13 @@ function check_url(App $a) * @brief Automatic database updates * @param object $a App */ -function update_db(App $a) +function update_db() { $build = Config::get('system', 'build'); - if (empty($build)) { - Config::set('system', 'build', DB_UPDATE_VERSION); - $build = DB_UPDATE_VERSION; + if (empty($build) || ($build > DB_UPDATE_VERSION)) { + $build = DB_UPDATE_VERSION - 1; + Config::set('system', 'build', $build); } if ($build != DB_UPDATE_VERSION) { @@ -743,74 +780,73 @@ function run_update_function($x) //send the administrator an e-mail DBStructure::updateFail( $x, - sprintf(t('Update %s failed. See error logs.'), $x) + L10n::t('Update %s failed. See error logs.', $x) ); return false; } else { Config::set('database', 'update_' . $x, 'success'); - Config::set('system', 'build', $x + 1); + Config::set('system', 'build', $x); return true; } } else { Config::set('database', 'update_' . $x, 'success'); - Config::set('system', 'build', $x + 1); + Config::set('system', 'build', $x); return true; } - return true; } /** - * @brief Synchronise plugins: + * @brief Synchronise addons: * * $a->config['system']['addon'] contains a comma-separated list of names - * of plugins/addons which are used on this system. + * of addons which are used on this system. * Go through the database list of already installed addons, and if we have * an entry, but it isn't in the config list, call the uninstall procedure * and mark it uninstalled in the database (for now we'll remove it). - * Then go through the config list and if we have a plugin that isn't installed, + * Then go through the config list and if we have a addon that isn't installed, * call the install procedure and add it to the database. * * @param object $a App */ -function check_plugins(App $a) +function check_addons(App $a) { $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); if (DBM::is_result($r)) { $installed = $r; } else { - $installed = array(); + $installed = []; } - $plugins = Config::get('system', 'addon'); - $plugins_arr = array(); + $addons = Config::get('system', 'addon'); + $addons_arr = []; - if ($plugins) { - $plugins_arr = explode(',', str_replace(' ', '', $plugins)); + if ($addons) { + $addons_arr = explode(',', str_replace(' ', '', $addons)); } - $a->plugins = $plugins_arr; + $a->addons = $addons_arr; - $installed_arr = array(); + $installed_arr = []; if (count($installed)) { foreach ($installed as $i) { - if (!in_array($i['name'], $plugins_arr)) { - uninstall_plugin($i['name']); + if (!in_array($i['name'], $addons_arr)) { + Addon::uninstall($i['name']); } else { $installed_arr[] = $i['name']; } } } - if (count($plugins_arr)) { - foreach ($plugins_arr as $p) { + if (count($addons_arr)) { + foreach ($addons_arr as $p) { if (!in_array($p, $installed_arr)) { - install_plugin($p); + Addon::install($p); } } } - load_hooks(); + Addon::loadHooks(); return; } @@ -835,83 +871,6 @@ function get_guid($size = 16, $prefix = "") } } -/** - * @brief Wrapper for adding a login box. - * - * @param bool $register If $register == true provide a registration link. - * This will most always depend on the value of $a->config['register_policy']. - * @param bool $hiddens optional - * - * @return string Returns the complete html for inserting into the page - * - * @hooks 'login_hook' - * string $o - */ -function login($register = false, $hiddens = false) -{ - $a = get_app(); - $o = ""; - $reg = false; - if ($register) { - $reg = array( - 'title' => t('Create a New Account'), - 'desc' => t('Register') - ); - } - - $noid = Config::get('system', 'no_openid'); - - $dest_url = $a->query_string; - - if (local_user()) { - $tpl = get_markup_template("logout.tpl"); - } else { - $a->page['htmlhead'] .= replace_macros( - get_markup_template("login_head.tpl"), - array( - '$baseurl' => $a->get_baseurl(true) - ) - ); - - $tpl = get_markup_template("login.tpl"); - $_SESSION['return_url'] = $a->query_string; - $a->module = 'login'; - } - - $o .= replace_macros( - $tpl, - array( - '$dest_url' => $dest_url, - '$logout' => t('Logout'), - '$login' => t('Login'), - - '$lname' => array('username', t('Nickname or Email: ') , '', ''), - '$lpassword' => array('password', t('Password: '), '', ''), - '$lremember' => array('remember', t('Remember me'), 0, ''), - - '$openid' => !$noid, - '$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''), - - '$hiddens' => $hiddens, - - '$register' => $reg, - - '$lostpass' => t('Forgot your password?'), - '$lostlink' => t('Password Reset'), - - '$tostitle' => t('Website Terms of Service'), - '$toslink' => t('terms of service'), - - '$privacytitle' => t('Website Privacy Policy'), - '$privacylink' => t('privacy policy'), - ) - ); - - call_hooks('login_hook', $o); - - return $o; -} - /** * @brief Used to end the current process, after saving session state. */ @@ -927,13 +886,15 @@ function killme() /** * @brief Redirect to another URL and terminate this process. */ -function goaway($s) +function goaway($path) { - if (!strstr(normalise_link($s), "http://")) { - $s = System::baseUrl() . "/" . $s; + if (strstr(normalise_link($path), 'http://')) { + $url = $path; + } else { + $url = System::baseUrl() . '/' . ltrim($path, '/'); } - header("Location: $s"); + header("Location: $url"); killme(); } @@ -1002,7 +963,7 @@ function notice($s) { $a = get_app(); if (!x($_SESSION, 'sysmsg')) { - $_SESSION['sysmsg'] = array(); + $_SESSION['sysmsg'] = []; } if ($a->interactive) { $_SESSION['sysmsg'][] = $s; @@ -1025,7 +986,7 @@ function info($s) } if (!x($_SESSION, 'sysmsg_info')) { - $_SESSION['sysmsg_info'] = array(); + $_SESSION['sysmsg_info'] = []; } if ($a->interactive) { $_SESSION['sysmsg_info'][] = $s; @@ -1046,7 +1007,7 @@ function get_max_import_size() function current_theme() { - $app_base_themes = array('duepuntozero', 'dispy', 'quattro'); + $app_base_themes = ['duepuntozero', 'dispy', 'quattro']; $a = get_app(); @@ -1082,7 +1043,6 @@ function current_theme() if ($is_mobile) { if (isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) { - $system_theme = $standard_system_theme; $theme_name = $standard_theme_name; } else { $system_theme = Config::get('system', 'mobile-theme', ''); @@ -1093,7 +1053,6 @@ function current_theme() if ($theme_name === '---') { // user has selected to have the mobile theme be the same as the normal one - $system_theme = $standard_system_theme; $theme_name = $standard_theme_name; if ($page_theme) { @@ -1102,7 +1061,6 @@ function current_theme() } } } else { - $system_theme = $standard_system_theme; $theme_name = $standard_theme_name; if ($page_theme) { @@ -1277,10 +1235,10 @@ function explode_querystring($query) $args = array_values($args); } - return array( + return [ 'base' => $base, 'args' => $args, - ); + ]; } /** @@ -1590,14 +1548,11 @@ function argv($x) function infinite_scroll_data($module) { if (PConfig::get(local_user(), 'system', 'infinite_scroll') - && ($module == "network") && ($_GET["mode"] != "minimal") + && $module == 'network' + && defaults($_GET, 'mode', '') != 'minimal' ) { // get the page number - if (is_string($_GET["page"])) { - $pageno = $_GET["page"]; - } else { - $pageno = 1; - } + $pageno = defaults($_GET, 'page', 1); $reload_uri = ""; @@ -1608,11 +1563,12 @@ function infinite_scroll_data($module) } } - if (($a->page_offset != "") && ! strstr($reload_uri, "&offset=")) { + $a = get_app(); + if ($a->page_offset != "" && !strstr($reload_uri, "&offset=")) { $reload_uri .= "&offset=" . urlencode($a->page_offset); } - $arr = array("pageno" => $pageno, "reload_uri" => $reload_uri); + $arr = ["pageno" => $pageno, "reload_uri" => $reload_uri]; return $arr; }