/** * Generate the paste button. * * @param GetPasteButtonEvent $event The event. * * @return void * * @SuppressWarnings(PHPMD.Superglobals) * @SuppressWarnings(PHPMD.CamelCaseVariableName) */ 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); } }