update Debian packaging
[diogenes.git] / include / Tree / Node.php
index 65f1f1f..9006ea7 100644 (file)
@@ -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);
@@ -41,33 +43,37 @@ 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, '&nbsp;&nbsp;', $eol = "<br/>\n");
+}
+
 function var_encode_bin($var, $no_children = FALSE)
 {
   if (is_object($var) && (get_class($var) == 'Diogenes_Tree_Node')) {
@@ -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)