function _insertNodeRecords() { $tree = new MaterializedPathTree(); $values['identifier'] = 'root'; $this->root_node_id = $tree->createRootNode($values, false, true); $data = array(); for($i = 1; $i <= 3; $i++) { $values['identifier'] = 'object_' . $i; $this->object2node[$i] = $tree->createSubNode($this->root_node_id, $values); } for(; $i <= 5; $i++) { $values['identifier'] = 'object_' . $i; $this->object2node[$i] = $tree->createSubNode($this->object2node[2], $values); } }
function _insertSysSiteObjectRecords() { $tree = new MaterializedPathTree(); $values['identifier'] = 'root'; $this->root_node_id = $tree->createRootNode($values, false, true); $data = array(); for($i = 1; $i <= 5; $i++) { $version = mt_rand(1, 3); $this->db->sqlInsert('sys_site_object', array( 'id' => $i, 'class_id' => $this->class_id, 'behaviour_id' => $this->behaviour_id, 'current_version' => $version, 'identifier' => 'object_' . $i, 'title' => 'object_' . $i . '_title', 'status' => 0, 'locale_id' => 'en', ) ); $values['identifier'] = 'object_' . $i; $values['object_id'] = $i; $tree->createSubNode($this->root_node_id, $values); } }
$ns = new NestedSetsTree(); $ns->setNodeTable($ns_table); $mp = new MaterializedPathTree(); $mp->setNodeTable($mp_table); $root_ns_nodes = $ns->getRootNodes(); $mp->setDumbMode(); echo 'total roots: ' . sizeof($root_ns_nodes) . "\n"; foreach($root_ns_nodes as $root_node) { unset($root_node['l']); unset($root_node['r']); unset($root_node['ordr']); $mp->createRootNode($root_node); $sub_branch = $ns->getSubBranch($root_node['id'], -1); $branch_size = sizeof($sub_branch); echo 'total branches in current root: ' . $branch_size . "\n"; $c = 0; foreach($sub_branch as $node) { echo ++$c . ' branch of ' . $branch_size . "\n"; unset($node['l']); unset($node['r']); unset($node['ordr']); $mp->createSubNode($node['parent_id'], $node);