. */ namespace Fisharebest\Webtrees\Theme; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Individual; use Fisharebest\Webtrees\Menu; /** * The clouds theme. */ class CloudsTheme extends AbstractTheme implements ThemeInterface { /** * Where are our CSS, JS and other assets? */ const THEME_DIR = 'clouds'; const ASSET_DIR = 'themes/' . self::THEME_DIR . '/css-2.0.0/'; const STYLESHEET = self::ASSET_DIR . 'style.css'; /** * Allow themes to add extra scripts to the page footer. * * @return string */ public function hookFooterExtraJavascript() { return ''; } /** * 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-spacing-x' => 4, 'chart-box-x' => 260, 'chart-box-y' => 85, 'distribution-chart-high-values' => '95b8e0', 'distribution-chart-low-values' => 'c8e7ff', ]; if (array_key_exists($parameter_name, $parameters)) { return $parameters[$parameter_name]; } else { return parent::parameter($parameter_name); } } /** * Generate a list of items for the main menu. * * @param Individual $individual * * @return Menu[] */ public function primaryMenu(Individual $individual) { $primary_menu = parent::primaryMenu($individual); 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(), '#', null, ['onclick' => 'return false;'])); $menu->setSubmenus($submenus); } } return $primary_menu; } /** * A list of CSS files to include for this page. * * @return string[] */ public function stylesheets() { return array_merge(parent::stylesheets(), [ self::STYLESHEET, ]); } /** * What is this theme called? * * @return string */ public function themeName() { return /* I18N: Name of a theme. */ I18N::translate('clouds'); } }