function getEmptyMenuNode()
 {
     $menuNode = new MenuNode();
     $menuNode->id = FALSE;
     $menuNode->type = 'separator';
     $menuNode->link = '';
     $menuNode->setAlias('');
     $menuNode->setCaption('');
     $menuNode->browserNav = '';
     return $menuNode;
 }
 public function GetHyperlink($aExtraParams)
 {
     $sContext = $this->oShortcut->Get('context');
     $aContext = unserialize($sContext);
     if (isset($aContext['menu'])) {
         unset($aContext['menu']);
     }
     foreach ($aContext as $sArgName => $sArgValue) {
         $aExtraParams[$sArgName] = $sArgValue;
     }
     return parent::GetHyperlink($aExtraParams);
 }
 function addMenuItemMenuNodes($parentMenuNode, $menuItemList, $minExpand, $openActiveOnly, $level = 0)
 {
     $parseAccessKeys = $this->parseAccessKey;
     foreach (array_keys($menuItemList) as $key) {
         $menuItem = $menuItemList[$key];
         $menuNode = new MenuNode();
         foreach (get_object_vars($menuItem) as $k => $field) {
             if (!is_object($field) && !is_array($field) && substr($k, 0, 1) != '_') {
                 $menuNode->{$k} = $field;
             }
         }
         if ($menuNode->active || !$openActiveOnly || $level < $minExpand - 1) {
             $menuNode->expanded = TRUE;
             // active menu items are expanded
         }
         $name = $menuNode->getCaption();
         if ($parseAccessKeys > 0) {
             $menuNode->accessKey = $this->parseAccessKey($name, $parseAccessKeys);
             if ($menuNode->accessKey != '') {
                 // the name will now have the access key stripped off
                 $menuNode->setCaption($name);
             }
         }
         $this->menuNodeByIdMap[$menuNode->id] = $menuNode;
         $this->menuNodeByNameMap[$name] = $menuNode;
         if ($menuNode->id != $name) {
             $this->menuNodeByNameMap[$name] = $menuNode;
         }
         if (isset($menuItem->_children)) {
             $children = $menuItem->_children;
             $this->addMenuItemMenuNodes($menuNode, $children, $minExpand, $openActiveOnly, $level + 1);
         }
         $parentMenuNode->addChildNode($menuNode);
     }
 }