Some checks failed
Tests / PHP 8.1 (push) Has been cancelled
Tests / PHP 8.2 (push) Has been cancelled
Tests / PHP 8.3 (push) Has been cancelled
40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Utilities;
|
|
|
|
class BusinessNavigation
|
|
{
|
|
/**
|
|
* Return the configured business navigation with this company's title overrides applied.
|
|
*/
|
|
public static function all(): array
|
|
{
|
|
$navigation = config('business_navigation', []);
|
|
$titles = (array) setting('navigation.titles', []);
|
|
$sectionTitles = (array) ($titles['sections'] ?? []);
|
|
$pageTitles = (array) ($titles['pages'] ?? []);
|
|
|
|
foreach ($navigation as &$section) {
|
|
$sectionSlug = $section['slug'];
|
|
$section['title'] = self::title($sectionTitles[$sectionSlug] ?? null, $section['title']);
|
|
|
|
foreach ($section['pages'] ?? [] as $pageIndex => $page) {
|
|
$section['pages'][$pageIndex]['title'] = self::title(
|
|
$pageTitles[$sectionSlug][$page['slug']] ?? null,
|
|
$page['title']
|
|
);
|
|
}
|
|
}
|
|
unset($section);
|
|
|
|
return $navigation;
|
|
}
|
|
|
|
private static function title($value, string $default): string
|
|
{
|
|
$value = trim((string) $value);
|
|
|
|
return $value === '' ? $default : $value;
|
|
}
|
|
}
|