diff options
| author | Greg Roach <fisharebest@gmail.com> | 2014-12-23 23:02:52 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@gmail.com> | 2015-01-17 15:04:59 +0000 |
| commit | 07b70ae14d34ec3d428f7482e6df3ea0b1e7ef47 (patch) | |
| tree | 990e6fb7b84c3e4857579718ae7e6cc3eadcd047 /library/WT/Menu.php | |
| parent | 949a371536b689d2282ab562e3c8c1bae1cfcfb8 (diff) | |
| download | webtrees-07b70ae14d34ec3d428f7482e6df3ea0b1e7ef47.tar.gz webtrees-07b70ae14d34ec3d428f7482e6df3ea0b1e7ef47.tar.bz2 webtrees-07b70ae14d34ec3d428f7482e6df3ea0b1e7ef47.zip | |
New theme system and admin interface
Diffstat (limited to 'library/WT/Menu.php')
| -rw-r--r-- | library/WT/Menu.php | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/library/WT/Menu.php b/library/WT/Menu.php index e2da292a60..20a40da1eb 100644 --- a/library/WT/Menu.php +++ b/library/WT/Menu.php @@ -1,6 +1,6 @@ <?php // webtrees: Web based Family History software -// Copyright (C) 2014 webtrees development team. +// Copyright (C) 2015 webtrees development team. // // Derived from PhpGedView // Copyright (C) 2002 to 2009 PGV Development Team. All rights reserved. @@ -59,7 +59,7 @@ class WT_Menu { * @param string $onclick A javascript onclick handler * @param WT_Menu[] $submenus Any submenus */ - function __construct($label, $link = '#', $id = '', $onclick = '', $submenus = array()) { + public function __construct($label, $link = '#', $id = '', $onclick = '', $submenus = array()) { $this ->setLabel($label) ->setLink($link) @@ -79,13 +79,56 @@ class WT_Menu { } /** + * Render this menu using Bootstrap markup + * + * @return string + */ + public function bootstrap() { + if ($this->iconclass) { + $class = ' class="' . $this->iconclass . '"'; + } else { + $class = ''; + } + if ($this->id) { + $id = ' id="' . $this->id . '"'; + } else { + $id = ''; + } + + if ($this->submenus) { + $submenus = ''; + foreach ($this->submenus as $submenu) { + $submenus .= $submenu->bootstrap(); + } + + return + '<li' . $id . ' class="dropdown">' . + '<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">' . + $this->label . + ' <span class="caret"></span></a>' . + '<ul class="dropdown-menu" role="menu">' . + $submenus . + '</ul>' . + '</li>'; + } else { + if ($this->onclick) { + $onclick = ' onclick="' . $this->onclick . '"'; + } else { + $onclick = ''; + } + + return '<li' . $id . $class . '><a href="' . $this->link . '"' . $onclick . '>' . $this->label . '</a></li>'; + } + } + + /** * Set the CSS classes for this menu * * @param string $class * @param string $submenuclass * @param string $iconclass */ - function addClass($class, $submenuclass = '', $iconclass = 'icon_general') { + public function addClass($class, $submenuclass = '', $iconclass = '') { $this->class = $class; $this->submenuclass = $submenuclass; $this->iconclass = $iconclass; @@ -168,7 +211,7 @@ class WT_Menu { * * @param WT_Menu[] */ - function addSubmenu($menu) { + public function addSubmenu($menu) { $this->submenus[] = $menu; } @@ -177,7 +220,7 @@ class WT_Menu { * * @return string */ - function getMenu() { + public function getMenu() { global $menucount, $TEXT_DIRECTION; if (!isset($menucount)) { @@ -229,7 +272,7 @@ class WT_Menu { * * @return string */ - function getMenuAsList() { + public function getMenuAsList() { if ($this->iconclass) { $class = ' class="' . $this->iconclass . '"'; } else { |
