function getMenuItems() { $nav_menu_name = $this->args['nav_menu']; if (wp_get_nav_menu_object($nav_menu_name) == false) { return array(); } $menu_items = wp_get_nav_menu_items($nav_menu_name); $outputNodes = array(); foreach ($menu_items as $menu_item) { //Create the new Node $node = new RokMenuNode(); $node->setId($menu_item->ID); $node->setParent($menu_item->menu_item_parent); $node->setTitle($menu_item->title); $node->setLink($menu_item->url); $node->setTarget($menu_item->target); if (!empty($menu_item->description)) { $node->addAttribute('description', $menu_item->description); } if (!empty($menu_item->xfn)) { $node->addLinkAttrib('rel', $menu_item->xfn); } if (!empty($menu_item->attr_title)) { $node->addLinkAttrib('title', $menu_item->attr_title); } foreach ($menu_item->classes as $miclass) { $node->addListItemClass($miclass); } $menu_item_vars = get_object_vars($menu_item); foreach ($menu_item_vars as $menu_item_var => $menu_item_value) { if (preg_match('/^' . self::PREFIX . '(\\w+)$/', $menu_item_var, $matches)) { $node->addAttribute($matches[1], $menu_item_value); } } $node->addListItemClass("item" . $node->getId()); $node->addSpanClass('menuitem'); if ($node->getLink() == $this->current_url && $this->current_node == 0) { $this->current_node = $node->getId(); } $outputNodes[$node->getId()] = $node; } $this->populateActiveBranch($outputNodes); return $outputNodes; }
protected function renderItem(RokMenuNode &$item, &$menu) { ?> <li id="idrops-<?php echo $item->getId(); ?> " parent_id="idrops-<?php echo $item->getParent(); ?> " <?php if ($item->hasListItemClasses()) { ?> class="<?php echo $item->getListItemClasses(); ?> "<?php } ?> <?php if ($item->getCssId()) { ?> id="<?php echo $item->getCssId(); ?> "<?php } ?> > <?php if (count($item->getChildren()) > 0 && $item->getParent() != 0) { ?> <small class="menucount"><?php echo count($item->getChildren()); ?> </small> <?php } ?> <a<?php if ($item->hasLinkClasses()) { ?> class="<?php echo $item->getLinkClasses(); ?> "<?php } if ($item->hasLink()) { ?> href="<?php echo $item->getLink(); ?> "<?php } if ($item->getTarget()) { ?> target="<?php echo $item->getTarget(); ?> "<?php } if ($item->hasLinkAttribs()) { ?> <?php echo $item->getLinkAttribs(); } ?> > <span <?php if ($item->hasSpanClasses()) { ?> class="<?php echo $item->getSpanClasses(); ?> "<?php } ?> ><?php echo $item->getTitle(); ?> </span> </a> <?php if ($item->hasChildren()) { ?> <ul> <?php // force the parent menu item to appear $cls = explode(" ", $item->getListItemClasses()); $isActive = in_array('active', $cls); if ($item->getParent() != 0) { ?> <li class="subnav"> <a href="#" parent_id="idrops-<?php echo $item->getParent(); ?> " class="item backmenu"><span>Back</span></a> <a href="#close" class="item closemenu"><span>Close</span></a> <span class="clear"></span> </li> <?php } ?> <li class="root-sub<?php echo $isActive ? ' active' : ''; ?> "> <?php if (count($item->getChildren()) > 0 && (!$item->getParent() && $item->getParent() != 0)) { ?> <small class="menucount"><?php echo count($item->getChildren()); ?> </small> <?php } ?> <a <?php if ($item->hasLinkClasses()) { ?> class="<?php echo $item->getLinkClasses(); ?> "<?php } ?> <?php if ($item->hasLink()) { ?> href="<?php echo $item->getLink(); ?> "<?php } ?> <?php if ($item->getTarget()) { ?> target="<?php echo $item->getTarget(); ?> "<?php } ?> <?php if ($item->hasLinkAttribs()) { ?> <?php echo $item->getLinkAttribs(); } ?> > <span <?php if ($item->hasSpanClasses()) { ?> class="<?php echo $item->getSpanClasses(); ?> "<?php } ?> ><?php echo $item->getTitle(); ?> </span> </a> <?php foreach ($item->getChildren() as $child) { ?> <?php $this->renderItem($child, $menu); ?> <?php } ?> </ul> <?php } ?> </li> <?php }