/** * @see Tx_PtExtbase_Tree_TreeWalkerVisitorInterface::doFirstVisit() * * @param Tx_PtExtbase_Tree_NodeInterface $node * @param integer &$index Holds the visitation index of treewalker * @param integer &$level Holds level of visitation in tree, starting at 1 */ public function doFirstVisit(Tx_PtExtbase_Tree_NodeInterface $node, &$index, &$level) { $nodeUid = $node->getUid(); $metadata = ''; $arrayForNode = array('data' => $node->getLabel(), 'attr' => array('id' => $node->getUid(), 'data-meta' => trim($metadata), 'disabled' => !$node->isAccessible()), 'children' => array()); $this->nodeStack->push($arrayForNode); }
/** * @see Tx_PtExtbase_Tree_TreeWalkerVisitorInterface::doFirstVisit() * * @param Tx_PtExtbase_Tree_NodeInterface $node * @param integer &$index Holds the visitation index of treeWalker * @param integer &$level Holds level of visitation in tree, starting at 1 * @throws Exception */ public function doFirstVisit(Tx_PtExtbase_Tree_NodeInterface $node, &$index, &$level) { $arrayForNode = array('id' => $node->getUid(), 'text' => $node->getLabel(), 'children' => array(), 'leaf' => !$node->hasChildren(), 'cls' => $node->isAccessible() ? '' : 'disabled'); $this->setSelectionOnNodeArray($node, $arrayForNode); if ($this->firstVisitCallback) { $return = call_user_func(array($this->firstVisitCallback['target'], $this->firstVisitCallback['method']), $node, $arrayForNode); if ($return === false) { throw new Exception('It was not possible to call ' . get_class($this->firstVisitCallback['target']) . '::' . $this->firstVisitCallback['method'], 1328468070); } else { $arrayForNode = $return; } } $this->nodeStack->push($arrayForNode); }
/** * @see Tx_PtExtbase_Tree_TreeWalkerVisitorInterface::doFirstVisit() * * @param Tx_PtExtbase_Tree_NodeInterface $node * @param integer &$index Holds the visitation index of treewalker * @param integer &$level Holds level of visitation in tree, starting at 1 */ public function doFirstVisit(Tx_PtExtbase_Tree_NodeInterface $node, &$index, &$level) { $arrayForNode = array('uid' => $node->getUid(), 'label' => $node->getLabel(), 'children' => array(), 'disabled' => !$node->isAccessible()); $this->nodeStack->push($arrayForNode); }
/** * Helper method for doing a depth-first search on a node * * @param Tx_PtExtbase_Tree_NodeInterface $node * @param integer &$index Referenced value of visitation index. Will be increased with every node visitation. * @param integer &$level Current level of visit in the tree starting at 1 */ protected function dfs(Tx_PtExtbase_Tree_NodeInterface $node, &$index, &$level = 1) { if ($node->isAccessible() || $this->treeContext->isWritable()) { $this->doFirstVisit($node, $index, $level); $index = $index + 1; if ($node->getChildrenCount() > 0) { $level = $level + 1; if ($this->restrictedDepth === -1 || $level <= $this->restrictedDepth) { foreach ($node->getChildren() as $child) { /* @var $child Tx_PtExtbase_Tree_NodeInterface */ $this->dfs($child, $index, $level); } } $level = $level - 1; } $this->doLastVisit($node, $index, $level); $index = $index + 1; } }