| // +--------------------------------------------------------------------+ // // $Id$ // // $URL$ // $Rev$ // $Date$ // $Author$ require_once 'HTML/Table.php'; /** * Manejo de tablas. * * Libreria para le manejo de las tablas de los sistemas de intranet. * * @version $Rev$ * @author $Author$ */ class Tabla extends HTML_Table { /** * Valores de Configuracion particular * * @var array */ var $_conf; /** * Atributos de las tablas. * * @var array */ var $_attrs; /** * Constructor. * * Puede recibir como parametro un string con los atributos que se * quieren dar a la tabla en cuestion. Estos atributos estan * seteados por default segun el archivo de configuracion. * * @param $atributos Atributos diferentes a los estandares para la * tabla * * @access public */ function Tabla($attrs = '') { $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion // Seteo los atributos para la tabla $this->_attrs = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']); //Genero el objeto HTML_Table if ($atributos != '') { $tmp = $this->_parseAttributes($atributos); if (isset($tmp['width'])) { $this->_attrs['width'] = $tmp['width']; } if (isset($tmp['bgcolor'])) { $this->_attrs['bgcolor'] = $tmp['bgcolor']; } if (isset($tmp['cellspacing'])) { $this->_attrs['cellspacing'] = $tmp['cellspacing']; } if (isset($tmp['cellpadding'])) { $this->_attrs['cellpadding'] = $tmp['cellpadding']; } } $this->HTML_Table($this->_attrs); //Modifico los atributos de todas las tablas //Hay que encontrar o hacer una funcion que setee los atributos para las futuras //inserciones. } /** * Agrega una fila del tipo Cabecera * * Agrega una fila del tipo cabecera, tomando colores y demas del * archivo de configuracion. Recibe como parametro un array con * los datos a incluir en la linea. Agrega tantas columnas como * elementos tenga el array. Si no recibe parametro alguno, * inserta una fila en blanco. Devuelve el identificador de la * fila en donde inserto los datos. * * @param $contenido Contenido de la fila * * @return int Identificador de Linea * * @access public * @deprecated */ function agregarFilaCabecera($contenido = '', $atributos = '') { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // addRow($content, HTML_TABLA_HEADER) return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH'); } /** * Agrega una fila del tipo Comun * * Agrega una fila del tipo comun, tomando colores y demas del * archivo de configuracion. Recibe como parametro un array con * los datos a incluir en la linea. Agrega tantas columnas como * elementos tenga el array. Si no recibe parametro alguno, * inserta una fila en blanco. Devuelve el identificador de la * fila en donde inserto los datos. * * @param $contenido Contenido de la fila * * @return int Identificador de Linea * * @access public * @deprecated */ function agregarFila($contenido = '') { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // addRow($content) return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']); } /** * Modifica el atributo rowSpan a la celda pasada por parametro * * @param int $fila * @param int $columna * @param int $valor * * @access public * @deprecated */ function rowSpan($fila, $columna, $valor) { return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor); } /** * Modifica el atributo colSpan a la celda pasada por parametro * * @param int $fila * @param int $columna * @param int $valor * * @access public * @deprecated */ function colSpan($fila, $columna, $valor) { return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor); } /** * Modifica el atributo aling de la celda pasada por parametro * * @param int $fila * @param int $columna * @param string $valor (left, center, right...) * * @access public * @deprecated */ function align($fila, $columna, $valor) { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // setCell($row, $col, HTML_TABLA_ALIGN_LEFT) [o .._CENTER o .._RIGHT] return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"'); } /** * Setea una columna como del tipo cabecera * * @param int $columna * * @access public * @deprecated */ function setColCabecera($columna) { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // setCol($col, HTML_TABLA_HEADER) return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']); } /** * Setea una columna como del tipo titulo * * @param int $columna * * @access public * @deprecated */ function setColTitulo($columna) { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // setCol($col, HTML_TABLA_TITLE) return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_titulo']); } /** * Alinea una columna entera * * @param int $columna * @param string $valor * * @access public * @deprecated */ function setColAlign($columna, $valor) { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // setCol($col, HTML_TABLA_ALIGN_*) return $this->updateColAttributes($columna,'align="'.$valor.'"'); } /** * Cambia el tamanio de una columna entera * * @param int $columna * @param string $valor * * @access public * @deprecated */ function setColWidth($columna, $valor) { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // setCol($col, HTML_TABLA_WIDTH, $val) return $this->updateColAttributes($columna,'width="'.$valor.'"'); } /** * Cambia el color de fondo de una celda * * @param int $fila * @param int $columna * @param string $valor * * @access public * @deprecated */ function setCellBgcolor($fila, $columna, $valor) { // FIXME - aca hay que llamar a la nueva funcion "no deprecated": // setCell($row, $col, HTML_TABLA_BGCOLOR, $val) return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"'); } /** * Devuelve el html de la tabla * * Devuelve el html de la tabla para que sea mostrado. * Como parametro recibe el indicador de tabla simple. * Si $simple es falso, devuelve el html comun y corriente (con 2 * tablas), si es false devuelve una tabla sola. * * @param bool $simple * * @return string Html * * @access public */ function toHtml($simple = 0) { // Agregar la tabla de fondo. if ($simple == 0) { $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']); $tmp['width'] = $this->_attrs['width']; $tabla_externa = new HTML_Table($tmp); $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']); $result = $tabla_externa->toHtml(); } else { $result = parent::toHtml(); } return $result; } /** * Cambia las propiedades de una columna. * * Cambia las propiedades de una columna. Si $attrs es un array * asociativo, se setean los atributos representados por las claves * con los valores. En este caso se ignora el tercer parametro ($val). * Si $attrs es un string, se setea el atributo descripto por $attrs * al valor $val. * * @param int $col * @param mixed $attrs * @param mixed $val * * @access public */ function setCol($col, $attrs, $val = true) { if (!is_array($attrs)) {} $attrs = array($attrs => $val); } foreach ($attrs as $attr => $val) { // El switch se puede reciclar y hacer un metodo generico... switch (strtoupper($attr)) { case 'HEADER': return $this->updateColAttributes($col, $this->_conf['atributos']['celda_cabecera']); case 'ALIGN': return $this->updateColAttributes($col,"align=\"$val\""); case 'WIDTH': return $this->updateColAttributes($col,"width=\"$val\""); default: trigger_error("No se puede setear el atributo $attr a la columna $col", E_USER_ERROR); } } } /** * Funcion que establece los atributos de una fila * * @param int $row * @param string $attrs * * @access public */ function setRow($row, $attrs, $val = true) { } /** * Funcion que establece los atributos de una celda * * @param int $row * @param int $col * @param string $attr * * @access public */ function setCell($row, $col, $attrs, $val = true) { } /** * Funcion que agrega una fila * * @param array $content * @param string $attr * * @return int $rowId * * @access public */ function addRow($content, $attrs = '', $val = true) { $this->addRow return $rowId } /** * Funcion que agrega contenido a una celda * * @param int $row * @param int $col * @param array $content * @param string $attr * * @access public */ function setCellContents($row, $col, $content, $attrs = '', $val = true) { } } ?>