/**
  * Set the HTML code for the button.
  *
  * @param GetPasteRootButtonEvent $event The event being emitted.
  *
  * @param string                  $value The value returned by the callback.
  *
  * @return void
  */
 public function update($event, $value)
 {
     if ($value === null) {
         return;
     }
     $event->setHtml($value);
     $event->stopPropagation();
 }
Beispiel #2
0
 /**
  * Render the tree view.
  *
  * @param CollectionInterface $collection The collection of items.
  *
  * @return string
  */
 protected function viewTree($collection)
 {
     $definition = $this->getDataDefinition();
     $listing = $this->getViewSection()->getListingConfig();
     $environment = $this->getEnvironment();
     $propagator = $environment->getEventPropagator();
     // Init some Vars
     switch (6) {
         case 6:
             $treeClass = 'tree_xtnd';
             break;
             // case 5:
         // case 5:
         default:
             $treeClass = 'tree';
     }
     // Label + Icon.
     if (strlen($listing->getRootLabel()) == 0) {
         $strLabelText = 'DC General Tree BackendView Ultimate';
     } else {
         $strLabelText = $listing->getRootLabel();
     }
     if (strlen($listing->getRootIcon()) == 0) {
         $strLabelIcon = 'pagemounts.gif';
     } else {
         $strLabelIcon = $listing->getRootIcon();
     }
     // Root paste into.
     if ($environment->getClipboard()->isNotEmpty()) {
         $objClipboard = $environment->getClipboard();
         /** @var AddToUrlEvent $urlEvent */
         $urlEvent = $propagator->propagate(ContaoEvents::BACKEND_ADD_TO_URL, new AddToUrlEvent(sprintf('act=paste&into=%s::0&children=%s', $definition->getName(), $objClipboard->getContainedIds(), implode(',', $objClipboard->getCircularIds()))));
         $buttonEvent = new GetPasteRootButtonEvent($this->getEnvironment());
         $buttonEvent->setHref($urlEvent->getUrl())->setPasteDisabled(false);
         $propagator->propagate($buttonEvent::NAME, $buttonEvent, $definition->getName());
         $strRootPasteInto = $this->renderPasteRootButton($buttonEvent);
     } else {
         $strRootPasteInto = '';
     }
     /** @var GenerateHtmlEvent $imageEvent */
     $imageEvent = $propagator->propagate(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent($strLabelIcon));
     // Build template.
     $objTemplate = $this->getTemplate('dcbe_general_treeview');
     $objTemplate->treeClass = 'tl_' . $treeClass;
     $objTemplate->tableName = $definition->getName();
     $objTemplate->strLabelIcon = $imageEvent->getHtml();
     $objTemplate->strLabelText = $strLabelText;
     $objTemplate->strHTML = $this->generateTreeView($collection, $treeClass);
     $objTemplate->strRootPasteinto = $strRootPasteInto;
     // FIXME: set real tree mode here.
     $objTemplate->intMode = 6;
     // Add breadcrumb, if we have one.
     $strBreadcrumb = $this->breadcrumb();
     if ($strBreadcrumb != null) {
         $objTemplate->breadcrumb = $strBreadcrumb;
     }
     return $objTemplate->parse();
 }
Beispiel #3
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);
 }
Beispiel #4
0
 /**
  * Render the tree view.
  *
  * @param CollectionInterface $collection The collection of items.
  *
  * @return string
  */
 protected function viewTree($collection)
 {
     $definition = $this->getDataDefinition();
     $listing = $this->getViewSection()->getListingConfig();
     $basicDefinition = $definition->getBasicDefinition();
     $environment = $this->getEnvironment();
     $dispatcher = $environment->getEventDispatcher();
     // Init some Vars
     switch (6) {
         case 6:
             $treeClass = 'tree_xtnd';
             break;
         default:
             $treeClass = 'tree';
     }
     // Label + Icon.
     if (strlen($listing->getRootLabel()) == 0) {
         $strLabelText = 'DC General Tree BackendView Ultimate';
     } else {
         $strLabelText = $listing->getRootLabel();
     }
     if (strlen($listing->getRootIcon()) == 0) {
         $strLabelIcon = 'pagemounts.gif';
     } else {
         $strLabelIcon = $listing->getRootIcon();
     }
     $filter = new Filter();
     $filter->andModelIsFromProvider($basicDefinition->getDataProvider());
     if ($parentDataProviderName = $basicDefinition->getParentDataProvider()) {
         $filter->andParentIsFromProvider($parentDataProviderName);
     } else {
         $filter->andHasNoParent();
     }
     // Root paste into.
     if ($environment->getClipboard()->isNotEmpty($filter)) {
         /** @var AddToUrlEvent $urlEvent */
         $urlEvent = $dispatcher->dispatch(ContaoEvents::BACKEND_ADD_TO_URL, new AddToUrlEvent(sprintf('act=paste&into=%s::0', $definition->getName())));
         $buttonEvent = new GetPasteRootButtonEvent($this->getEnvironment());
         $buttonEvent->setHref($urlEvent->getUrl())->setPasteDisabled(false);
         $dispatcher->dispatch($buttonEvent::NAME, $buttonEvent);
         $strRootPasteInto = $this->renderPasteRootButton($buttonEvent);
     } else {
         $strRootPasteInto = '';
     }
     /** @var GenerateHtmlEvent $imageEvent */
     $imageEvent = $dispatcher->dispatch(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent($strLabelIcon));
     // Build template.
     $objTemplate = $this->getTemplate('dcbe_general_treeview');
     $objTemplate->treeClass = 'tl_' . $treeClass;
     $objTemplate->tableName = $definition->getName();
     $objTemplate->strLabelIcon = $imageEvent->getHtml();
     $objTemplate->strLabelText = $strLabelText;
     $objTemplate->strHTML = $this->generateTreeView($collection, $treeClass);
     $objTemplate->strRootPasteinto = $strRootPasteInto;
     $objTemplate->select = $this->isSelectModeActive();
     $objTemplate->selectButtons = $this->getSelectButtons();
     $objTemplate->intMode = 6;
     // Add breadcrumb, if we have one.
     $strBreadcrumb = $this->breadcrumb();
     if ($strBreadcrumb != null) {
         $objTemplate->breadcrumb = $strBreadcrumb;
     }
     return $objTemplate->parse();
 }