protected function collect($sCollectFunctionName, $bCheckAccess = false) { global $oSecurity; // echo '1'; $sPath = PATH_MODULES; $aDirectories = CDir::getDirs($sPath, false, false, false); foreach ($aDirectories as $module) { if (file_exists($sPath . "{$module}/m.{$module}.class.php")) { require_once $sPath . "{$module}/m.{$module}.class.php"; if (class_exists('M_' . $module) && method_exists('M_' . $module, $sCollectFunctionName)) { if ($bCheckAccess && !$oSecurity->haveAccessToModuleToMethod($module)) { continue; } call_user_func(array('M_' . $module, $sCollectFunctionName)); } } } //core modules $sPath = PATH_CORE . 'modules' . DIRECTORY_SEPARATOR; $aDirectories = CDir::getDirs($sPath, false, false, false); foreach ($aDirectories as $module) { if (file_exists($sPath . "{$module}/m.{$module}.class.php")) { require_once $sPath . "{$module}/m.{$module}.class.php"; if (class_exists('M_' . $module) && method_exists('M_' . $module, $sCollectFunctionName)) { call_user_func(array('M_' . $module, $sCollectFunctionName)); } } } // $cache_lite->save( $oMenu->items, 'cmenu::getusercollection'); }
function mm_add() { if (!FORDEV || !$this->security->isSuperAdmin()) { return $this->showAccessDenied(); } $aData = array('method' => '', 'title' => '', 'module' => ''); if (Func::isPostMethod()) { $sMethod = Func::POST('method', true); $sTitle = Func::POST('title', true); $sModule = $this->db->str2sql(Func::POST('module')); Func::setSESSION('save_module', $sModule); if (!$sMethod) { $sMethod = $sModule; } if (!$sTitle) { $sTitle = ucwords($sModule . ' ' . $sMethod); } //get max module number $nNumber = (int) $this->db->one_data('SELECT max(number) FROM ' . TABLE_MODULE_METHODS . " \n WHERE module={$sModule} AND method!={$sModule} "); $nNumber++; //insert module-method $this->db->execute('INSERT INTO ' . TABLE_MODULE_METHODS . " (module, method, title, number)\n VALUES ({$sModule}, " . $this->db->str2sql($sMethod) . ', ' . $this->db->str2sql($sTitle) . ", {$nNumber})"); if ($this->errors->no()) { $this->adminRedirect(Errors::SUCCESSFULL, 'mm_listing'); } } if (!$aData['module']) { $aData['module'] = Func::SESSION('save_module'); } $aModules = CDir::getDirs(PATH_MODULES, false, false, false); foreach ($aModules as $k => $v) { if ($v[0] != '.' && $v[0] != '_') { $aModules[$v] = $v; } unset($aModules[$k]); } $this->tplAssign(array('aModules' => $aModules, 'aData' => $aData)); return $this->tplFetch('admin.mm.create.tpl'); }