"testnstree", // Table name
"lvalname" => "lft", // Left pointer field name
"rvalname" => "rgt"); // Right pointer field name
$namefield = "name"; // Name of the table field with the name of the node
include "class/nstrees.php";
$tree = new nestedTree($handle);
// Connexion � la base de donn�es
@mysql_connect($db_host, $db_username, $db_password) or die("Impossible de se connecter au serveur de base de donn�es");
@mysql_select_db($db_database) or die("Impossible de trouver la base de donn�es") ?>
Classe nstrees : Page de test
Classe nstrees : Page de test
nstDeleteTree();
echo ("Create Root
\n");
$root = $tree->nstNewRoot(array("name" => "'root'"));
// Print the whole tree
$tree->nstPrintTree(array($namefield));
print ("Add 4 child nodes
\n");
$tree->nstNewLastChild($root,array($namefield => "'3'"));
$tree->nstNewLastChild($tree->nstRoot(),array($namefield => "'4'"));
// Keep this child in a variable
$child = $tree->nstNewFirstChild($tree->nstRoot(),array($namefield => "'2'"));
// Use the previous node to create a node before it in the hierarchy
$tree->nstNewPrevSibling($child,array($namefield => "'1'"));
// Print the whole tree
$tree->nstPrintTree(array($namefield));
print ("Add 3 child subnodes
\n");
$child = $tree->nstNewFirstChild($tree->nstGetNodeWhere($namefield."='3'"), array($namefield => "'3.3'"));
$child = $tree->nstNewPrevSibling($child, array($namefield => "'3.1'"));
$child = $tree->nstNewNextSibling($child, array($namefield => "'3.2'"));
// Print the whole tree
$tree->nstPrintTree(array($namefield));
print ("Add 2 child sub-subnodes
\n");
$child = $tree->nstNewFirstChild($child, array($namefield => "'3.2.1'"));
$child = $tree->nstNewNextSibling($child, array($namefield => "'3.2.2'"));
$child = $tree->nstNewFirstChild($child, array($namefield => "'3.2.2.1'"));
$child = $tree->nstNewFirstChild($child, array($namefield => "'3.2.2.1.1'"));
$child = $tree->nstNewFirstChild($child, array($namefield => "'3.2.2.1.1.1'"));
// Print the whole tree
$tree->nstPrintTree(array($namefield));
print ("Move subtree 3.2 after 2
\n");
$child = $tree->nstMoveToNextSibling($tree->nstGetNodeWhere($namefield."='3.2'"), $tree->nstGetNodeWhere($namefield."='2'"));
// Print the whole tree
$tree->nstPrintTree(array($namefield));
print ("Move subtree 3.2 back previous to 3.3
\n");
$child = $tree->nstMoveToPrevSibling($tree->nstGetNodeWhere($namefield."='3.2'"), $tree->nstGetNodeWhere($namefield."='3.3'"));
// Print the whole tree
$tree->nstPrintTree(array($namefield));
print ("Print node properties
\n");
$node = $tree->nstGetNodeWhere($namefield."='3.2'");
print ("First child of 3.2: ".$tree->nstNodeAttribute($tree->nstFirstChild($node), $namefield)."
\n");
print ("Last child of 3.2: ".$tree->nstNodeAttribute($tree->nstLastChild($node), $namefield)."
\n");
print ("Prev sibling of 3.2: ".$tree->nstNodeAttribute($tree->nstPrevSibling($node), $namefield)."
\n");
print ("Next sibling of 3.2: ".$tree->nstNodeAttribute($tree->nstNextSibling($node), $namefield)."
\n");
print ("Ancestor of 3.2: ".$tree->nstNodeAttribute($tree->nstAncestor($node), $namefield)."
\n");
$node = $tree->nstGetNodeWhere($namefield."='3'");
print ("
First child of 3: ".$tree->nstNodeAttribute($tree->nstFirstChild($node), $namefield)."
\n");
print ("Last child of 3: ".$tree->nstNodeAttribute($tree->nstLastChild($node), $namefield)."
\n");
print ("Prev sibling of 3: ".$tree->nstNodeAttribute($tree->nstPrevSibling($node), $namefield)."
\n");
print ("Next sibling of 3: ".$tree->nstNodeAttribute($tree->nstNextSibling($node), $namefield)."
\n");
print ("Ancestor of 3: ".$tree->nstNodeAttribute($tree->nstAncestor($node), $namefield)."
\n");
$node = $tree->nstGetNodeWhere($namefield."='1'");
print ("
First child of 1: ".$tree->nstNodeAttribute($tree->nstFirstChild($node), $namefield)."
\n");
print ("Last child of 1: ".$tree->nstNodeAttribute($tree->nstLastChild($node), $namefield)."
\n");
print ("Prev sibling of 1: ".$tree->nstNodeAttribute($tree->nstPrevSibling($node), $namefield)."
\n");
print ("Next sibling of 1: ".$tree->nstNodeAttribute($tree->nstNextSibling($node), $namefield)."
\n");
print ("Ancestor of 1: ".$tree->nstNodeAttribute($tree->nstAncestor($node), $namefield)."
\n");
print ("Print Boolean properties (1=yes, empty=no)
\n");
$node = $tree->nstGetNodeWhere($namefield."='3.2'");
print ("Node 3.2: has anc:".$tree->nstHasAncestor($node)
." has next sibl:".$tree->nstHasNextSibling($node)
." has prev sibl:".$tree->nstHasPrevSibling($node)
." has children:".$tree->nstHasChildren($node)
."
\n");
$node = $tree->nstGetNodeWhere($namefield."='3'");
print ("Node 3: has anc:".$tree->nstHasAncestor($node)
." has next sibl:".$tree->nstHasNextSibling($node)
." has prev sibl:".$tree->nstHasPrevSibling($node)
." has children:".$tree->nstHasChildren($node)
."
\n");
$node = $tree->nstGetNodeWhere($namefield."='1'");
print ("Node 1: has anc:".$tree->nstHasAncestor($node)
." has next sibl:".$tree->nstHasNextSibling($node)
." has prev sibl:".$tree->nstHasPrevSibling($node)
." has children:".$tree->nstHasChildren($node)
."
\n");
$node = $tree->nstRoot();
print ("Node root: has anc:".$tree->nstHasAncestor($node)
." has next sibl:".$tree->nstHasNextSibling($node)
." has prev sibl:".$tree->nstHasPrevSibling($node)
." has children:".$tree->nstHasChildren($node)
."
\n");
print ("Print level values
\n");
print ("Level of root= ".$tree->nstLevel($tree->nstRoot())."
\n");
print ("Level of node 3= ".$tree->nstLevel($tree->nstGetNodeWhere($namefield."='3'"))."
\n");
print ("Level of node 3.2= ".$tree->nstLevel($tree->nstGetNodeWhere($namefield."='3.2'"))."
\n");
print ("Level of node 3.2.1= ".$tree->nstLevel($tree->nstGetNodeWhere($namefield."='3.2.1'"))."
\n");
print ("Walk tree - Preorder:
\n");
$walk = $tree->nstWalkPreorder ($tree->nstRoot());
print ("INIT-LEVEL=".$tree->nstWalkLevel($walk)."
\n");
while($node = $tree->nstWalkNext($walk)){
print ("L".$tree->nstWalkLevel($walk).":next"
.$tree->nstNodeAttribute($node, $namefield)."-curr"
.$tree->nstNodeAttribute($tree->nstWalkCurrent($walk), $namefield)." "
."
");
}
print ("
\n");
print ("Delete subtree 3.2 without keeping children
\n");
$child = $tree->nstDelete($tree->nstGetNodeWhere($namefield."='3.2'"),false);
// Print the whole tree
$tree->nstPrintTree(array($namefield));
print ("Delete subtree 3 and outdent children
\n");
$child = $tree->nstDelete($tree->nstGetNodeWhere($namefield."='3'"),treu);
// Print the whole tree
$tree->nstPrintTree(array($namefield));
mysql_close();
?>