$sequenced - true/false * @return - List of Vtiger_Menu_Model instances */ public static function getAll($presence = array(), $restrictedModulesList = array(),$sequenced = false) { $currentUser = Users_Record_Model::getCurrentUserModel(); $userPrivModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $restrictedModulesList = array('Emails', 'ProjectMilestone', 'ProjectTask', 'ModComments', 'Integration', 'PBXManager', 'Dashboard', 'Home'); $allModules = parent::getAll(array('0','2')); $menuModels = array(); $moduleSeqs = Array(); $moduleNonSeqs = Array(); foreach($allModules as $module){ if($module->get('tabsequence') != -1){ $moduleSeqs[$module->get('tabsequence')] = $module; }else { $moduleNonSeqs[] = $module; } } ksort($moduleSeqs); $modules = array_merge($moduleSeqs, $moduleNonSeqs); foreach($modules as $module) { if (($userPrivModel->isAdminUser() || $userPrivModel->hasGlobalReadPermission() || $userPrivModel->hasModulePermission($module->getId()))& !in_array($module->getName(), $restrictedModulesList) && $module->get('parent') != '') { $menuModels[$module->getName()] = $module; } } return $menuModels; } /** * Static Function to get all the accessible module model for Quick Create * @return - List of Vtiger_Menu_Model instances */ public static function getAllForQuickCreate() { $userPrivModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $restrictedModulesList = array('Emails', 'ModComments', 'Integration', 'PBXManager', 'Dashboard', 'Home'); $allModules = parent::getAll(array('0', '2')); $menuModels = array(); foreach ($allModules as $module) { if (($userPrivModel->isAdminUser() || $userPrivModel->hasGlobalReadPermission() || $userPrivModel->hasModulePermission($module->getId())) && !in_array($module->getName(), $restrictedModulesList) && $module->get('parent') != '') { $menuModels[$module->getName()] = $module; } } uksort($menuModels, array('Vtiger_MenuStructure_Model', 'sortMenuItemsByProcess')); return $menuModels; } }