]> git.llucax.com Git - mecon/meconlib.git/blob - HTML/php/Tabla.php
ce736c52f4eabd7d17ecfcf92314218c29f24f93
[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     * Setea una columna como del tipo titulo
193     *
194     * @param int $columna
195     * 
196     * @access public
197     */
198     function setColTitulo ($columna)
199     {
200         return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_titulo']);
201     }
202  
203  /**                 
204     * Alinea una columna entera  
205     *
206     * @param int $columna
207     * @param strin $valor
208     * 
209     * @access public
210     */
211     function setColAlign ($columna, $valor)
212     {
213         return $this->updateColAttributes($columna,'align="'.$valor.'"');
214     }
215
216     /**                 
217     * Cambia el tamanio de una columna entera  
218     *
219     * @param int $columna
220     * @param strin $valor
221     * 
222     * @access public
223     */
224     function setColWidth ($columna, $valor)
225     {
226         return $this->updateColAttributes($columna,'width="'.$valor.'"');
227     }
228
229     /**                 
230     * Cambia el color de fondo de una celda  
231     *
232     * @param int $fila
233     * @param int $columna
234     * @param strin $valor
235     * 
236     * @access public
237     */
238     function setCellBgcolor ($fila, $columna, $valor)
239     {
240         return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
241     }
242
243     /**                 
244     * Devuelve el html de la tabla
245     *
246     * Devuelve el html de la tabla para que sea mostrado.
247     * Como parametro recibe el indicador de tabla simple.
248     * Si doble es 0, devuelve el html comun y corriente, si es
249     * distinto de 0 devuelve una tabla sola
250     *
251     * @param int $doble
252     *
253     * @return string Html
254     * 
255     * @access public
256     */
257     function toHtml ($doble = 0)
258     {
259         // Agregar la tabla de fondo.
260         if ($doble == 0 ) {
261             $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
262             $tmp['width'] = $this->_atribTabla['width'];
263             $tabla_externa =  new HTML_Table($tmp);
264             $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
265             $result = $tabla_externa->toHtml();    
266         }
267         else {
268             $result = parent::toHtml();
269         }
270
271         return $result;
272     }
273 }  
274 ?>