<?php
namespace App\EventListener;
use NexCRM\BaseBundle\Event\SettingsCreateEvent;
use NexCRM\BaseBundle\ValueObject\SettingSection;
use NexCRM\BaseBundle\ValueObject\SettingSectionItem;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
class SettingCreateListener
{
/** @var AuthorizationCheckerInterface */
private $authorizationChecker;
public function __construct(
AuthorizationCheckerInterface $authorizationChecker
)
{
$this->authorizationChecker = $authorizationChecker;
}
public function onBasebundleSettingCreate(SettingsCreateEvent $event)
{
if ($this->authorizationChecker->isGranted('ROLE_SETTINGS_ADMIN')) {
$appbundle = new SettingSection();
$appbundle->setAlias('app');
$appbundle->setName('Specifické web');
$appbundle->setPriority(4);
$appbundle->setIcon('plus');
$item = new SettingSectionItem();
$item->setAlias("map");
$item->setFormType(TextType::class);
$item->setOption([
"label" => "Adresa pro mapu"
]);
$appbundle->addSettingSectionItem($item);
$item = new SettingSectionItem();
$item->setAlias("storage_address");
$item->setFormType(TextareaType::class);
$item->setOption([
"label" => "Adresa skladu"
]);
$appbundle->addSettingSectionItem($item);
$item = new SettingSectionItem();
$item->setAlias("footer_address");
$item->setFormType(TextareaType::class);
$item->setOption([
"label" => "Adresa v patičce"
]);
$appbundle->addSettingSectionItem($item);
$item = new SettingSectionItem();
$item->setAlias("open_hours");
$item->setFormType(TextareaType::class);
$item->setOption([
"label" => "Otevírací doba"
]);
$appbundle->addSettingSectionItem($item);
$settings = $event->getSetting();
$settings->addSettingSection($appbundle);
}
}
}