]> git.llucax.com Git - mecon/meconlib.git/blob - HTML/php/Tabla.php
- PRIMERA VERSION LISTA......faltan arreglos visuales y de coqueteria, pero la funcio...
[mecon/meconlib.git] / HTML / php / Tabla.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                          HTML - TABLE                              |
5 // +--------------------------------------------------------------------+
6 // |   Libreria para la estandarizacion de los elementos html de los    |
7 // |                         de la Intranet                             |
8 // |                      Ministerio de Economía                        |
9 // +--------------------------------------------------------------------+
10 // | Creado: fri mar 21 ART 2003                                        |
11 // | Autor:  Martin Marrese <mmarre@mecon.gov.ar>                       |
12 // +--------------------------------------------------------------------+
13 // 
14 // $Id$
15 // 
16 // $URL$
17 // $Rev$
18 // $Date$
19 // $Author$
20
21 require_once 'HTML/Table.php';
22
23 /**
24 * Manejo de tablas.
25 *
26 * Libreria para le manejo de las tablas de los sistemas de intranet.
27 *
28 * @version $Rev$
29 * @author  $Author$
30 */
31
32 class Tabla extends HTML_Table {
33     
34     /**
35     * Valores de Configuracion particular
36     *
37     * @var array
38     */
39     var $_conf;
40     
41     /**
42     * Objeto tabla que voy a utilizar
43     *
44     * @var Object HTML_Table
45     */
46     var $_tabla;
47
48     /**
49      * Atributos de las tablas.
50      *
51      * @var array
52      */
53     var $_atribTabla;
54     
55     /**
56     * Constructor. 
57     *
58     * Puede recibir como parametro un string con los atributos que se 
59     * quieren dar a la tabla en cuestion. Estos atributos estan
60     * seteados por default segun el archivo de configuracion.
61     *
62     * @param $atributos Atributos diferentes a los estandares para la
63     * tabla
64     * 
65     * @access public
66     */
67     function Tabla ($atributos = '') 
68     {
69         $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion
70         // Seteo los atributos para la tabla
71         $this->_atribTabla = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']);
72         //Genero el objeto HTML_Table
73         if ($atributos != '') {
74             $tmp = $this->_parseAttributes($atributos);
75             if (isset($tmp['width'])) {
76                 $this->_atribTabla['width'] = $tmp['width'];
77             }
78             if (isset($tmp['bgcolor'])) {
79                 $this->_atribTabla['bgcolor'] = $tmp['bgcolor'];
80             }
81             if (isset($tmp['cellspacing'])) {
82                 $this->_atribTabla['cellspacing']  = $tmp['cellspacing'];
83             }            
84             if (isset($tmp['cellpadding'])) {
85                 $this->_atribTabla['cellpadding']  = $tmp['cellpadding'];
86             }            
87         }        
88         $this->HTML_Table($this->_atribTabla);
89         //Modifico los atributos de todas las tablas
90         //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
91         //inserciones.
92     }    
93     
94     /**                 
95     * Agrega una fila del tipo Cabecera
96     *
97     * Agrega una fila del tipo cabecera, tomando colores y demas del  
98     * archivo de configuracion. Recibe como parametro un array con 
99     * los datos a incluir en la linea. Agrega tantas columnas como
100     * elementos tenga el array. Si no recibe parametro alguno, 
101     * inserta una fila en blanco. Devuelve el identificador de la
102     * fila en donde inserto los datos.
103     *
104     * @param $contenido Contenido de la fila
105     *
106     * @return int Identificador de Linea
107     * 
108     * @access public
109     */
110     function agregarFilaCabecera ($contenido = '', $atributos = '')
111     {
112         return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH');
113     }
114
115     /**                 
116     * Agrega una fila del tipo Comun
117     *
118     * Agrega una fila del tipo comun, tomando colores y demas del  
119     * archivo de configuracion. Recibe como parametro un array con 
120     * los datos a incluir en la linea. Agrega tantas columnas como
121     * elementos tenga el array. Si no recibe parametro alguno, 
122     * inserta una fila en blanco. Devuelve el identificador de la
123     * fila en donde inserto los datos.
124     *
125     * @param $contenido Contenido de la fila
126     *
127     * @return int Identificador de Linea
128     * 
129     * @access public
130     */
131     function agregarFila ($contenido = '')
132     {
133         return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
134     }
135
136
137     /**                 
138     * Modifica el atributo rowSpan a la celda pasada por parametro
139     *
140     * @param int $fila
141     * @param int $columna
142     * @param int $valor
143     * 
144     * @access public
145     */
146     function rowSpan ($fila, $columna, $valor)
147     {
148         return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
149     }
150
151     /**                 
152     * Modifica el atributo colSpan a la celda pasada por parametro
153     *
154     * @param int $fila
155     * @param int $columna
156     * @param int $valor
157     * 
158     * @access public
159     */
160     function colSpan ($fila, $columna, $valor)
161     {
162         return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
163     }
164
165     /**                 
166     * Modifica el atributo aling de la celda pasada por parametro
167     *
168     * @param int $fila
169     * @param int $columna
170     * @param string $valor (left, center, right...)
171     * 
172     * @access public
173     */
174     function align ($fila, $columna, $valor)
175     {
176         return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
177     }
178
179     /**                 
180     * Setea una columna como del tipo cabecera    
181     *
182     * @param int $columna
183     * 
184     * @access public
185     */
186     function setColCabecera ($columna)
187     {
188         return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']);
189     }
190
191     /**                 
192     * Alinea una columna entera  
193     *
194     * @param int $columna
195     * @param strin $valor
196     * 
197     * @access public
198     */
199     function setColAlign ($columna, $valor)
200     {
201         return $this->updateColAttributes($columna,'align="'.$valor.'"');
202     }
203
204     /**                 
205     * Cambia el color de fondo de una celda  
206     *
207     * @param int $fila
208     * @param int $columna
209     * @param strin $valor
210     * 
211     * @access public
212     */
213     function setCellBgcolor ($fila, $columna, $valor)
214     {
215         return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
216     }
217
218     /**                 
219     * Devuelve el html de la tabla
220     *
221     * Devuelve el html de la tabla para que sea mostrado.
222     * Como parametro recibe el indicador de tabla simple.
223     * Si doble es 0, devuelve el html comun y corriente, si es
224     * distinto de 0 devuelve una tabla sola
225     *
226     * @param int $doble
227     *
228     * @return string Html
229     * 
230     * @access public
231     */
232     function toHtml ($doble = 0)
233     {
234         // Agregar la tabla de fondo.
235         if ($doble == 0 ) {
236             $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
237             $tmp['width'] = $this->_atribTabla['width'];
238             $tabla_externa =  new HTML_Table($tmp);
239             $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
240             $result = $tabla_externa->toHtml();    
241         }
242         else {
243             $result = parent::toHtml();
244         }
245
246         return $result;
247     }
248 }  
249 ?>