Hi All,
Below is a bit of a post that I found in the archives...
Is the Spruce tree implimentation available somewhere?
Cheers,
Brad
From: Spruce Weber ([EMAIL PROTECTED])
Date: 09/21/00
I've created from scratch a tree class that utilizes templates. What makes
this class worth using is the fact that it uses templates and the ease with
which it is extended. Heirarchical data is often stored in a database table
as follows:
record_id, parent_record_id, field_1, field_two, field_three...
The only data my class requires for each record/branch is its ID and its
parent's ID (or 0 if it's a top-level record/branch). The vars element can
contain one or more var=>val pairs that can be used when parsing each branch
of the tree. Data returned by a query of a table in the above format can be
easily prepared for use by my tree class as follows...
While($db->next_record()) {
$data[$db->f("record_id")] =
array("parent" => $db->f("parent_record_id"),
"vars" => array("field_1"=>$db->f("field_1"),
"field_2"=>$db->f("field_2"),
"field_3"=>$db->f("field_3")
));
}
The following code will then parse and display the tree, complete with links
that will expand and collapse branches that have children.
if(!$sess->is_registered("tree")) {
$tree = new Spruce_Tree("/some/directory");
$sess->register("tree");
}
if($sprout) $tree->sprout($sprout); // expand a branch
if($prune) $tree->prune($prune); // collapse a branch
$tree->set_tree_target("a_target"); // only necessary when using frames
$tree->pparse($data); // parse tree and print results
The branches can contain as much or as little data as you like depending on
the fields you place in the template and the data you insert into each
"vars" element.
The only data that is stored in the session is the name of the template file
being used (spruce_tree.tpl by default), the directory in which the template
is located, and an array containing the IDs of branches that are currently
expanded.
Yes, my name is Spruce, and this is my Tree class! If there's any interest
I'll be happy to share the implementation.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php