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.
}
-
+
+
/**
- * 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
- */
- 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
- */
- 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
- */
- 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
- */
- 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
- */
- 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
- */
- 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']);
}
/**
- * Alinea una columna entera
- *
- * @param int $columna
- * @param strin $valor
- *
- * @access public
- */
- function setColAlign ($columna, $valor)
+ * 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 color de fondo de una celda
- *
- * @param int $fila
- * @param int $columna
- * @param strin $valor
- *
- * @access public
- */
- function setCellBgcolor ($fila, $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)
+ {
+ // 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();
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)
+ {
+
+ }
+
}
?>