-<?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
-// +--------------------------------------------------------------------+
-// | HTML - TABLE |
-// +--------------------------------------------------------------------+
-// | Libreria para la estandarizacion de los elementos html de los |
-// | de la Intranet |
-// | Ministerio de EconomÃa |
-// +--------------------------------------------------------------------+
-// | Creado: fri mar 21 ART 2003 |
-// | Autor: Martin Marrese <mmarre@mecon.gov.ar> |
-// +--------------------------------------------------------------------+
-//
-// $Id$
-//
-// $URL$
-// $Rev$
-// $Date$
-// $Author$
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-------------------------------------------------------------------------------
+ Ministerio de EconomÃa
+ meconlib
+-------------------------------------------------------------------------------
+This file is part of meconlib.
+
+meconlib is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+meconlib is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: fri mar 21 ART 2003
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$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
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'];
}
}
/**
- * 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
*/
}
/**
- * 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
* 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
*
/**
* 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
/**
* 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
/**
* 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
/**
* Setea una columna como del tipo cabecera
*
- * @param int $columna
+ * @param int $columna Identificador de la columna que se quiere modificar
*
* @access public
* @deprecated
/**
* Setea una columna como del tipo titulo
*
- * @param int $columna
+ * @param int $columna Identificador de la columna que se quiere modificar
*
* @access public
* @deprecated
/**
* 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
/**
* 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
/**
* 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
* 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
*
*/
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());
- $tabla_externa->setCellAttributes(0, 0, $this->_conf['atributos']['celda_comun']);
- $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;
* 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));
}
/**
* 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));
}
/**
* 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
*/
* 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();
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) {
case 'comun':
case 'cabecera':
case 'titulo':
- #$sin_estilo = false;
$rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]);
break;
case 'align':
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;
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'];
+ }
+
}
?>