. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Menu; /** * The clouds theme. */ class CloudsTheme extends AbstractModule implements ModuleThemeInterface { use ModuleThemeTrait { primaryMenu as basePrimaryMenu; } protected const PERSON_BOX_CLASSES = [ 'M' => 'person_box', 'F' => 'person_boxF', 'U' => 'person_boxNN', ]; /** * How should this module be labelled on tabs, menus, etc.? * * @return string */ public function title(): string { /* I18N: Name of a theme. */ return I18N::translate('clouds'); } /** * Misecellaneous 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-box-x' => 260, 'chart-box-y' => 85, 'chart-font-color' => '000000', 'chart-spacing-x' => 4, 'chart-spacing-y' => 10, 'compact-chart-box-x' => 240, 'compact-chart-box-y' => 50, '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. * * @return Menu[] */ public function primaryMenu(): array { $primary_menu = $this->basePrimaryMenu(); foreach ($primary_menu as $menu) { $submenus = $menu->getSubmenus(); if (!empty($submenus)) { // Insert a dummy 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 string[] */ public function stylesheets(): array { return [ asset('css/clouds.min.css'), ]; } }