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;
 }
Exemple #2
0
    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 
    }