/** * Parse all Module-pagemenu entries into valid format * @author spaceone * @return array accociative array */ public static function parseModules(array $modules) { $pml = array(); $c = 2; # page_url, page_title foreach ($modules as $module) { $module instanceof GWF_Module; if (false === $module->isEnabled()) { continue; } $name = $module->getName(); $pml[$name] = array(); $methods = GWF_ModuleLoader::getAllMethods($module); foreach ($methods as $method) { $mname = $method->getName(); $pml[$name][$mname] = array(); if (true === is_array($pmlinks = $method->getPageMenuLinks())) { foreach ($pmlinks as $k => $a) { if (false === is_array($a) || count($a) < $c) { unset($pmlinks[$k]); } else { # set permissions, overwritable $groups = $method->getUserGroups(); $groups = $groups ? implode(',', (array) $groups) : ''; $pmlinks[$k] = array_merge(array('page_groups' => $groups), $a); } } $pml[$name][$mname] = $pmlinks; } # Method does not have PageMenu Links? if (true === empty($pml[$name][$mname])) { unset($pml[$name][$mname]); } } # Module does not have PageMenu Links? if (true === empty($pml[$name])) { unset($pml[$name]); } } /** * An array of modules containing methods containing an array of pagemenu links (GWF_Page row) * Array: Modulename -> Array: * Methodname -> Array: * Array: GWF_Page row, * [...], * [...], * [...], */ return $pml; }
} else { $icon = $enabled ? 'enabled' : 'disabled'; } $href = $installed ? $d['edit_url'] : $d['install_url']; $advLink = $m->hasAdminSection() ? sprintf('<a href="%s">%s</a>', $d['admin_url'], $admin_sect) : ''; echo sprintf('<tr><td align="right"><a href="%s">%s</a></td><td>%s</td></tr>', $href, $name, $advLink); } ?> </table> <div class="oa"> <?php $module = $tVars['cfgmodule']; if (false !== ($error = GWF_ModuleLoader::checkModuleDependencies($module))) { echo $error; } $methods = GWF_ModuleLoader::getAllMethods($module); if (count($methods) > 0) { printf('<div class="box box_c">%s</div>', $tLang->lang('info_methods', array(count($methods)))); foreach ($methods as $method) { $method instanceof GWF_Method; if (false !== ($error = $method->checkDependencies())) { echo $error; } } } if ('cfgg_info' !== ($general = $module->lang('cfgg_info'))) { echo sprintf('<div>%s</div>', $general); } echo $tVars['form']; echo $tVars['form_install']; ?>