From a9d80d73d6d10ad5d35e126c9d73beec54e55ce4 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 24 Apr 2020 13:30:10 +0300 Subject: [PATCH] Fixed `Flex Pages` with `00.home` page not having ordering set --- CHANGELOG.md | 1 + .../Common/Flex/Types/Pages/Storage/PageStorage.php | 10 +++++----- .../Framework/Flex/Pages/Traits/PageContentTrait.php | 12 +++++++----- system/src/Grav/Framework/Route/RouteFactory.php | 1 + 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 687563979..64e0c50f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ * Fixed user avatar creation for new `Flex Users` when using folder storage * Fixed `Trying to access array offset on value of type null` PHP 7.4 error in `Plugin.php` * Fixed Gregwar Image library using `.jpeg` for cached images, rather use `.jpg` + * Fixed `Flex Pages` with `00.home` page not having ordering set # v1.7.0-rc.8 ## 03/19/2020 diff --git a/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php b/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php index d2ea88cf9..7e6e969a2 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php @@ -139,9 +139,9 @@ class PageStorage extends FolderStorage if ($key !== '') { $key .= '/'; } - $order = $keys['order'] ?? 0; + $order = $keys['order'] ?? null; $folder = $keys['folder'] ?? 'undefined'; - $key .= $order ? sprintf('%02d.%s', $order, $folder) : $folder; + $key .= is_numeric($order) ? sprintf('%02d.%s', $order, $folder) : $folder; } $params = $includeParams ? $this->buildStorageKeyParams($keys) : ''; @@ -212,7 +212,7 @@ class PageStorage extends FolderStorage $storageKey = $row['storage_key'] ?? $meta['storage_key'] ?? ''; $keyMeta = $storageKey !== '' ? $this->extractKeysFromStorageKey($storageKey) : null; $parentKey = $row['parent_key'] ?? $meta['parent_key'] ?? $keyMeta['parent_key'] ?? ''; - $order = $row['order'] ?? $meta['order'] ?? $keyMeta['order'] ?? ''; + $order = $row['order'] ?? $meta['order'] ?? $keyMeta['order'] ?? null; $folder = $row['folder'] ?? $meta['folder'] ?? $keyMeta['folder'] ?? ''; $template = $row['template'] ?? $meta['template'] ?? $keyMeta['template'] ?? ''; $lang = $row['lang'] ?? $meta['lang'] ?? $keyMeta['lang'] ?? ''; @@ -232,7 +232,7 @@ class PageStorage extends FolderStorage 'key' => null, 'params' => null, 'parent_key' => $parentKey, - 'order' => (int)$order, + 'order' => is_numeric($order) ? (int)$order : null, 'folder' => $folder, 'template' => $template, 'lang' => $lang @@ -271,7 +271,7 @@ class PageStorage extends FolderStorage 'key' => $key, 'params' => $params, 'parent_key' => $parentKey, - 'order' => (int)$order, + 'order' => is_numeric($order) ? (int)$order : null, 'folder' => $folder, 'template' => $template, 'lang' => $language diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php index 0d952c6f3..a4ae19055 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php @@ -339,13 +339,15 @@ trait PageContentTrait $value = $order[1] ?? false; } - $value = (int)$value; + if ($value !== false) { + $value = (int)$value; + } - return $value ?: false; + return $value; } ); - return $property ? sprintf('%02d.', $property) : false; + return $property !== false ? sprintf('%02d.', $property) : false; } /** @@ -547,11 +549,11 @@ trait PageContentTrait case 'content': return $this->getProperty('markdown'); case 'order': - return ((int)$this->order()) ?: ''; + return (string)$this->order(); case 'menu': return $this->menu(); case 'ordering': - return (bool)$this->order(); + return $this->order() !== false ? '1' : '0'; case 'folder': $folder = $this->folder(); diff --git a/system/src/Grav/Framework/Route/RouteFactory.php b/system/src/Grav/Framework/Route/RouteFactory.php index 08f695abc..7ef7b21f5 100644 --- a/system/src/Grav/Framework/Route/RouteFactory.php +++ b/system/src/Grav/Framework/Route/RouteFactory.php @@ -78,6 +78,7 @@ class RouteFactory 'params' => static::getParams($path) ], ]; + return new Route($parts); }