/** * 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(); }
/** * 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(); }