core/lib/Thelia/Action/Config.php line 62
<?php/** This file is part of the Thelia package.* http://www.thelia.net** (c) OpenStudio <info@thelia.net>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/namespace Thelia\Action;use Symfony\Component\EventDispatcher\EventDispatcherInterface;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Thelia\Core\Event\Config\ConfigCreateEvent;use Thelia\Core\Event\Config\ConfigDeleteEvent;use Thelia\Core\Event\Config\ConfigUpdateEvent;use Thelia\Core\Event\TheliaEvents;use Thelia\Model\Config as ConfigModel;use Thelia\Model\ConfigQuery;class Config extends BaseAction implements EventSubscriberInterface{/*** Create a new configuration entry.*/public function create(ConfigCreateEvent $event, $eventName, EventDispatcherInterface $dispatcher): void{$config = new ConfigModel();$config->setName($event->getEventName())->setValue($event->getValue())->setLocale($event->getLocale())->setTitle($event->getTitle())->setHidden($event->getHidden())->setSecured($event->getSecured())->save();$event->setConfig($config);}/*** Change a configuration entry value.*/public function setValue(ConfigUpdateEvent $event, $eventName, EventDispatcherInterface $dispatcher): void{if (null !== $config = ConfigQuery::create()->findPk($event->getConfigId())) {if ($event->getValue() !== $config->getValue()) {$config->setValue($event->getValue())->save();$event->setConfig($config);}}}/*** Change a configuration entry.*/public function modify(ConfigUpdateEvent $event, $eventName, EventDispatcherInterface $dispatcher): void{if (null !== $config = ConfigQuery::create()->findPk($event->getConfigId())) {$config->setName($event->getEventName())->setValue($event->getValue())->setHidden($event->getHidden())->setSecured($event->getSecured())->setLocale($event->getLocale())->setTitle($event->getTitle())->setDescription($event->getDescription())->setChapo($event->getChapo())->setPostscriptum($event->getPostscriptum())->save();}}/*** Delete a configuration entry.*/public function delete(ConfigDeleteEvent $event, $eventName, EventDispatcherInterface $dispatcher): void{if (null !== ($config = ConfigQuery::create()->findPk($event->getConfigId()))) {if (!$config->getSecured()) {$config->delete();$event->setConfig($config);}}}/*** {@inheritDoc}*/public static function getSubscribedEvents(){return [TheliaEvents::CONFIG_CREATE => ['create', 128,], TheliaEvents::CONFIG_SETVALUE => ['setValue', 128,], TheliaEvents::CONFIG_UPDATE => ['modify', 128,], TheliaEvents::CONFIG_DELETE => ['delete', 128,],];}}