예제 #1
0
 /**
  * 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());
 }
예제 #2
0
 /**
  * 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);
 }
예제 #4
0
 /**
  * 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());
 }