public static function getModules()
{
$modules = array("Core", "Content", "Admin", "Pages", "Administrators", "Design", "Plugins", "Log", "Email", "Config", "Breadcrumb", "Repository", "InlineManagement", "Languages", "Cron", "Translations", "System", "Update", "Ecommerce");
/**
* Introduce ipModulesFilter function in index.php file to add or remove system modules. Useful if you build MultiSite and other special cases.
*/
if (function_exists('ipModulesFilter')) {
$modules = ipModulesFilter($modules);
}
return $modules;
}
/** * @param string $currentModule Name of the current (active) module * @return \Ip\Internal\Admin\MenuItem[] */ public function getAdminMenuItems($currentModule) { $answer = array(); $modules = \Ip\Internal\Plugins\Model::getModules(); foreach ($modules as $module) { // skipping modules that don't have 'index' (default) action in AdminController $controllerClass = 'Ip\\Internal\\' . $module . '\\AdminController'; if (!class_exists($controllerClass) || !method_exists($controllerClass, 'index')) { continue; } $moduleItem = new \Ip\Internal\Admin\MenuItem(); $moduleItem->setTitle(__($module, 'Ip-admin', false)); $moduleItem->setUrl(ipActionUrl(array('aa' => $module . '.index'))); $moduleItem->setIcon($this->getAdminMenuItemIcon($module)); if ($module == $currentModule) { $moduleItem->markAsCurrent(true); } if (ipAdminPermission($module)) { $answer[] = $moduleItem; } } $plugins = \Ip\Internal\Plugins\Service::getActivePlugins(); foreach ($plugins as $plugin) { $controllerClass = '\\Plugin\\' . $plugin['name'] . '\\AdminController'; if (!class_exists($controllerClass) || !method_exists($controllerClass, 'index')) { continue; } $moduleItem = new \Ip\Internal\Admin\MenuItem(); $moduleItem->setTitle(__($plugin['title'], 'Ip-admin', false)); $moduleItem->setUrl(ipActionUrl(array('aa' => $plugin['name']))); $moduleItem->setIcon($this->getAdminMenuItemIcon($plugin['name'])); if ($plugin['name'] == $currentModule) { $moduleItem->markAsCurrent(true); } if (ipAdminPermission($plugin['name'])) { $answer[] = $moduleItem; } } $answer = ipFilter('ipAdminMenu', $answer); return $answer; }