]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/HTML/ArbolDB.php
Se saca el align="middle" porque daba problemas con el Netscape.
[mecon/meconlib.git] / lib / MECON / HTML / ArbolDB.php
index a931a2caaa6c706683ec4cd5fdcf33475e5c07cd..31e75770c7f4637da426649c4cc43e745896d512 100644 (file)
@@ -126,7 +126,7 @@ class MECON_HTML_ArbolDB extends MECON_HTML_Arbol
      * @return void
      * @access public
      */
-    function MECON_HTML_ArbolDB($dbdata, $titulo, $link_append = '')
+    function MECON_HTML_ArbolDB($dbdata, $titulo, $link_append = '', $expandir = false)
     {
         if(isset($dbdata['id_padre']))
             $this->padre = $dbdata['id_padre'];
@@ -144,6 +144,24 @@ class MECON_HTML_ArbolDB extends MECON_HTML_Arbol
         if(isset($dbdata['order']))
             $this->order = ' ORDER BY '.$dbdata['nombre'].' '.$dbdata['order']; 
         $this->db = $dbdata['db']; 
+        
+        if($expandir)
+        {
+          $this->expandir = array($this->id_activo);
+          if(isset($this->id_activo))
+          {
+            $id = $this->id_activo;
+            while($id != 0)
+            {
+              $sql = "SELECT $this->padre
+                      FROM $this->tabla
+                      WHERE $this->id = '".$id."'";
+              $id = $this->db->getOne($sql);
+              $this->expandir[] = $id;
+            }
+          }
+        }
+
         parent::MECON_HTML_Arbol(array(), $titulo, $link_append);
         $this->datos = $this->BuscarHijos(0);
     }
@@ -179,7 +197,9 @@ class MECON_HTML_ArbolDB extends MECON_HTML_Arbol
        {
            $titulo = $row[0];
            $id = $row[1];
-           if(!$this->padre) $sub = array();
+           if(!$this->padre || !(!isset($this->expandir) ||
+                              in_array($id, $this->expandir)))
+                       $sub = array();
            else $sub = $this->BuscarHijos($id);
            $link = strval(@$row[2]);
            $d = array(
@@ -188,6 +208,8 @@ class MECON_HTML_ArbolDB extends MECON_HTML_Arbol
             'id' => $id,
             'sub' => $sub 
            );
+        if(isset($this->expandir) && in_array($id, $this->expandir) && $id != $this->id_activo)
+          $d['bold'] = 1;
         if (!is_null($this->id_activo) and $id == $this->id_activo) {
             $d['activo'] = 1;
         }