]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/HTML/Arbol.php
Workarround para que no explote con un nivel de profundidad mayor a 4.
[mecon/meconlib.git] / lib / MECON / HTML / Arbol.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:32:52 ART 2003
22 Autor:  Gonzalo Merayo <gmeray@mecon.gov.ar>
23 -------------------------------------------------------------------------------
24 $Id$
25 -----------------------------------------------------------------------------*/
26
27 require_once 'HTML/Table.php';
28 require_once 'HTML/Image.php';
29
30 class HTML_Arbol extends HTML_Table
31 {
32     var $t_interna;
33
34     function HTML_Arbol($dat, $titulo_str)
35     {
36         parent::HTML_Table(array ('width'=>'132',
37                                   'border'   => '0',
38                                   'cellspacing'   => '0',
39                                   'cellpadding'   => '0',
40                                   'bgcolor'   => '#003868'));
41         $this->t_interna = new HTML_Table(array ('width'=>'132',
42                                   'border'   => '0',
43                                   'cellspacing'   => '2',
44                                   'cellpadding'   => '0',
45                                   'class'   => 'bodytext'));
46         $titulo = new HTML_Table(array('width'=>'132',
47                                        'height'=>'26',
48                                        'border' => '0',
49                                        'cellspacing' => '0',
50                                          'cellpadding' => '0',
51                                          'align'=>'center',
52                  'background'=>'/MECON/images/arbol_titulo.gif'));
53         $titulo->addRow(array($titulo_str), array('align'=>'center',
54                                                   'class'=>'arboltitulo'));
55         $this->addRow(array($titulo), array('bgcolor' => '#FFFFFF'));
56         $this->expandir($dat, 0);
57     }
58     
59     function expandir($dat, $n)
60     {
61         $imagen = '';
62         $bullets = array(
63         '',
64         '/MECON/images/arbol_bullet_1.gif',
65         '/MECON/images/arbol_bullet_2.gif',
66         '/MECON/images/arbol_bullet_3.gif'
67     );
68         $tabulados = 7;
69         $classes = array('menu', 'menu1', 'menu1', 'menu2');
70         
71         $atr = array('border' => '0',
72                      'width'  => $n * $tabulados,
73                      'height' => '10');
74         $imagen =& new HTML_Image(@$bullets[$n] ? $bullets[$n] : '', 'bullet', $atr);
75         foreach($dat as $e)
76         {
77             $e['titulo'] = $imagen->toHTML().$e['titulo'];
78             if(isset($e['activado']) && $e['activado'] != 0) $class = 'menu_activo';
79             else $class = $classes[$n];
80             if(!is_null($e['link']))
81               $e['titulo'] = '<a href="'.$e['link'].'" class="'.$class.'">'.$e['titulo'].'</a>';
82             $this->t_interna->addRow(array($e['titulo']), array('class' => $class));
83             if(isset($e['sub']))
84               $this->expandir($e['sub'], $n+1);
85         }
86     }
87
88     function toHTML()
89     {
90         echo '<link rel="stylesheet" href="/MECON/css/arbol.css">';
91         $this->addRow(array($this->t_interna->toHTML()));
92         return parent::toHTML();
93     }
94 };
95
96 ?>