X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2FTree%2FNode.php;h=2ff8edb524f6ccfb1f563fa41c17cf649a8eed70;hb=ff680e8badbf51b8ebf5cad8e88f0e002f5c30d5;hp=65f1f1fdc3743c9f23c90a17415dd46d88ff9abb;hpb=55d2e17d82f3481135c7d438a1f90be6ac9394f8;p=diogenes.git diff --git a/include/Tree/Node.php b/include/Tree/Node.php index 65f1f1f..2ff8edb 100644 --- a/include/Tree/Node.php +++ b/include/Tree/Node.php @@ -18,6 +18,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +require_once 'diogenes/diogenes.misc.inc.php'; + define('NODE_DUMP_BINARY', 0); define('NODE_DUMP_TEXT', 1); define('NODE_DUMP_NOCHILDREN', 2); @@ -29,7 +31,7 @@ define('VAR_TYPE_NODE', 4); function var_encode_text($var, $level = 0, $no_children = FALSE, $tabstr = ' ', $eol = "\n") { - if (is_object($var) && (get_class($var) == 'Diogenes_Tree_Node')) { + if (is_object($var) && (strtolower(get_class($var)) == 'diogenes_tree_node')) { // node name $code = str_repeat($tabstr, $level) . "node : {$var->name}" . $eol; @@ -41,36 +43,40 @@ function var_encode_text($var, $level = 0, $no_children = FALSE, $tabstr = ' ', { $code .= str_repeat($tabstr, $level+1) . "* children" . $eol; foreach ($var->children as $index => $child) + { $code .= str_repeat($tabstr, $level+2) . "index : $index" . $eol; $code .= var_encode_text($child, $level+2, $no_children, $tabstr, $eol); + } } return $code; } elseif (is_array($var)) { $arraysep = ",$eol"; - $code = "array(".$eol; + $vcode = ''; foreach ($var as $key => $value) { - $code .= str_repeat($tabstr, $level + 1); - $code .= "'$key'=>".var_encode_text($value, $level + 1, $no_children, $tabstr, $eol); - $code .= $arraysep; + $vcode .= str_repeat($tabstr, $level + 1); + $vcode .= "'$key'=>".var_encode_text($value, $level + 1, $no_children, $tabstr, $eol); + $vcode .= $arraysep; } - if (substr($code, -strlen($arraysep))) - $code = substr($code, 0, - strlen($arraysep)); - $code .= $eol; - //$code = chop($code, ','); //remove unnecessary coma - $code .= str_repeat($tabstr, $level) . ")"; + if (substr($vcode, -strlen($arraysep)) == $arraysep) + $vcode = substr($vcode, 0, - strlen($arraysep)); + + $code = "array(".($vcode ? "$eol$vcode$eol".str_repeat($tabstr, $level) : ""). ")"; return $code; - } elseif (is_string($var)) { + } elseif (is_scalar($var)) { return "'".$var."'"; - } elseif (is_bool($var)) { - return ($code ? 'TRUE' : 'FALSE'); } else { return 'NULL'; } } +function var_encode_html($var, $level = 0, $no_children = FALSE) +{ + return var_encode_text($var, $level, $no_children, '  ', $eol = "
\n"); +} + function var_encode_bin($var, $no_children = FALSE) { - if (is_object($var) && (get_class($var) == 'Diogenes_Tree_Node')) { + if (is_object($var) && (strtolower(get_class($var)) == 'diogenes_tree_node')) { $code = pack('C', VAR_TYPE_NODE); $code .= var_encode_bin($var->name); $code .= var_encode_bin($var->data); @@ -158,13 +164,6 @@ class Diogenes_Tree_Node $this->children = $children; } - /** Add a child for this node. - */ - function pushChild($node, $index) - { - array_push($this->children, $node); - } - /** Return the specified child of this node. */ function getChild($index) @@ -185,7 +184,7 @@ class Diogenes_Tree_Node { $bin = file_get_contents($filename); $node = var_decode_bin($bin); - if (!is_object($node) || get_class($node) != 'Diogenes_Tree_Node') + if (!is_object($node) || strtolower(get_class($node)) != 'diogenes_tree_node') { trigger_error('readFile : not a Diogenes_Tree_Node', E_USER_ERROR); }