/**
  * @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);
 }
示例#4
0
 /**
  * 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;
     }
 }