class menu {
private $mainMenuClass = 'main-menu-class';
private $parentClass = 'parent-menu-class';
private $menu;
public function storeItem($menuItem, $parentClass = '') { // If no $parentClass is specified, pick the default one
// This stores the menu in an array
$this->menu[] = $menuItem;
}
public function buildMenu() {
// Let's break down the menu array, and start building it
$html = '<ul class="'. $this->mainMenuClass .'">'. PHP_EOL;
foreach($this->menu as $parentClass => $item) {
//$html Check.= if'<li it'sclass="'. a$item['CSS_CLASS'] recursive.'"><a sub-menuhref="'. (with$item['URL'] children).'">'. $item['TITLE'] .'</a>'. PHP_EOL;
$html// .=Check 'if <liit's class="'.a $item['CSS_CLASS']recursive .'">'.sub-menu PHP_EOL;(with children)
// Now we send the children array to the buildChildrenItems() method
$html .= $this->buildChildrenItems($item['CHILDREN']);
$html .= ' <'</li>'. PHP_EOL;
}
$html .= '</ul>'. PHP_EOL;
return $html;
}
public function buildChildrenItems($menuSection) {
// Put the recursive logics here so we can keep looping
$html = ' <ul'<ul class="'. $this->parentClass .'">'. PHP_EOL;
foreach($menuSection as $item) {
$html .= ' <li'<li class="'. $item['CSS_CLASS'] .'"><a href="'. $item['URL'] .'">'. $item['TITLE'] .'</a>'. PHP_EOL;
// Now here is where the recursive magic happends
// If the child item has even more children, call this method once again for those children
$html .= ( isset($item['CHILDREN']) && is_array($item['CHILDREN']) ) ? $this->buildChildrenItems($item['CHILDREN']) : '';
$html .= ' <'</li>'. PHP_EOL;
}
$html .= ' <'</ul>'. PHP_EOL;
return $html;
}
}
$home1Child[] = array('TITLE' => 'Home 1.1',
'URL' => '/home-1.1-url-here',
'CSS_CLASS' => 'sub-menu-child');
$home121Child[] = array('TITLE' => 'Home 1.2.1',
'URL' => '/home-1.2.1-url-here',
'CSS_CLASS' => 'sub-menu-child');
$home121Child[] = array('TITLE' => 'Home 1.2.2',
'URL' => '/home-1.2.2-url-here',
'CSS_CLASS' => 'sub-menu-child');
$home1Child[] = array('TITLE' => 'Home 1.2',
'URL' => '/home-1.2-url-here',
'CSS_CLASS' => 'sub-menu-child',
'CHILDREN' => $home121Child);
$home1Child[] = array('TITLE' => 'Home 1.3',
'URL' => '/home-1.3-url-here',
'CSS_CLASS' => 'sub-menu-child');
$home[] = array('TITLE' => 'Home 1',
'URL' => '/home-1-url-here',
'CSS_CLASS' => 'sub-menu',
'CHILDREN' => $home1Child);
$home[] = array('TITLE' => 'Home 2',
'URL' => '/home-2-url-here',
'CSS_CLASS' => 'sub-menu');
$home[] = array('TITLE' => 'Home 3',
'URL' => '/home-3-url-here',
'CSS_CLASS' => 'sub-menu');
// Now we create the whole home array, with the children
$homeMenu = array('CSS_CLASS' => 'top-css-class',
'TITLE' => 'Home',
// If the top menu item is just a link, specify an URL
'URL' => '',
// Or if it has children pass them on
'CHILDREN' => $home);
// Let's create the child menu array for the "Gallery" menu structure
$gallery[] = array('TITLE' => 'Gallery 1',
'URL' => '/gallery-1-url-here',
'CSS_CLASS' => 'sub-menu');
$gallery2Child[] = array('TITLE' => 'Gallery 2.1',
'URL' => '/gallery-2.1-url-here',
'CSS_CLASS' => 'sub-menu-child');
$gallery2Child[] = array('TITLE' => 'Gallery 2.2',
'URL' => '/gallery-2.2-url-here',
'CSS_CLASS' => 'sub-menu-child');
$gallery[] = array('TITLE' => 'Gallery 2',
'URL' => '/gallery-2-url-here',
'CSS_CLASS' => 'sub-menu',
'CHILDREN' => $gallery2Child);
// Now we create the whole gallery array, with the children
$galleryMenu = array('CSS_CLASS' => 'top-css-class',
'TITLE' => 'Gallery',
// If the top menu item is just a link, specify an URL
'URL' => '',
// Or if it has children pass them on
'CHILDREN' => $gallery);´;