public static function getAllModules() { $dirs = array(MODULES_DIR, SITE_MODULES_DIR); $modules = array('core' => CoreAPIModule::factory()); foreach ($dirs as $dir) { if (is_dir($dir)) { $d = dir($dir); while (false !== ($entry = $d->read())) { if ($entry[0] != '.' && is_dir(sprintf("%s/%s", $dir, $entry))) { try { if ($module = APIModule::factory($entry)) { $modules[$entry] = $module; } } catch (KurogoException $e) { } } } $d->close(); } } ksort($modules); return $modules; }
{ case 1: throw new Exception("Invalid API request: '{$_SERVER['REQUEST_URI']}'", 1); case 2: $id = 'core'; $command = $parts[1]; if (!$module = CoreAPIModule::factory($command, $args)) { throw new Exception("Module $id cannot be loaded"); } break; case 3: $id = isset($parts[1]) ? $parts[1] : ''; $command = isset($parts[2]) ? $parts[2] : ''; if (!$module = APIModule::factory($id, $command, $args)) { throw new Exception("Module $id cannot be loaded"); } break; default: throw new Exception("Invalid API request: '{$_SERVER['REQUEST_URI']}'", 1); break; } /* log the api call */ PageViews::log_api($id, Kurogo::deviceClassifier()->getPlatform()); $module->executeCommand(); } else {
public static function getAllModules() { $configFiles = glob(SITE_CONFIG_DIR . "/*/module.ini"); $modules = array(); foreach ($configFiles as $file) { if (preg_match("#" . preg_quote(SITE_CONFIG_DIR, "#") . "/([^/]+)/module.ini\$#", $file, $bits)) { $id = $bits[1]; try { if ($module = APIModule::factory($id)) { $modules[$id] = $module; } } catch (KurogoException $e) { } } } ksort($modules); return $modules; }