]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/HTML/ArbolDB.php
Los tipos de celdas clara y oscura solo reemplazan el color de la letra y el color...
[mecon/meconlib.git] / lib / MECON / HTML / ArbolDB.php
index fc0ca689fee113a762c1d76ba245ec373ecc43a2..dedf3b93b37d21b6e2c5f3dd2c4f5e34999b5b4f 100644 (file)
@@ -28,20 +28,105 @@ $Id$
 require_once 'MECON/HTML/Arbol.php';
 require_once 'DB.php';
 
+/**
+ * DESC
+ *
+ * @access public
+ */
 class MECON_HTML_ArbolDB extends MECON_HTML_Arbol
 {
+    
+    /**
+     * DESC
+     *
+     * @var string $padre
+     * @access public
+     */
     var $padre = '';
+    
+    /**
+     * DESC
+     *
+     * @var TIPO $tabla
+     * @access public
+     */
     var $tabla;
+    
+    /**
+     * DESC
+     *
+     * @var string $nombre
+     * @access public
+     */
     var $nombre;
+    
+    /**
+     * DESC
+     *
+     * @var TIPO $id   
+     * @access public
+     */
     var $id;
+    
+    /**
+     * DESC
+     *
+     * @var TIPO $id_activo
+     * @access public
+     */
     var $id_activo;
+    
+    /**
+     * DESC
+     *
+     * @var string $link 
+     * @access public
+     */
     var $link = '';
+    
+    /**
+     * DESC
+     *
+     * @var string $link_append
+     * @access public
+     */
     var $link_append = '';
+    
+    /**
+     * DESC
+     *
+     * @var string $where
+     * @access public
+     */
     var $where = '';
+    
+    /**
+     * DESC
+     *
+     * @var string $order 
+     * @access public
+     */
     var $order = '';
+    
+    /**
+     * DESC
+     *
+     * @var DB $db   
+     * @access public
+     */
     var $db;
     
-    function MECON_HTML_ArbolDB($dbdata, $titulo, $link_append = '')
+    /**
+     * Constructor
+     *
+     * @param TIPO $dbdata DESC
+     * @param TIPO $titulo DESC
+     * @param string $link_append DESC
+     *
+     * @return void
+     * @access public
+     */
+    function MECON_HTML_ArbolDB($dbdata, $titulo, $link_append = '', $expandir = false)
     {
         if(isset($dbdata['id_padre']))
             $this->padre = $dbdata['id_padre'];
@@ -56,13 +141,41 @@ class MECON_HTML_ArbolDB extends MECON_HTML_Arbol
             $this->link = $dbdata['link']; 
         if(isset($dbdata['where']))
             $this->where = $dbdata['where'];
+        if(isset($dbdata['habilitado']))
+            $this->habilitado = $dbdata['habilitado'];
         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);
     }
-  
+     
+    /**
+     * DESC
+     *
+     * @param TIPO $id DESC
+     *
+     * @return TIPO
+     * @access public
+     */
     function BuscarHijos($id)
     {
         $sql = "SELECT $this->nombre, $this->id ";
@@ -77,6 +190,8 @@ class MECON_HTML_ArbolDB extends MECON_HTML_Arbol
             $sql .= ' AND';
         } elseif ($this->where)
           $sql .= $this->where;
+        if(isset($this->habilitado))
+          $sql .= " AND ".$this->habilitado." = 1 ";
         $sql .= $this->order;
         $result = $this->db->query($sql);
         if(DB::isError($result))
@@ -86,7 +201,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(
@@ -95,6 +212,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;
         }