MetaModels\DcGeneral\Events\Table\InputScreenCondition\Subscriber::generatePasteButton PHP Method

generatePasteButton() public method

Generate the paste button.
public generatePasteButton ( ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Event\GetPasteButtonEvent $event ) : void
$event ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Event\GetPasteButtonEvent The event.
return void
    public function generatePasteButton(GetPasteButtonEvent $event)
    {
        if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel_dcasetting_condition') {
            return;
        }
        $environment = $event->getEnvironment();
        $model = $event->getModel();
        $clipboard = $environment->getClipboard();
        // Disable all buttons if there is a circular reference.
        if ($clipboard->fetch(Filter::create()->andActionIs(ItemInterface::CUT)->andModelIs(ModelId::fromModel($model)))) {
            $event->setPasteAfterDisabled(true)->setPasteIntoDisabled(true);
            return;
        }
        $flags = $GLOBALS['METAMODELS']['inputscreen_conditions'][$model->getProperty('type')];
        // If setting does not support children, omit them.
        if ($model->getId() && !$flags['nestingAllowed']) {
            $event->setPasteIntoDisabled(true);
            return;
        }
        if (isset($flags['maxChildren']) && count($event->getEnvironment()->getController()->assembleAllChildrenFrom($model)) > $flags['maxChildren']) {
            $event->setPasteIntoDisabled(true);
        }
    }