public function postVerify(View $subject) { $fields = []; $request = $subject->getParams()->getController()->getRequest(); if ($request->isPost()) { $_rows = $subject->getParams()->fromPost('row'); if (is_array($_rows)) { foreach ($_rows as $_k => $_row) { if (!empty($_row['visible']) && $_row['visible'] == 1) { $fields[] = $_k; } } if (count($fields)) { $this->viewViewConfig->fields = $fields; $subject->getConfigServiceVerify()->saveByObject($this->viewViewConfig); } } // $url = $subject->getBackUrl(); $url = $subject->getSaUrlBack($subject->getParams()->fromQuery('back')); parse_str(parse_url($url)['query'], $output); $url = $subject->getSaUrlBack($output['back']); if ($url == null || $url == '/') { $data = strtolower($this->viewViewConfig->document); $action = 'index'; $mode = $this->viewViewConfig->mode; $url = $subject->getParams()->getController()->url()->fromRoute('common', ['action' => $action, 'data' => $data, 'mode' => $mode]); } $subject->setRedirect($subject->refresh('FieldConfig was successfully saved', $url)); return; } }
/** * @param string $viewName * * @return View|ViewInterface * @throws \Exception */ protected function createView($viewName) { $view = new View(); $view->setName($viewName); $view->setAuthService($this->getAuthServiceVerify()); $view->setAclService($this->getAclServiceVerify()); $view->setLogicService($this->getLogicServiceVerify()); $view->setConfigService($this->getConfigServiceVerify()); $viewConfig = $this->getConfigServiceVerify()->getByObject($view->getName(), new ViewConfig()); if ($viewConfig == null) { throw new \Exception('Please fill ViewConfig for the ' . $view->getName() . '. I can\'t work on'); } $view->setViewConfig($viewConfig); $view->setModelService($this->getModelServiceVerify()); // info about model - how it is organized. it will be useful $parsedModelConfig = $this->getModelServiceVerify()->getParsedModelConfig($viewConfig->model); $view->setParsedModelConfig($parsedModelConfig); // model view should deal with acl enabled model $aclModel = $this->getAclServiceVerify()->getAclDataModel($viewConfig->model); // primary gateway for data ops $gateway = $this->getGatewayServiceVerify()->get($viewConfig->model, $aclModel); $view->setGateway($gateway); $view->setGatewayService($this->getGatewayServiceVerify()); $view->setFormService($this->getFormServiceVerify()); $view->setConfigService($this->getConfigServiceVerify()); $view->setQueryService($this->getQueryServiceVerify()); $view->setFileService($this->getFileServiceVerify()); $view->setFilesystemService($this->getFilesystemServiceVerify()); $view->setPDFService($this->getPDFServiceVerify()); $view->setTwigService($this->getTwigServiceVerify()); $view->setListParamsService($this->getListParamsServiceVerify()); $view->init(); return $view; }