public function setOption($value, RequestParams $allParams) { $this->groupName = $this->groupName . basename($allParams->getRequest()->getUri()->getPath()); $arParams = ['value' => $value, 'codeName' => $this->variableName, 'groupName' => $this->groupName]; $event = new BaseContainerEvent($this->c, $arParams); $event = $this->c->dispatcher->dispatch('middleware.lastpagepaginator.before', $event); $value = $event->getParams()['value'] ? $event->getParams()['value'] : $allParams->all($this->variableName); $result = $this->storeParams($value); $arParams = ['result' => $result, 'allParams' => $allParams]; $event = new BaseContainerEvent($this->c, $arParams); $this->c->dispatcher->dispatch('middleware.lastpagepaginator.after', $event); }
public function doAdd($req, $res) { $params = new RequestParams($req); $name = $params->post('name'); $sys_name = $params->post('system_name'); $desc = $params->post('description'); $version = $params->post('version'); $author = $params->post('author'); $sys_name = preg_replace("/[^A-Za-z0-9_]/", "", $sys_name); if (!$sys_name) { $this->flash->addMessage('errors', 'Module system_name is empty!'); return $res->withStatus(301)->withHeader('Location', $this->router->pathFor('developers.module.generator')); } $sys_name = Str::studly($sys_name); if (is_dir(MODULE_PATH . $sys_name)) { $this->flash->addMessage('errors', 'Module exist!'); return $res->withStatus(301)->withHeader('Location', $this->router->pathFor('developers.module.generator')); } $path = MODULE_PATH . $sys_name; if (!Helpers::copy(MODULE_PATH . '.default', $path)) { $this->flash->addMessage('errors', 'Module dir \\"' . MODULE_PATH . '\\" - is write protect. Check permissions!'); return $res->withStatus(301)->withHeader('Location', $this->router->pathFor('developers.module.generator')); } $ret = Helpers::replaseInFile($path . '/info.json', ["%name%", "%description%", "%system_name%", "%version%", "%author%"], [$name, $desc, $sys_name, $version, $author]); if ($ret === false) { $this->flash->addMessage('errors', 'Replace file content for \\"' . $path . '/info.json' . '\\" - is write protect. Check permissions!'); return $res->withStatus(301)->withHeader('Location', $this->router->pathFor('developers.module.generator')); } $ret = Helpers::replaseInFile($path . '/Module.php', ["%system_name%"], [$sys_name]); if ($ret === false) { $this->flash->addMessage('errors', 'Replace file content for \\"' . $path . '/Module.php' . '\\" - is write protect. Check permissions!'); return $res->withStatus(301)->withHeader('Location', $this->router->pathFor('developers.module.generator')); } $this->flash->addMessage('success', 'Module create!'); return $res->withStatus(301)->withHeader('Location', $this->router->pathFor('developers.module.generator')); }
public function registerRoute() { $this->app->get('/', function ($req, $res) { $res->getBody()->write("Please <a href=\"\\install-system\">install</a> system"); })->setName('home'); $this->app->get('/install-system', function ($req, $res, $args) { return $this->view->render($res, 'admin\\install.twig', ['step' => 1, 'view' => '1']); })->setName('installer'); $parentClass = $this; $this->app->post('/install-system', function ($req, $res, $args) use($parentClass) { $request = new RequestParams($req); $_allParams = $request->all(); unset($_allParams['step']); $allParams = array(); if ('finish' == $request->post('step')) { $parentClass->installSystem($_allParams); return $res->withStatus(301)->withHeader('Location', $this->router->pathFor('home')); } foreach ($_allParams as $k => $item) { if (is_array($item)) { foreach ($item as $_k => $_v) { $allParams[$k . "[{$_k}]"] = $_v; } } else { $allParams[$k] = $item; } } return $this->view->render($res, 'admin\\install.twig', ['prevData' => $allParams, 'step' => $request->post("step"), 'view' => $request->post("step")]); })->setName('installer-step'); $this->app->post('/install-system/checkdb', function ($req, $res, $args) { $request = new RequestParams($req); if ($request->isXhr()) { $checkdb = false; $config = []; if ($request->post('dbType') == 'mysql') { $config = ['driver' => 'mysql', 'host' => $request->post('dbHost'), 'database' => $request->post('dbName'), 'username' => $request->post('dbLogin'), 'password' => $request->post('dbPassword'), 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '']; $checkdb = true; } elseif ($request->post('dbType') == 'sqlite') { if (!$request->post('dbFileName')) { $data = array('type' => 'error', 'msg' => "Please insert DB name"); return $res->withJson($data); } $file = RESOURCE_PATH . 'database/' . strtolower($request->post('dbFileName')) . '.sqlite'; if (file_exists($file)) { $data = array('type' => 'error', 'msg' => "File exist, please insert other DB name"); } else { $data = array('type' => 'success', 'msg' => "Step the next stage"); $checkdb = false; } $config = ['driver' => 'sqlite', 'database' => $file, 'prefix' => '']; } if ($checkdb) { $capsule = new Capsule(); $capsule->addConnection($config); $capsule->setAsGlobal(); $capsule->bootEloquent(); try { $capsule->schema()->hasTable("options"); $data = array('type' => 'success', 'msg' => "Step the next stage"); } catch (\PDOException $e) { $data = array('type' => 'error', 'msg' => "DB not exist"); } } return $res->withJson($data); } else { $data = array('type' => 'error', 'msg' => "Request type error"); return $res->withJson($data); } }); }