. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Menu; use Fisharebest\Webtrees\Tree; /** * The clouds theme. */ class CloudsTheme extends AbstractModule implements ModuleThemeInterface { use ModuleThemeTrait { genealogyMenu as baseGenealogyMenu; } /** * How should this module be identified in the control panel, etc.? * * @return string */ public function title(): string { /* I18N: Name of a theme. */ return I18N::translate('clouds'); } /** * Miscellaneous dimensions, fonts, styles, etc. * * @param string $parameter_name * * @return string|int|float */ public function parameter($parameter_name) { $parameters = [ 'chart-background-f' => 'e9daf1', 'chart-background-m' => 'b1cff0', 'chart-background-u' => 'eeeeee', 'chart-font-color' => '000000', 'distribution-chart-high-values' => '95b8e0', 'distribution-chart-low-values' => 'c8e7ff', 'distribution-chart-no-values' => 'ffffff', ]; return $parameters[$parameter_name]; } /** * Generate a list of items for the main menu. * * @param Tree|null $tree * * @return array */ public function genealogyMenu(?Tree $tree): array { $primary_menu = $this->baseGenealogyMenu($tree); foreach ($primary_menu as $menu) { $submenus = $menu->getSubmenus(); if ($submenus !== []) { // Insert a fake menu / label into the submenu array_unshift($submenus, new Menu($menu->getLabel(), '#', '', ['onclick' => 'return false;'])); $menu->setSubmenus($submenus); } } return $primary_menu; } /** * A list of CSS files to include for this page. * * @return array */ public function stylesheets(): array { return [ asset('css/clouds.min.css'), ]; } }