/** * @static * @param $repository * @param $nameSpace * @return Tx_PtExtbase_Tree_NodePathBuilder */ public static function getInstanceByRepositoryAndNamespace($repository, $nameSpace) { if (!self::$instances[$repository . $nameSpace]) { $instance = new Tx_PtExtbase_Tree_NodePathBuilder(); $instance->setTree($instance->buildTree($repository, $nameSpace)); self::$instances[$repository . $nameSpace] = $instance; } return self::$instances[$repository . $nameSpace]; }
/** * @test */ public function getPathFromRootToNodeWithoutRoot() { $arguments = array('node' => 2, 'skipRoot' => true); $tree = $this->getTreeMock(); $nodePathBuilder = new Tx_PtExtbase_Tree_NodePathBuilder(); $nodePathBuilder->setTree($tree); $this->accessibleProxy->injectNodePathBuilder($nodePathBuilder); $this->accessibleProxy->_set('arguments', $arguments); $result = $this->accessibleProxy->_call('getPathFromRootToNode', $tree); $this->assertEquals(1, count($result)); $this->assertEquals('firstSubNode', $result[0]->getLabel()); }
/** * @return array nodes in the path from root to node */ protected function getPathFromRootToNode() { $node = $this->arguments['node']; $length = $this->arguments['length']; if ($this->arguments['skipRoot']) { $startIndex = 1; } else { $startIndex = $this->arguments['startIndex']; } $nodes = $this->nodePathBuilder->getPathFromRootToNode($node, $startIndex, $length); return $nodes; }