/** * Fetches the list of actions for a single module, saved to the session for performance reasons * * @param class_module_system_module $objModule * @static * * @return array */ public static function getModuleActionNaviHelper(class_module_system_module $objModule) { if (class_carrier::getInstance()->getObjSession()->isLoggedin()) { $strKey = __CLASS__ . "adminNaviEntries" . $objModule->getSystemid() . class_module_system_aspect::getCurrentAspectId(); $arrFinalItems = class_carrier::getInstance()->getObjSession()->getSession($strKey); if ($arrFinalItems !== false) { return $arrFinalItems; } $objAdminInstance = $objModule->getAdminInstanceOfConcreteModule(); $arrItems = $objAdminInstance->getOutputModuleNavi(); $arrItems = array_merge($arrItems, $objAdminInstance->getModuleRightNaviEntry()); $arrFinalItems = array(); //build array of final items $intI = 0; foreach ($arrItems as $arrOneItem) { if ($arrOneItem[0] == "") { $bitAdd = true; } else { $bitAdd = class_carrier::getInstance()->getObjRights()->validatePermissionString($arrOneItem[0], $objModule); } if ($bitAdd || $arrOneItem[1] == "") { if ($arrOneItem[1] != "" || (!isset($arrFinalItems[$intI - 1]) || $arrFinalItems[$intI - 1] != "")) { $arrFinalItems[] = $arrOneItem[1]; $intI++; } } } //if the last one is a divider, remove it if ($arrFinalItems[count($arrFinalItems) - 1] == "") { unset($arrFinalItems[count($arrFinalItems) - 1]); } class_carrier::getInstance()->getObjSession()->setSession($strKey, $arrFinalItems); return $arrFinalItems; } return array(); }