X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/84f4d19441dd0a757010a623b50cfe1b0c553f3b..6e11ec23d5aa6e7de4292bf176be4e139b416dc7:/lib/MECON/HTML/Tabla.php?ds=sidebyside diff --git a/lib/MECON/HTML/Tabla.php b/lib/MECON/HTML/Tabla.php index f764ba9..d12cacf 100644 --- a/lib/MECON/HTML/Tabla.php +++ b/lib/MECON/HTML/Tabla.php @@ -1,65 +1,69 @@ - | -// +--------------------------------------------------------------------+ -// -// $Id$ -// -// $URL$ -// $Rev$ -// $Date$ -// $Author$ + +------------------------------------------------------------------------------- +$Id$ +-----------------------------------------------------------------------------*/ 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 { - +class MECON_HTML_Tabla extends HTML_Table { + /** * Valores de Configuracion particular * - * @var array + * @var array() $conf + * @access protected */ var $_conf; /** * Atributos de las tablas. * - * @var array + * @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 $atributos Atributos diferentes a los estandares para la - * tabla + * @param mixed $atributos Atributos diferentes a los estandares para la tabla + * @param string $estilo Tipo de tabla * * @access public */ - function Tabla($attrs = null) + function MECON_HTML_Tabla($attrs = null, $estilo = 'comun') { - $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion + // Obtengo los valores particulares de configuracion. + $this->_conf = include(dirname(__FILE__) . '/Tabla/estilo_' . $estilo . '.php'); // Seteo los atributos para la tabla $this->_attrs = $this->_conf['atributos']['tabla_comun']; //Genero el objeto HTML_Table @@ -70,6 +74,9 @@ class Tabla extends HTML_Table { if (isset($attrs['width'])) { $this->_attrs['width'] = $attrs['width']; } + if (isset($attrs['align'])) { + $this->_attrs['align'] = $attrs['align']; + } if (isset($attrs['bgcolor'])) { $this->_attrs['bgcolor'] = $attrs['bgcolor']; } @@ -84,19 +91,16 @@ class Tabla extends HTML_Table { } /** - * Agrega una fila del tipo Cabecera - * - * Agrega una fila del tipo cabecera, tomando colores y demas del + * 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 + * @param array() $contenido Contenido de la fila * * @return int Identificador de Linea - * * @access public * @deprecated */ @@ -106,8 +110,6 @@ class Tabla extends HTML_Table { } /** - * 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 @@ -115,7 +117,7 @@ class Tabla extends HTML_Table { * inserta una fila en blanco. Devuelve el identificador de la * fila en donde inserto los datos. * - * @param $contenido Contenido de la fila + * @param array() $contenido Contenido de la fila * * @return int Identificador de Linea * @@ -130,9 +132,9 @@ class Tabla extends HTML_Table { /** * Modifica el atributo rowSpan a la celda pasada por parametro * - * @param int $fila - * @param int $columna - * @param int $valor + * @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 @@ -145,9 +147,9 @@ class Tabla extends HTML_Table { /** * Modifica el atributo colSpan a la celda pasada por parametro * - * @param int $fila - * @param int $columna - * @param int $valor + * @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 @@ -160,9 +162,9 @@ class Tabla extends HTML_Table { /** * Modifica el atributo aling de la celda pasada por parametro * - * @param int $fila - * @param int $columna - * @param string $valor (left, center, right...) + * @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 @@ -175,7 +177,7 @@ class Tabla extends HTML_Table { /** * Setea una columna como del tipo cabecera * - * @param int $columna + * @param int $columna Identificador de la columna que se quiere modificar * * @access public * @deprecated @@ -188,7 +190,7 @@ class Tabla extends HTML_Table { /** * Setea una columna como del tipo titulo * - * @param int $columna + * @param int $columna Identificador de la columna que se quiere modificar * * @access public * @deprecated @@ -201,8 +203,8 @@ class Tabla extends HTML_Table { /** * Alinea una columna entera * - * @param int $columna - * @param string $valor + * @param int $columna Identificador de la columna que se quiere modificar + * @param string $valor Valor * * @access public * @deprecated @@ -215,8 +217,8 @@ class Tabla extends HTML_Table { /** * Cambia el tamanio de una columna entera * - * @param int $columna - * @param string $valor + * @param int $columna Identificadore de la columna que se quiere modificar + * @param string $valor Valor * * @access public * @deprecated @@ -229,9 +231,9 @@ class Tabla extends HTML_Table { /** * Cambia el color de fondo de una celda * - * @param int $fila - * @param int $columna - * @param string $valor + * @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 @@ -249,7 +251,7 @@ class Tabla extends HTML_Table { * Si $simple es falso, devuelve el html comun y corriente (con 2 * tablas), si es false devuelve una tabla sola. * - * @param bool $simple + * @param bool $simple Tipo de tabla que se quiere recibir. * * @return string Html * @@ -257,16 +259,19 @@ class Tabla extends HTML_Table { */ function toHtml($simple = 0) { + // Agregar la tabla de fondo. - if ($simple == 0) { - $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']); - $tabla_externa = new HTML_Table(array('width' => '100%')); - $tabla_externa->setCellContents(0, 0, parent::toHtml()); - $tabla_externa->setCellAttributes(0, 0, $this->_conf['atributos']['celda_contenedora']); - $result = $tabla_externa->toHtml(); - } - else { + if ($simple) { $result = parent::toHtml(); + } else { + $contenedora = $this->_conf['atributos']['tabla_contenedora']; + $contenedora['width'] = $this->getAttribute('width'); + $contenedora['align'] = $this->getAttribute('align'); + $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; @@ -279,15 +284,15 @@ class Tabla extends HTML_Table { * asociativo, se setean los atributos representados por las claves * con los valores. * - * @param int $row - * @param int $col - * @param mixed $attrs + * @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)); + return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs, false)); } /** @@ -297,15 +302,15 @@ class Tabla extends HTML_Table { * asociativo, se setean los atributos representados por las claves * con los valores. * - * @param int $row - * @param int $col - * @param mixed $attrs + * @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)); + return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs, true)); } /** @@ -314,10 +319,10 @@ class Tabla extends HTML_Table { * Agrega una fila. El contenido es el que viene representado por * el array $content. Recibe los atributos en la variable $attrs * - * @param mixed $content - * @param mixed $attrs + * @param mixed $content Contenido + * @param mixed $attrs Atributos * - * @return int $rowId + * @return int $rowId Identificador de la fila * * @access public */ @@ -332,12 +337,13 @@ class Tabla extends HTML_Table { * Convierte un atributo HTML al string para pasar a los metodos de HTML_Table * Recibe en $attrs los atributos a modificar. * - * @param string $attrs + * @param mixed $attrs Atributos. + * @param bool $isSet Indica si hay que setear. * - * @return string + * @return array * @access private */ - function _translateAttributes($attrs) + function _translateAttributes($attrs, $isSet) { if (!$attrs) { return array(); @@ -345,9 +351,11 @@ class Tabla extends HTML_Table { if (is_string($attrs)) { $attrs = $this->_parseAttributes($attrs); } - #$rta = array(); - $rta = $this->_conf['atributos']['celda_comun']; - #$sin_estilo = true; + if ($isSet) { + $rta = $this->_conf['atributos']['celda_comun']; + } else { + $rta = array(); + } foreach ($attrs as $attr => $val) { $attr = strtolower($attr); switch ($attr) { @@ -355,7 +363,6 @@ class Tabla extends HTML_Table { case 'comun': case 'cabecera': case 'titulo': - #$sin_estilo = false; $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]); break; case 'align': @@ -369,13 +376,13 @@ class Tabla extends HTML_Table { case 'border': case 'cellspacing': case 'cellpadding': + case 'nowrap': $rta[$attr] = $val; break; case 'spacing': case 'padding': $rta["cell$attr"] = $val; break; - case 'nowrap': case 'th': $rta[$attr] = ''; break; @@ -383,13 +390,18 @@ class Tabla extends HTML_Table { trigger_error("No se permite setear el atributo $attr", E_USER_ERROR); } } - // Si no tiene estilo, agrego estilo comun. - #if ($sin_estilo) { - #$rta = $this->_conf['atributos']['celda_comun']; - #} return $rta; } + /** + * Obtiene la Cascade Style Sheet para esta tabla. + * + * @return string Path 'web' a la css. + */ + function getCSS() { + return $this->_conf['css']; + } + } ?>