]> git.mxchange.org Git - friendica.git/blobdiff - boot.php
Merge pull request #4165 from MrPetovan/bug/4163-null-profile
[friendica.git] / boot.php
index 245fdc9035c109a524bae6365c178a97f3d6b107..8c3cd786f54dd5de79a074e143c528e77959aa0c 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -37,7 +37,6 @@ require_once 'include/datetime.php';
 require_once 'include/pgettext.php';
 require_once 'include/nav.php';
 require_once 'include/identity.php';
-require_once 'update.php';
 
 define('FRIENDICA_PLATFORM',     'Friendica');
 define('FRIENDICA_CODENAME',     'Asparagus');
@@ -573,6 +572,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.
  *
@@ -678,6 +719,8 @@ function update_db(App $a)
        }
 
        if ($build != DB_UPDATE_VERSION) {
+               require_once 'update.php';
+
                $stored = intval($build);
                $current = intval(DB_UPDATE_VERSION);
                if ($stored < $current) {
@@ -705,7 +748,7 @@ function update_db(App $a)
                        }
 
                        // run any left update_nnnn functions in update.php
-                       for ($x = $stored; $x < $current; $x ++) {
+                       for ($x = $stored + 1; $x <= $current; $x++) {
                                $r = run_update_function($x);
                                if (!$r) {
                                        break;
@@ -1589,14 +1632,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 = "";
 
@@ -1607,7 +1647,8 @@ 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);
                }