Leandro Lucarella ------------------------------------------------------------------------------- $Id$ -----------------------------------------------------------------------------*/ require_once 'MECON/HTML/Arbol.php'; require_once 'DB.php'; class HTML_ArbolDB extends HTML_Arbol { var $padre = ''; var $tabla; var $nombre; var $id; var $id_activo; var $link = ''; var $link_append = ''; var $where = ''; var $order = ''; var $db; function HTML_ArbolDB($dbdata, $titulo, $link_append = '') { if(isset($dbdata['id_padre'])) $this->padre = $dbdata['id_padre']; $this->tabla = $dbdata['tabla']; $this->nombre = $dbdata['nombre']; $this->id = $dbdata['id']; $this->id_activo = @$dbdata['id_activo']; // FIXME - Deprecated! if(isset($dbdata['prepend_link'])) $link_append = $dbdata['prepend_link']; if(isset($dbdata['link'])) $this->link = $dbdata['link']; if(isset($dbdata['where'])) $this->where = $dbdata['where']; if(isset($dbdata['order'])) $this->order = ' ORDER BY '.$dbdata['nombre'].' '.$dbdata['order']; $this->db = $dbdata['db']; parent::HTML_Arbol(array(), $titulo, $link_append); $this->datos = $this->BuscarHijos(0); } function BuscarHijos($id) { $sql = "SELECT $this->nombre, $this->id "; if($this->link) $sql .= ", $this->link "; $sql .= "FROM $this->tabla "; if($this->padre or $this->where) $sql .= 'WHERE '; if($this->padre) { $sql .= "$this->padre = '$id'"; if ($this->where) $sql .= ' AND'; } elseif ($this->where) $sql .= $this->where; $sql .= $this->order; $result = $this->db->query($sql); if(DB::isError($result)) die($result->getMessage()); $dat = array(); while($row = $result->fetchRow()) { $titulo = $row[0]; $id = $row[1]; if(!$this->padre) $sub = array(); else $sub = $this->BuscarHijos($id); $link = strval(@$row[2]); $d = array( 'titulo'=> $titulo, 'link' => $link, 'id' => $id, 'sub' => $sub ); if (!is_null($this->id_activo) and $id == $this->id_activo) { $d['activo'] = 1; } $dat[] = $d; } return $dat; } } ?>