"crispage.devsuite.actions.classmanager", "version" => VERSION, "package" => "crispage.devsuite" ]; } public function __construct(\Crispage $app, array $data) { parent::__construct($app, $data); } public function run(): void { $this->app->page->data["title"] = $this->app->i18n->translate("{%CDS_CLASS_MANAGER}"); if (!$this->app->auth->userHasPermission( CorePermissions::MANAGE_EXTENSIONS )) { $this->app->page->setPersistentMessage( "unauthorized", "Unauthorized", "danger" ); $this->app->page->actionFinished(); }; $action = strval($this->app->request->params["action"] ?? ""); switch ($action) { case "": break; case "register": { $classname = strval($this->app->request->params["classname"] ?? ""); $type = strval($this->app->request->params["type"] ?? ""); if (!$this->app->cds->registerExtension($classname, $type)) $err = "Could not register $classname as $type"; break; } case "unregister": { $exts = $this->app->request->params["exts"] ?? []; if (empty($exts) || !is_array($exts)) break; $this->app->cds->unregisterExtensions($exts); break; } case "plugin_create": { $plugin = strval( $this->app->request->params["ext"] ?? "" ); $priority = intval( $this->app->request->params["priority"] ?? 0 ); $this->app->cds->createPlugin($plugin); break; } case "plugin_delete": { $plugin = strval( $this->app->request->params["ext"] ?? "" ); $this->app->cds->deletePlugin($plugin); break; } default: $err = "Invalid action"; } if (isset($err)) { $this->app->page->data["messages"]["error"] = [ "content" => $err, "color" => "danger" ]; } elseif (strlen($action)) { $this->app->page->data["messages"]["success"] = [ "content" => "Success", "color" => "success" ]; } $com_main = $this->app->page->createComponent( "\\Crispage\\DevSuite\\ClassManagerComponent", ["extensions" => $this->app->cds->getExtensions()] ); $this->app->page->setMainComponent($com_main); $this->app->page->actionFinished(); } } ?>