]> git.llucax.com Git - mecon/meconlib.git/blob - HTML/php/Tabla.php
21acb3a340c4bad410ef5ebf1c40d78e6c7f8047
[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         }        
79         $this->HTML_Table($this->_atribTabla);
80         //Modifico los atributos de todas las tablas
81         //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
82         //inserciones.
83     }    
84     
85     /**                 
86     * Agrega una fila del tipo Cabecera
87     *
88     * Agrega una fila del tipo cabecera, tomando colores y demas del  
89     * archivo de configuracion. Recibe como parametro un array con 
90     * los datos a incluir en la linea. Agrega tantas columnas como
91     * elementos tenga el array. Si no recibe parametro alguno, 
92     * inserta una fila en blanco. Devuelve el identificador de la
93     * fila en donde inserto los datos.
94     *
95     * @param $contenido Contenido de la fila
96     *
97     * @return int Identificador de Linea
98     * 
99     * @access public
100     */
101     function agregarFilaCabecera ($contenido = '', $atributos = '')
102     {
103         return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH');
104     }
105
106     /**                 
107     * Agrega una fila del tipo Comun
108     *
109     * Agrega una fila del tipo comun, tomando colores y demas del  
110     * archivo de configuracion. Recibe como parametro un array con 
111     * los datos a incluir en la linea. Agrega tantas columnas como
112     * elementos tenga el array. Si no recibe parametro alguno, 
113     * inserta una fila en blanco. Devuelve el identificador de la
114     * fila en donde inserto los datos.
115     *
116     * @param $contenido Contenido de la fila
117     *
118     * @return int Identificador de Linea
119     * 
120     * @access public
121     */
122     function agregarFila ($contenido = '')
123     {
124         return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
125     }
126
127
128     /**                 
129     * Modifica el atributo rowSpan a la celda pasada por parametro
130     *
131     * @param int $fila
132     * @param int $columna
133     * @param int $valor
134     * 
135     * @access public
136     */
137     function rowSpan ($fila, $columna, $valor)
138     {
139         return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
140     }
141
142     /**                 
143     * Modifica el atributo colSpan a la celda pasada por parametro
144     *
145     * @param int $fila
146     * @param int $columna
147     * @param int $valor
148     * 
149     * @access public
150     */
151     function colSpan ($fila, $columna, $valor)
152     {
153         return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
154     }
155
156     /**                 
157     * Modifica el atributo aling de la celda pasada por parametro
158     *
159     * @param int $fila
160     * @param int $columna
161     * @param string $valor (left, center, right...)
162     * 
163     * @access public
164     */
165     function align ($fila, $columna, $valor)
166     {
167         return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
168     }
169
170     /**                 
171     * Setea una columna como del tipo cabecera    
172     *
173     * @param int $columna
174     * 
175     * @access public
176     */
177     function setColCabecera ($columna)
178     {
179         return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']);
180     }
181
182     /**                 
183     * Alinea una columna entera  
184     *
185     * @param int $columna
186     * @param strin $valor
187     * 
188     * @access public
189     */
190     function setColAlign ($columna, $valor)
191     {
192         return $this->updateColAttributes($columna,'align="'.$valor.'"');
193     }
194
195     /**                 
196     * Cambia el color de fondo de una celda  
197     *
198     * @param int $fila
199     * @param int $columna
200     * @param strin $valor
201     * 
202     * @access public
203     */
204     function setCellBgcolor ($fila, $columna, $valor)
205     {
206         return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
207     }
208
209     /**                 
210     * Devuelve el html de la tabla
211     *
212     * Devuelve el html de la tabla para que sea mostrado.
213     * Como parametro recibe el indicador de tabla simple.
214     * Si doble es 0, devuelve el html comun y corriente, si es
215     * distinto de 0 devuelve una tabla sola
216     *
217     * @param int $doble
218     *
219     * @return string Html
220     * 
221     * @access public
222     */
223     function toHtml ($doble = 0)
224     {
225         // Agregar la tabla de fondo.
226         if ($doble == 0 ) {
227             $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
228             $tmp['width'] = $this->_atribTabla['width'];
229             $tabla_externa =  new HTML_Table($tmp);
230             $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
231             $result = $tabla_externa->toHtml();    
232         }
233         else {
234             $result = parent::toHtml();
235         }
236
237         return $result;
238     }
239 }  
240 ?>