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'));
 }
Exemple #3
0
 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);
         }
     });
 }