/** * Render the paste button for pasting into the root of the tree. * * @param GetPasteRootButtonEvent $event The event that has been triggered. * * @return string */ public static function renderPasteRootButton(GetPasteRootButtonEvent $event) { if (!is_null($event->getHtml())) { return $event->getHtml(); } $strLabel = $GLOBALS['TL_LANG'][$event->getEnvironment()->getDataDefinition()->getName()]['pasteinto'][0]; if ($event->isPasteDisabled()) { /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('pasteinto_.gif', $strLabel, 'class="blink"')); return $imageEvent->getHtml(); } /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('pasteinto.gif', $strLabel, 'class="blink"')); return sprintf(' <a href="%s" title="%s" %s>%s</a>', $event->getHref(), specialchars($strLabel), 'onclick="Backend.getScrollOffset()"', $imageEvent->getHtml()); }
/** * Handle the paste into and after buttons. * * @param GetPasteRootButtonEvent $event The event. * * @return void * * @throws \RuntimeException When more than one model is contained within the clipboard. */ public function handleRoot(GetPasteRootButtonEvent $event) { $this->environment = $event->getEnvironment(); $this->provider = $this->environment->getDataProvider(); $this->providerName = $this->provider->getEmptyModel()->getProviderName(); $clipboard = $this->environment->getClipboard(); $this->currentModel = null; $this->disablePI = false; // Only run for a MetaModels. if (substr($this->providerName, 0, 3) !== 'mm_' || $event->isPasteDisabled()) { return; } $this->checkForAction($clipboard, 'copy'); $this->checkForAction($clipboard, 'create'); $this->checkForAction($clipboard, 'cut'); $event->setPasteDisabled($this->disablePI); }
/** * Retrieve the arguments for the callback. * * @param GetPasteRootButtonEvent $event The event being emitted. * * @return array */ public function getArgs($event) { return array(new DcCompat($event->getEnvironment()), $event->getEnvironment()->getDataProvider()->getEmptyModel()->getPropertiesAsArray(), $event->getEnvironment()->getDataDefinition()->getName(), false, array(), null, null); }
/** * Render the paste button for pasting into the root of the tree. * * @param GetPasteRootButtonEvent $event The event that has been triggered. * * @return string */ public static function renderPasteRootButton(GetPasteRootButtonEvent $event) { if ($event->getHtml() !== null) { return $event->getHtml(); } $environment = $event->getEnvironment(); $strLabel = $environment->getTranslator()->translate('pasteinto.0', $environment->getDataDefinition()->getName()); if ($event->isPasteDisabled()) { /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('pasteinto_.gif', $strLabel, 'class="blink"')); return $imageEvent->getHtml(); } /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('pasteinto.gif', $strLabel, 'class="blink"')); return sprintf(' <a href="%s" title="%s" %s>%s</a>', $event->getHref(), specialchars($strLabel), 'onclick="Backend.getScrollOffset()"', $imageEvent->getHtml()); }