mirror of
https://github.com/getgrav/grav.git
synced 2026-07-13 07:33:46 +02:00
Fixed Flex Page parent header.admin.children_display_order setting being ignored in Admin [#2881]
This commit is contained in:
@@ -8,10 +8,11 @@
|
||||
1. [](#bugfix)
|
||||
* Fixed flex objects with integer keys not working [#2863](https://github.com/getgrav/grav/issues/2863)
|
||||
* Fixed `Pages::instances()` returning null values when using `Flex Pages` [#2889](https://github.com/getgrav/grav/issues/2889)
|
||||
* Fixed Flex Page parent `header.admin.children_display_order` setting being ignored in Admin [#2881](https://github.com/getgrav/grav/issues/2881)
|
||||
* Implemented missing Flex `$pageCollection->batch()` and `$pageCollection->order()` methods
|
||||
* 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`
|
||||
* Implemented missing Flex `$pageCollection->batch()` and `$pageCollection->order()` methods
|
||||
|
||||
# v1.7.0-rc.8
|
||||
## 03/19/2020
|
||||
|
||||
@@ -16,6 +16,7 @@ use Grav\Common\File\CompiledJsonFile;
|
||||
use Grav\Common\Flex\Traits\FlexGravTrait;
|
||||
use Grav\Common\Flex\Traits\FlexIndexTrait;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Page\Header;
|
||||
use Grav\Common\Page\Interfaces\PageCollectionInterface;
|
||||
use Grav\Common\Page\Interfaces\PageInterface;
|
||||
use Grav\Common\Utils;
|
||||
@@ -266,12 +267,20 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface
|
||||
*/
|
||||
public function getLevelListing(array $options): array
|
||||
{
|
||||
// Undocumented B/C
|
||||
$order = $options['order'] ?? 'asc';
|
||||
if ($order === SORT_ASC) {
|
||||
$options['order'] = 'asc';
|
||||
} elseif ($order === SORT_DESC) {
|
||||
$options['order'] = 'desc';
|
||||
}
|
||||
|
||||
$options += [
|
||||
'field' => null,
|
||||
'route' => null,
|
||||
'leaf_route' => null,
|
||||
'sortby' => null,
|
||||
'order' => SORT_ASC,
|
||||
'order' => 'asc',
|
||||
'lang' => null,
|
||||
'filters' => [],
|
||||
];
|
||||
@@ -395,6 +404,21 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface
|
||||
$children = $page->children()->getIndex();
|
||||
$selectedChildren = $children->filterBy($filters, true);
|
||||
|
||||
/** @var Header $header */
|
||||
$header = $page->header();
|
||||
|
||||
if ($header->get('admin.children_display_order') === 'collection' && ($orderby = $header->get('content.order.by'))) {
|
||||
// Use custom sorting by page header.
|
||||
$sortby = $orderby;
|
||||
$order = $header->get('content.order.dir', $order);
|
||||
$custom = $header->get('content.order.custom');
|
||||
}
|
||||
|
||||
if ($sortby) {
|
||||
// Sort children.
|
||||
$selectedChildren = $selectedChildren->order($sortby, $order, $custom ?? null);
|
||||
}
|
||||
|
||||
/** @var PageObject $child */
|
||||
foreach ($selectedChildren as $child) {
|
||||
$selected = $child->path() === $extra;
|
||||
@@ -485,11 +509,6 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface
|
||||
$msg = 'PLUGIN_ADMIN.PAGE_ROUTE_NOT_FOUND';
|
||||
}
|
||||
|
||||
// Sorting
|
||||
if ($sortby) {
|
||||
$response = Utils::sortArrayByKey($response, $sortby, $order);
|
||||
}
|
||||
|
||||
if ($field) {
|
||||
$temp_array = [];
|
||||
foreach ($response as $index => $item) {
|
||||
|
||||
Reference in New Issue
Block a user