Skip to content

Instantly share code, notes, and snippets.

@stefanheimes
Created February 11, 2016 16:11
Show Gist options
  • Save stefanheimes/80ef0ece0da51b80894b to your computer and use it in GitHub Desktop.
Save stefanheimes/80ef0ece0da51b80894b to your computer and use it in GitHub Desktop.
Hidden Items for Min/Max - Level
<?php
/**
* Generate the tree view for a given collection.
*
* @param CollectionInterface $objCollection The collection to iterate over.
*
* @param string $treeClass The class to use for the tree.
*
* @return string
*/
protected function generateTreeView($objCollection, $treeClass)
{
$arrHtml = array();
foreach ($objCollection as $objModel) {
/** @var ModelInterface $objModel */
$level = $objModel->getMeta(DCGE::TREE_VIEW_LEVEL);
if ((($this->maxLevel) > 0) && ($level > ($this->maxLevel - 2))) {
$objModel->setMeta($objModel::HAS_CHILDREN, false);
}
if (($this->maxLevel > 0) && ($level > ($this->maxLevel - 1))) {
continue;
}
$strToggleID = $objModel->getProviderName() . '_' . $treeClass . '_' . $objModel->getID();
$arrHtml[] = $this->parseModel($objModel, $strToggleID);
if ($objModel->getMeta($objModel::HAS_CHILDREN) && $objModel->getMeta(DCGE::TREE_VIEW_IS_OPEN)) {
$template = new ContaoBackendViewTemplate('widget_treepicker_child');
$subHtml = '';
foreach ($objModel->getMeta(DCGE::TREE_VIEW_CHILD_COLLECTION) as $objCollection) {
$subHtml .= $this->generateTreeView($objCollection, $treeClass);
}
$template
->setTranslator($this->getEnvironment()->getTranslator())
->set('objParentModel', $objModel)
->set('strToggleID', $strToggleID)
->set('strHTML', $subHtml)
->set('strTable', $objModel->getProviderName());
$arrHtml[] = $template->parse();
}
}
return implode("\n", $arrHtml);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment