summaryrefslogtreecommitdiff
path: root/library/WT/Menu.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2014-12-23 23:02:52 +0000
committerGreg Roach <fisharebest@gmail.com>2015-01-17 15:04:59 +0000
commit07b70ae14d34ec3d428f7482e6df3ea0b1e7ef47 (patch)
tree990e6fb7b84c3e4857579718ae7e6cc3eadcd047 /library/WT/Menu.php
parent949a371536b689d2282ab562e3c8c1bae1cfcfb8 (diff)
downloadwebtrees-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.php55
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 {