50 lines
1.1 KiB
PHP
50 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace DigiComp\Menu\MenuService;
|
|
|
|
/*
|
|
* This file is part of the DigiComp.Menu package.
|
|
*
|
|
* (c) digital competence
|
|
*
|
|
* This package is Open Source Software. For the full copyright and license
|
|
* information, please view the LICENSE file which was distributed with this
|
|
* source code.
|
|
*/
|
|
|
|
use Neos\Flow\Annotations as Flow;
|
|
|
|
/**
|
|
* @Flow\Scope("singleton")
|
|
*/
|
|
class SettingsService implements ServiceInterface
|
|
{
|
|
/**
|
|
* @Flow\InjectConfiguration(type="Menu")
|
|
* @var array
|
|
*/
|
|
protected array $menuConfiguration;
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected array $items = [];
|
|
|
|
public function getItems(string $forPath = null): \Iterator
|
|
{
|
|
if ($forPath) {
|
|
$items = &$this->menuConfiguration[$forPath];
|
|
} else {
|
|
$items = &$this->menuConfiguration;
|
|
}
|
|
if ($items) {
|
|
\uasort(
|
|
$items,
|
|
static function ($a, $b) {
|
|
return $a['sorting'] > $b['sorting'];
|
|
}
|
|
);
|
|
}
|
|
return new \ArrayIterator($items);
|
|
}
|
|
}
|