context = $context; $this->moduleName = null !== $moduleName ? $moduleName : $context->getModuleName(); $this->actionName = null !== $actionName ? $actionName : $context->getActionName(); } /** * Zwraca wartość parametru * * @param string $name Nazwa parametru * @param mixed $default Wartość domyślna * @param mixed $moduleName Opcjonalna nazwa modułu dla którego ma zostać zwrócona wartość parametru * @param mixed $actionName Opcjonana nazwa akcji dla której ma zostać zwrócona wartość parametru * @return mixed Wartość * @throws PropelException */ public function getParameter(string $name, $default = null, $moduleName = null, $actionName = null) { if (null === $moduleName) { $moduleName = $this->moduleName; } if (null === $actionName) { $actionName = $this->actionName; } $namespace = stAdminGenerator::getModuleNamespace($moduleName, $actionName, 'config'); $parameters = $this->load($namespace); return isset($parameters[$name]) ? $parameters[$name] : $default; } /** * Ustawia wartość dla parametru * * @param string $name Nazwa parametru * @param mixed $value Wartość * @param string|null $moduleName Opcjonalna nazwa modułu dla którego ma zostać zapamiętana wartość parametru * @param string|null $actionName Opcjonana nazwa akcji dla której ma zostać zapamiętana wartość parametru * @return void */ public function setParameter(string $name, $value, $moduleName = null, $actionName = null) { if (null === $moduleName) { $moduleName = $this->moduleName; } if (null === $actionName) { $actionName = $this->actionName; } $namespace = stAdminGenerator::getModuleNamespace($moduleName, $actionName, 'config'); $this->load($namespace); $this->context->getUser()->setParameter($name, $value, $namespace); $this->modified[$namespace] = $namespace; } /** * Zapisuje konfiguracje * * @return void * @throws PropelException */ public function save() { foreach ($this->modified as $namespace) { $parameters = $this->context->getUser()->getParameterHolder()->getAll($namespace); if ($parameters) { $configuration = AdminGeneratorUserConfigurationPeer::retrieveByNamespace($this->context->getUser()->getGuardUser(), $namespace); if (null === $configuration) { $configuration = AdminGeneratorUserConfigurationPeer::create($this->context->getUser()->getGuardUser(), $namespace); } $configuration->setParameters($parameters); $configuration->save(); } } $this->modified = array(); } /** * Wczytuje konfiguracja * * @param string $namespace * @return mixed * @throws PropelException */ protected function load(string $namespace) { if (!$this->context->getUser()->getParameterHolder()->hasNamespace($namespace)) { $configuration = AdminGeneratorUserConfigurationPeer::retrieveByNamespace($this->context->getUser()->getGuardUser(), $namespace); if ($configuration) { $parameters = $configuration->getParameters(); } else { $parameters = array(); } $parameters = $this->context->getUser()->getParameterHolder()->add($parameters, $namespace); } return $this->context->getUser()->getParameterHolder()->getAll($namespace); } }