); } } else { // calculate 1st child's lft value, if exists $searchLft = 0; $parent = Database::get()->querySingle($fetchNodeById, $requestId); if ($parent && ($parent->rgt - $parent->lft) > 1) { $searchLft = intval($parent->lft) + 1; } // get 1st child's all neighbour elements if ($searchLft > 0) { $tree->loopTree(function($node) use (&$nodes, &$searchLft) { $nlft = intval($node->lft); if ($nlft === $searchLft) { $nodes[] = $node; $searchLft = intval($node->rgt) + 1; } }, $allnodes); } if ($exclude != null) { $exnode = Database::get()->querySingle($fetchNodeById, $exclude); if ($exnode) { $excludeLft = intval($exnode->lft); $excludeRgt = intval($exnode->rgt); } } } foreach ($nodes as $node) {