cgView->viewPath = KERNEL_DIR . "/views/module/"; $this->moduleService = new ModuleService(); } public function actionIndex($page_number = 1): void { $per_page = 8; $module_paths = Option::where("key", "module_paths")->first(); $dirs = []; if ($module_paths){ $path = json_decode($module_paths->value); foreach ($path->paths as $p){ $dirs[] = getConst($p); } } $modules_info = []; $i = 1; foreach ($dirs as $dir){ foreach (new DirectoryIterator($dir) as $fileInfo) { $info = []; if($fileInfo->isDot()) continue; $info['id'] = $i; $modules_info[] = array_merge($info, $this->moduleService->getModuleInfo($fileInfo->getPathname())); $i++; } } $module_count = count($modules_info); $modules_info = array_slice($modules_info, $per_page*($page_number-1), $per_page); $this->cgView->render("index.php", [ 'modules_info' => $modules_info, 'moduleService' => $this->moduleService, 'page_number' => $page_number, 'module_count' => $module_count, 'per_page' => $per_page, ]); } public function actionActivate(): void { $request = new Request(); $this->moduleService->toggleModule($request->get("slug")); $mod_info = $this->moduleService->getModuleInfoBySlug($request->get('slug')); $this->cgView->render("view.php", ['data' => $mod_info]); } public function actionView(): void { $request = new Request(); $mod_info = $this->moduleService->getModuleInfoBySlug($request->get('slug')); $this->cgView->render("view.php", ['data' => $mod_info]); } }