ModelBundle/Repository/NodeRepository.php
protected function getTreeParentIdLevelAndLanguage($parentId, $nbLevel, $language, $siteId)
    {
        $result = array();

        if ($nbLevel >= 0) {
            $qa = $this->buildTreeRequest($language, $siteId);
            $qa->match(array('parentId' => $parentId));

            $nodes = $this->hydrateAggregateQuery($qa);
            $result = $nodes;

            if (is_array($nodes)) {
                foreach ($nodes as $node) {
                    $temp = $this->getTreeParentIdLevelAndLanguage($node->getNodeId(), $nbLevel-1, $language, $siteId);
                    $result = array_merge($result, $temp);
                }
            }
        }

        return $result;
    }
protected function getTreeParentIdLevelAndLanguage($parentId, $nbLevel, $language, $siteId)
    {
        $result = array();

        if ($nbLevel >= 0) {
            $qa = $this->buildTreeRequest($language, $siteId);
            $qa->match(array('parentId' => $parentId));

            $nodes = $this->hydrateAggregateQuery($qa);
            $result = $nodes;

            if (is_array($nodes)) {
                foreach ($nodes as $node) {
                    $temp = $this->getTreeParentIdLevelAndLanguage($node->getNodeId(), $nbLevel-1, $language, $siteId);
                    $result = array_merge($result, $temp);
                }
            }
        }

        return $result;
    }
protected function getTreeParentIdLevelAndLanguage ( $ parentId , $ nbLevel , $ language , $ siteId ) { $ result = array ( ) ; if ( $ nbLevel >= 0 ) { $ qa = $ this -> buildTreeRequest ( $ language , $ siteId ) ; $ qa -> match ( array ( 'parentId' => $ parentId ) ) ; $ nodes = $ this -> hydrateAggregateQuery ( $ qa ) ; $ result = $ nodes ; if ( is_array ( $ nodes ) ) { foreach ( $ nodes as $ node ) { $ temp = $ this -> getTreeParentIdLevelAndLanguage ( $ node -> getNodeId ( ) , $ nbLevel - 1 , $ language , $ siteId ) ; $ result = array_merge ( $ result , $ temp ) ; } } } return $ result ; }
@param string $parentId
@param int    $nbLevel
@param string $language
@param string $siteId

@return array
@param string $parentId @param int $nbLevel @param string $language @param string $siteId