diff options
Diffstat (limited to 'includes/tree.php')
| -rw-r--r-- | includes/tree.php | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/includes/tree.php b/includes/tree.php deleted file mode 100644 index 48153d0..0000000 --- a/includes/tree.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php -/** - * @version $Header$ - * - * ase tree maker - * - * @author zaufi@sendmail.ru - * @package TreeMaker - * - */ - -/** - * required setup - */ -if ( defined( 'DEBUG_PKG_PATH' ) ) { - require_once( DEBUG_PKG_PATH.'debugger.php' ); -} -/** - * Base class for all tree makers - * - * Define base interface and provide common algotithm for tree generation - * - * Format of element in array for make_tree() call: - * id => number of ID of current node - * parent => number of ID of parant node - * data => user provided data to be placed as node text - * - * @package TreeMaker - */ -class TreeMaker { - /// Unique prefix for cookies generated for this tree - public $prefix; - /// Constructor - function TreeMaker($prefix) { - $this->prefix = $prefix; - } - /// Generate HTML code for tree - function make_tree($rootid, $ar) { - return $this->make_tree_r($rootid, $ar); - } - /// Recursive make (do not call directly) - function make_tree_r($rootid, &$ar) { - //global $debugger; - //$debugger->msg("TreeMaker::make_tree_r: Root ID=" . $rootid); - $result = ''; - if (count($ar) > 0) { - $cli = array(); - $tmp = array(); - foreach ($ar as $i) - if ($rootid == $i["parent"]) - $cli[] = $i; - else - $tmp[] = $i; - // - foreach ($cli as $i) { - $child_result = $this->make_tree_r($i["id"], $tmp); - $have_childs = (strlen($child_result) > 0); - // - // NOTE: The main rule is to call all methods in - // stricty defined order!! - // - $nsc = $this->node_start_code($i); - $flipper = ''; - if ($have_childs) - $flipper = $this->node_flipper_code($i); - $ndsc = $this->node_data_start_code($i); - $ndec = $this->node_data_end_code($i); - $ncsc = ''; - $ncec = ''; - if ($have_childs) { - $ncsc = $this->node_child_start_code($i); - $ncec = $this->node_child_end_code($i); - } - $nec = $this->node_end_code($i); - // Form result - $result .= $nsc . $flipper . $ndsc . $i["data"] . $ndec . $ncsc . $child_result . $ncec . $nec; - } - } - return $result; - } - /** - * To change behavior (look and feel :) of generated tree - * it is enough to redefine follwing methods.. - * (thanx that PHP have implicit vurtual functions :) - * - * General layout of generated tree code looks like this: - * - * [node start code] - * [node flipper code] (1) - * [node data start code] - * [node data end code] - * [node childs start code] (1) - * [node childs end code] (1) - * [node end code] - * - * (1) -- this code will be generated if node have childs - * - * NOTE: Methods called exactly in that order. This fact can be - * (and actualy do) used by child classes to define - * and use some variables depends on pervious call... - * - * NOTE: This is abstract base class... it doing nothig - * except defining algirithm... - * So to make smth other use inheritance and redifine - * corresponding function :) - */ - function node_start_code($nodeinfo) { - return ''; - } - // - function node_flipper_code($nodeinfo) { - return ''; - } - // - function node_data_start_code($nodeinfo) { - return ''; - } - // - function node_data_end_code($nodeinfo) { - return ''; - } - // - function node_child_start_code($nodeinfo) { - return ''; - } - // - function node_child_end_code($nodeinfo) { - return ''; - } - // - function node_end_code($nodeinfo) { - return ''; - } -} -?> |
