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);
    }
  }
Exemplo n.º 3
0
$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);