From 2fab0ed24549248b0df6503837e804568039e638 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Wed, 3 Sep 2003 18:29:29 +0000 Subject: [PATCH] Agrego un archivo de ejemplo completo --- code2xmi/Tabla.php | 393 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 code2xmi/Tabla.php diff --git a/code2xmi/Tabla.php b/code2xmi/Tabla.php new file mode 100644 index 0000000..f344ce1 --- /dev/null +++ b/code2xmi/Tabla.php @@ -0,0 +1,393 @@ + +------------------------------------------------------------------------------- +$Id: Tabla.php 325 2003-09-02 18:50:30Z llucar $ +-----------------------------------------------------------------------------*/ + +require_once 'HTML/Table.php'; + +/** + * Libreria para le manejo de las tablas de los sistemas de intranet. + * + */ + +class MECON_HTML_Tabla extends HTML_Table { + + /** + * Valores de Configuracion particular + * + * @var array() $conf + * @access protected + */ + var $_conf; + + /** + * Atributos de las tablas. + * + * @var array() attrs + * @access protected + */ + 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. + * Ademas puede recibir la indicacion de algun estilo en particular. + * + * @param mixed $atributos Atributos diferentes a los estandares para la tabla + * @param string $estilo Tipo de tabla + * + * @access public + */ + function MECON_HTML_Tabla($attrs = null, $estilo = 'comun') + { + $this->_conf = include 'MECON/HTML/Tabla/estilo_'.$estilo.'.php'; // Obtengo los valores particulares de configuracion + // Seteo los atributos para la tabla + $this->_attrs = $this->_conf['atributos']['tabla_comun']; + //Genero el objeto HTML_Table + if (is_string($attrs)) { + $attrs = $this->_parseAttributes($attrs); + } + if (is_array($attrs)) { + if (isset($attrs['width'])) { + $this->_attrs['width'] = $attrs['width']; + } + if (isset($attrs['bgcolor'])) { + $this->_attrs['bgcolor'] = $attrs['bgcolor']; + } + if (isset($attrs['cellspacing'])) { + $this->_attrs['cellspacing'] = $attrs['cellspacing']; + } + if (isset($attrs['cellpadding'])) { + $this->_attrs['cellpadding'] = $attrs['cellpadding']; + } + } + $this->HTML_Table($this->_attrs); + } + + /** + * 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 array() $contenido Contenido de la fila + * + * @return int Identificador de Linea + * @access public + * @deprecated + */ + function agregarFilaCabecera($contenido = '', $atributos = '') + { + return $this->addRow($contenido, 'cabecera'); + } + + /** + * 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 array() $contenido Contenido de la fila + * + * @return int Identificador de Linea + * + * @access public + * @deprecated + */ + function agregarFila($contenido = '') + { + return $this->addRow($contenido, 'comun'); + } + + /** + * Modifica el atributo rowSpan a la celda pasada por parametro + * + * @param int $fila Identificador de la fila que se quiere modificar + * @param int $columna Identificador de la columna que se quiere modificar + * @param int $valor Atributo a modificar + * + * @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 Identificador de la fila que se quiere modificar + * @param int $columna Identificador de la columna que se quiere modificar + * @param int $valor Atributo a modificar + * + * @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 Identificador de la fila que se quiere modificar + * @param int $columna Identificador de la columna que se quiere modificar + * @param string $valor Atributo a modificar + * + * @access public + * @deprecated + */ + function align($fila, $columna, $valor) + { + return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"'); + } + + /** + * Setea una columna como del tipo cabecera + * + * @param int $columna Identificador de la columna que se quiere modificar + * + * @access public + * @deprecated + */ + function setColCabecera($columna) + { + return $this->updateColAttributes($columna, 'cabecera'); + } + + /** + * Setea una columna como del tipo titulo + * + * @param int $columna Identificador de la columna que se quiere modificar + * + * @access public + * @deprecated + */ + function setColTitulo($columna) + { + return $this->updateColAttributes($columna, 'titulo'); + } + + /** + * Alinea una columna entera + * + * @param int $columna Identificador de la columna que se quiere modificar + * @param string $valor Valor + * + * @access public + * @deprecated + */ + function setColAlign($columna, $valor) + { + return $this->updateColAttributes($columna,'align="'.$valor.'"'); + } + + /** + * Cambia el tamanio de una columna entera + * + * @param int $columna Identificadore de la columna que se quiere modificar + * @param string $valor Valor + * + * @access public + * @deprecated + */ + function setColWidth($columna, $valor) + { + return $this->updateColAttributes($columna,'width="'.$valor.'"'); + } + + /** + * Cambia el color de fondo de una celda + * + * @param int $fila Identificador de la fila que se quiere modificar + * @param int $columna Identificador de la columna que se quiere modificar + * @param string $valor Atributo a modificar + * + * @access public + * @deprecated + */ + function setCellBgcolor($fila, $columna, $valor) + { + 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 Tipo de tabla que se quiere recibir. + * + * @return string Html + * + * @access public + */ + function toHtml($simple = 0) + { + // Agregar la tabla de fondo. + if ($simple) { + $result = parent::toHtml(); + } else { + $contenedora = $this->_conf['atributos']['tabla_contenedora']; + $contenedora['width'] = $this->getAttribute('width'); + $this->updateAttributes(array('width' => '100%')); + $tabla_externa = new HTML_Table($contenedora); + $tabla_externa->addRow(array(parent::toHtml()), + $this->_conf['atributos']['celda_contenedora']); + $result = $tabla_externa->toHtml(); + } + + return $result; + } + + /** + * Cambia las propiedades de una celda + * + * Cambia las propiedades de una celda. Si $attrs es un array + * asociativo, se setean los atributos representados por las claves + * con los valores. + * + * @param int $row Identificador de la fila que se quiere modificar + * @param int $col Identificador de la columna que se quiere modificar + * @param mixed $attrs Atributo a modificar + * + * @access public + */ + function updateCellAttributes($row, $col, $attrs) + { + return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs, false)); + } + + /** + * Establece las propiedades de una celda + * + * Establece las propiedades de una celda. Si $attrs es un array + * asociativo, se setean los atributos representados por las claves + * con los valores. + * + * @param int $row Identificador de la fila que se quiere modificar + * @param int $col Identificador de la columna que se quiere modificar + * @param mixed $attrs Atributo a modificar + * + * @access public + */ + function setCellAttributes($row, $col, $attrs) + { + return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs, true)); + } + + /** + * Agrega una fila + * + * Agrega una fila. El contenido es el que viene representado por + * el array $content. Recibe los atributos en la variable $attrs + * + * @param mixed $content Contenido + * @param mixed $attrs Atributos + * + * @return int $rowId Identificador de la fila + * + * @access public + */ + function addRow($content, $attrs = 'comun') + { + return parent::addRow($content, $attrs); + } + + /** + * Convierte un atributo a string + * + * Convierte un atributo HTML al string para pasar a los metodos de HTML_Table + * Recibe en $attrs los atributos a modificar. + * + * @param mixed $attrs Atributos. + * @param bool $isSet Indica si hay que setear. + * + * @return array + * @access private + */ + function _translateAttributes($attrs, $isSet) + { + if (!$attrs) { + return array(); + } + if (is_string($attrs)) { + $attrs = $this->_parseAttributes($attrs); + } + if ($isSet) { + $rta = $this->_conf['atributos']['celda_comun']; + } else { + $rta = array(); + } + foreach ($attrs as $attr => $val) { + $attr = strtolower($attr); + switch ($attr) { + // Estilos de celda + case 'comun': + case 'cabecera': + case 'titulo': + $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]); + break; + case 'align': + case 'valign': + case 'width': + case 'height': + case 'rowspan': + case 'colspan': + case 'bgcolor': + case 'class': + case 'border': + case 'cellspacing': + case 'cellpadding': + case 'nowrap': + $rta[$attr] = $val; + break; + case 'spacing': + case 'padding': + $rta["cell$attr"] = $val; + break; + case 'th': + $rta[$attr] = ''; + break; + default: + trigger_error("No se permite setear el atributo $attr", E_USER_ERROR); + } + } + return $rta; + } + +} + +?> -- 2.43.0