]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/HTML/Arbol/ArbolDB.php
Workarround para que no explote con un nivel de profundidad mayor a 4.
[mecon/meconlib.git] / lib / MECON / HTML / Arbol / ArbolDB.php
1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
3                              Ministerio de Economía
4                                     meconlib
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
7
8 meconlib is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
11 any later version.
12
13 meconlib is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16  
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA  02111-1307  USA
20 -------------------------------------------------------------------------------
21 Creado: jue jul 17 15:33:41 ART 2003
22 Autor:  Gonzalo Merayo <gmeray@mecon.gov.ar>
23 -------------------------------------------------------------------------------
24 $Id$
25 -----------------------------------------------------------------------------*/
26
27 require_once 'MECON/HTML/Arbol.php';
28 require_once 'DB.php';
29
30 class HTML_ArbolDB extends HTML_Arbol
31 {
32         var $padre = null;
33         var $tabla;
34         var $nombre;
35         var $id;
36         var $link = null;
37         var $prepend_link = null;
38         var $where = '';
39         var $order = '';
40         var $db;
41     
42     function HTML_ArbolDB($dbdata, $imagen)
43     {
44         if(isset($dbdata['id_padre']))
45           $this->padre = $dbdata['id_padre'];
46         $this->tabla = $dbdata['tabla'];
47         $this->nombre = $dbdata['nombre'];
48         $this->id = $dbdata['id'];
49         if(isset($dbdata['prepend_link']))
50           $this->prepend_link = $dbdata['prepend_link']; 
51         if(isset($dbdata['link']))
52           $this->link = $dbdata['link']; 
53         if(isset($dbdata['where']))
54           $this->where = $dbdata['where'];
55         if(isset($dbdata['order']))
56           $this->order = ' ORDER BY '.$dbdata['nombre'].' '.$dbdata['order']; 
57         $this->db = $dbdata['db']; 
58         $dat = $this->BuscarHijos(0);
59         parent::HTML_Arbol($dat, $imagen);
60     }
61   
62     function BuscarHijos($id)
63     {
64         $sql = "SELECT $this->nombre, $this->id ";
65         if(!is_null($this->link))
66         $sql .=  ", $this->link ";
67         $sql .=  "FROM $this->tabla ";
68         if(!is_null($this->padre) or $this->where)
69           $sql .= 'WHERE ';
70         if(!is_null($this->padre)) {
71           $sql .= "$this->padre = '$id'";
72           if ($this->where)
73             $sql .= ' AND';
74         } elseif ($this->where)
75           $sql .= $this->where;
76         $sql .= $this->order;
77         $result = $this->db->query($sql);
78         if(DB::isError($result))
79           die($result->getMessage());
80         $dat = array();
81         while($row = $result->fetchRow())
82         {
83             $titulo = $row[0];
84             $id = $row[1];
85             if(is_null($this->padre)) $sub = array();
86             else $sub = $this->BuscarHijos($id);
87             if(!is_null($this->link))  $link = $this->prepend_link.$row[2];
88             else $link = $this->prepend_link.$id;
89             $dat[] = array(
90                 'titulo'=> $titulo,
91                 'link' => $link,
92                 'sub' => $sub 
93             );
94         }
95         return $dat;
96
97     }
98
99 }
100
101 ?>