<?
-
+require_once 'MECON/HTML/Arbol.php';
+require_once 'DB.php';
class HTML_ArbolDB extends HTML_Arbol
{
- function ArbolDB()
+ var $padre = null;
+ var $tabla;
+ var $nombre;
+ var $id;
+ var $link = null;
+ var $prepend_link = null;
+ var $where = '';
+ var $order = '';
+ var $db;
+
+ function HTML_ArbolDB($dbdata, $imagen)
{
- $dat = array(
- array(
- 'titulo' => 'Nivel0a',
- 'link' => 'blabla',
- 'sub' => array(//sub0
- array(
- 'titulo' => 'Nivel1a',
- 'link' => 'blabla',
- 'sub' => array(//sub1
- array(
- 'titulo' => 'Nivel3a',
- 'link' => 'blabla',
- 'activado' => 1
- ),
- array(
- 'titulo' => 'Nivel3b',
- 'link' => 'blabla',
- 'sub' => array(//sub2
- array(
- 'titulo' => 'Nivel4',
- 'link' => 'blabla'
- )
- )//sub2
- ),
- array(
- 'titulo' => 'Nivel3c',
- 'link' => 'blabla'
- )
- )//sub1
- ),
- array(
- 'titulo' => 'Nivel1b',
- 'link' => 'blabla',
- 'activado' => 1
- ),
- array(
- 'titulo' => 'Nivel1c',
- 'link' => 'blabla'
- )
- )//sub0
- ),
- array(
- 'titulo' => 'Nivel0b',
- 'link' => 'blabla'
- ),
- array(
- 'titulo' => 'Nivel0c',
- 'link' => 'blabla'
- )
- );
-
- parent::Arbol($dat);
+ if(isset($dbdata['id_padre']))
+ $this->padre = $dbdata['id_padre'];
+ $this->tabla = $dbdata['tabla'];
+ $this->nombre = $dbdata['nombre'];
+ $this->id = $dbdata['id'];
+ if(isset($dbdata['prepend_link']))
+ $this->prepend_link = $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'];
+ $dat = $this->BuscarHijos(0);
+ parent::HTML_Arbol($dat, $imagen);
}
-}
+
+ function BuscarHijos($id)
+ {
+ $sql = "SELECT $this->nombre, $this->id ";
+ if(!is_null($this->link))
+ $sql .= ", $this->link ";
+ $sql .= "FROM $this->tabla ";
+ if(!is_null($this->padre) or $this->where)
+ $sql .= 'WHERE ';
+ if(!is_null($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(is_null($this->padre)) $sub = array();
+ else $sub = $this->BuscarHijos($id);
+ if(!is_null($this->link)) $link = $this->prepend_link.$row[2];
+ else $link = $this->prepend_link.$id;
+ $dat[] = array(
+ 'titulo'=> $titulo,
+ 'link' => $link,
+ 'sub' => $sub
+ );
+ }
+ return $dat;
+ }
+}
?>