From e842eb9d9e383c4a47984fab0293ed3b4190a447 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 4 Dec 2019 16:11:08 -0700 Subject: [PATCH 1/3] Better fix for #2750 --- system/src/Grav/Common/Page/Pages.php | 39 ++++++++++++++------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index c64109635..fe8e9a974 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -1266,11 +1266,9 @@ class Pages $header_query = []; // do this header query work only once - if (strpos($order_by, 'header.') === 0) { + if (Utils::startsWith($order_by, 'header.')) { $header_query = explode('|', str_replace('header.', '', $order_by)); - if (isset($header_query[1])) { - $header_default = $header_query[1]; - } + $header_default = $header_query[1] ?? null; } foreach ($pages as $key => $info) { @@ -1308,23 +1306,28 @@ class Pages case 'folder': $list[$key] = $child->folder(); break; - case (isset($header_query[0]) && is_string($header_query[0])): - $child_header = new Header((array)$child->header()); - $header_value = $child_header->get($header_query[0]); - if (is_array($header_value)) { - $list[$key] = implode(',',$header_value); - } elseif ($header_value) { - $list[$key] = $header_value; - } else { - $list[$key] = $header_default ?: $key; - } - $sort_flags = $sort_flags ?: SORT_REGULAR; - break; + case 'header': case 'manual': case 'default': default: - $list[$key] = $key; - $sort_flags = $sort_flags ?: SORT_REGULAR; + if (Utils::startsWith($order_by, 'header.')) { + $child_header = new Header((array)$child->header()); + if (isset($header_query) && is_array($header_query)) { + $header_value = $child_header->get($header_query[0]); + if (is_array($header_value)) { + $list[$key] = implode(',',$header_value); + } elseif ($header_value) { + $list[$key] = $header_value; + } else { + $list[$key] = $header_default ?: $key; + } + } + $sort_flags = $sort_flags ?: SORT_REGULAR; + break; + } else { + $list[$key] = $key; + $sort_flags = $sort_flags ?: SORT_REGULAR; + } } } From e8c79ffd97118ee19350d44c384bd9a898c1f25a Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 4 Dec 2019 16:27:47 -0700 Subject: [PATCH 2/3] Sync with 1.7 approach --- system/src/Grav/Common/Page/Pages.php | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index fe8e9a974..0278d76e1 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -1266,9 +1266,10 @@ class Pages $header_query = []; // do this header query work only once - if (Utils::startsWith($order_by, 'header.')) { - $header_query = explode('|', str_replace('header.', '', $order_by)); - $header_default = $header_query[1] ?? null; + if (strpos($order_by, 'header.') === 0) { + $query = explode('|', str_replace('header.', '', $order_by), 2); + $header_query = array_shift($query) ?? ''; + $header_default = array_shift($query); } foreach ($pages as $key => $info) { @@ -1306,28 +1307,27 @@ class Pages case 'folder': $list[$key] = $child->folder(); break; - case 'header': case 'manual': case 'default': default: - if (Utils::startsWith($order_by, 'header.')) { - $child_header = new Header((array)$child->header()); - if (isset($header_query) && is_array($header_query)) { - $header_value = $child_header->get($header_query[0]); - if (is_array($header_value)) { - $list[$key] = implode(',',$header_value); - } elseif ($header_value) { - $list[$key] = $header_value; - } else { - $list[$key] = $header_default ?: $key; - } - } - $sort_flags = $sort_flags ?: SORT_REGULAR; - break; - } else { - $list[$key] = $key; - $sort_flags = $sort_flags ?: SORT_REGULAR; + if (is_string($header_query)) { + $child_header = $child->header(); + if (!$child_header instanceof Header) { + $child_header = new Header((array)$child_header); } + $header_value = $child_header->get($header_query); + if (is_array($header_value)) { + $list[$key] = implode(',', $header_value); + } elseif ($header_value) { + $list[$key] = $header_value; + } else { + $list[$key] = $header_default ?: $key; + } + $sort_flags = $sort_flags ?: SORT_REGULAR; + break; + } + $list[$key] = $key; + $sort_flags = $sort_flags ?: SORT_REGULAR; } } From f633c921ccb53200002dae2695b4448d4020ee52 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 4 Dec 2019 16:31:04 -0700 Subject: [PATCH 3/3] prepare for release --- CHANGELOG.md | 2 +- system/defines.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38ff7fe37..072d0545c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ # v1.6.19 -## mm/dd/2019 +## 12/04/2019 1. [](#new) * Catch PHP 7.4 deprecation messages and report them in debugbar instead of throwing fatal error diff --git a/system/defines.php b/system/defines.php index 8c9ca2c2f..854fa88bc 100644 --- a/system/defines.php +++ b/system/defines.php @@ -8,7 +8,7 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '1.6.18'); +define('GRAV_VERSION', '1.6.19'); define('GRAV_TESTING', false); define('DS', '/');