From: Leandro Lucarella Date: Tue, 3 Jun 2003 21:31:04 +0000 (+0000) Subject: Algunas modificaciones para implementar la nueva API. X-Git-Tag: svn_import~510 X-Git-Url: https://git.llucax.com/mecon/meconlib.git/commitdiff_plain/fe66781225705f79b259aa3648b789fc73c75118?ds=sidebyside Algunas modificaciones para implementar la nueva API. --- diff --git a/HTML/php/Tabla.php b/HTML/php/Tabla.php index 9b91821..a635c42 100644 --- a/HTML/php/Tabla.php +++ b/HTML/php/Tabla.php @@ -21,71 +21,64 @@ require_once 'HTML/Table.php'; /** -* Manejo de tablas. -* -* Libreria para le manejo de las tablas de los sistemas de intranet. -* -* @version $Rev$ -* @author $Author$ -*/ + * 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 - */ + * Valores de Configuracion particular + * + * @var array + */ var $_conf; - - /** - * Objeto tabla que voy a utilizar - * - * @var Object HTML_Table - */ - var $_tabla; /** * Atributos de las tablas. * * @var array */ - var $_atribTabla; - + 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 ($atributos = '') + * 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->_atribTabla = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']); + $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->_atribTabla['width'] = $tmp['width']; + $this->_attrs['width'] = $tmp['width']; } if (isset($tmp['bgcolor'])) { - $this->_atribTabla['bgcolor'] = $tmp['bgcolor']; + $this->_attrs['bgcolor'] = $tmp['bgcolor']; } if (isset($tmp['cellspacing'])) { - $this->_atribTabla['cellspacing'] = $tmp['cellspacing']; + $this->_attrs['cellspacing'] = $tmp['cellspacing']; } if (isset($tmp['cellpadding'])) { - $this->_atribTabla['cellpadding'] = $tmp['cellpadding']; + $this->_attrs['cellpadding'] = $tmp['cellpadding']; } } - $this->HTML_Table($this->_atribTabla); + $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. @@ -93,184 +86,200 @@ class Tabla extends HTML_Table { /** - * 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 = '') + * 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 = '') + * 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) + * 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) + * 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) + * 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) + * 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) + * 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) + + /** + * 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) + * 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) + * 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 doble es 0, devuelve el html comun y corriente, si es - * distinto de 0 devuelve una tabla sola - * - * @param int $doble - * - * @return string Html - * - * @access public - */ - function toHtml ($doble = 0) + * 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 ($doble == 0 ) { + if ($simple == 0) { $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']); - $tmp['width'] = $this->_atribTabla['width']; + $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(); @@ -283,73 +292,94 @@ class Tabla extends HTML_Table { } /** - * Funcion que establece los atributos de una columna - * - * @param int $col - * @param string $attr - * - * @access public - */ - function setColAttributes ($col, $attr) + * 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 $attr - * - * @access public - */ - function setRowAttributes ($row, $attr) + * 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 setCellAttributes ($row, $col, $attr) + * 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, $attr = null) + * 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, $attr = null) + * 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) { }