/** * Converts query result array into BASE_MenuItem items array. * * @param array $items */ public function getMenuItems(array $menuItems) { $resultArray = array(); foreach ($menuItems as $value) { $visible = (int) $value['visibleFor']; $auth = OW::getUser()->isAuthenticated(); if ($visible === 0 || $visible === 1 && $auth || $visible === 2 && !$auth) { continue; } if (!empty($value['externalUrl'])) { $url = $value['externalUrl']; } else { if (!empty($value['uri'])) { $url = OW::getRouter()->getBaseUrl() . $value['uri']; } else { if (!empty($value['routePath'])) { $url = OW::getRouter()->urlForRoute($value['routePath']); } else { if (!empty($value['class']) && !empty($value['action'])) { $url = OW::getRouter()->urlFor($value['class'], $value['action']); } else { $url = '_INVALID_URL_'; } } } } $menuItem = new BASE_MenuItem(); $menuItem->setKey($value['menu_key']); $menuItem->setLabel(OW::getLanguage()->text($value['prefix'], $value['menu_key'])); $menuItem->setOrder($value['order']); $menuItem->setUrl($url); $menuItem->setNewWindow($value['newWindow']); $menuItem->setPrefix($value['prefix']); $resultArray[] = $menuItem; } return $resultArray; }