<?php declare(strict_types=1); /* * This file is part of contao-weinanlieferung-bundle. * * (c) vonRotenberg * * @license commercial */ namespace vonRotenberg\WeinanlieferungBundle\EventListener\DataContainer; use Contao\CoreBundle\DataContainer\PaletteManipulator; use Contao\CoreBundle\ServiceAnnotation\Callback; use Contao\DataContainer; use Doctrine\DBAL\Connection; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Contracts\Translation\TranslatorInterface; use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungAttributeGroupModel; use vonRotenberg\WeinanlieferungBundle\Model\WeinanlieferungAttributeModel; class WeinanlieferungAttributeContainerListener { /** @var Connection */ protected $db; /** @var TranslatorInterface */ protected $translator; /** @var RequestStack */ protected $requestStack; public function __construct(Connection $db, TranslatorInterface $translator, RequestStack $requestStack) { $this->db = $db; $this->translator = $translator; $this->requestStack = $requestStack; } /** * @Callback(table="tl_vr_wa_attribute", target="config.onload") */ public function onLoadCallback(DataContainer $dc) { if (null === $dc || !$dc->id || 'edit' !== $this->requestStack->getCurrentRequest()->query->get('act')) { return; } if (($attribute = WeinanlieferungAttributeModel::findByPk($dc->id)) === null || ($group = $attribute->getRelated('pid')) === null) { return; } if ($group->type == 'text') { PaletteManipulator::create() ->addField('description','title') ->applyToPalette('default', 'tl_vr_wa_attribute'); } } }