contains( static fn (array $page): bool => (string) ($page['slug'] ?? '') === $extensionSlug ); if (! $exists) { $section['pages'][] = $extension; } } } unset($section); $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'] ); foreach ($page['children'] ?? [] as $childIndex => $child) { $section['pages'][$pageIndex]['children'][$childIndex]['title'] = self::title( $pageTitles[$sectionSlug][$child['slug']] ?? null, $child['title'] ); } } } unset($section); return $navigation; } private static function title($value, string $default): string { $value = trim((string) $value); return $value === '' ? $default : $value; } }