*/
var $_attrs;
+ /**
+ * Íconos e información que va arriba de la tabla.
+ *
+ * @var array()
+ * @access private.
+ */
+ var $_cabecera = array();
+
+ /**
+ * Íconos e información que va abajo de la tabla.
+ *
+ * @var array()
+ * @access private.
+ */
+ var $_pie = array();
+
/**
* Constructor.
* Puede recibir como parametro un string con los atributos que se
*
* @access public
*/
- function MECON_HTML_Tabla($attrs = null, $estilo = 'comun')
- {
+ function MECON_HTML_Tabla($attrs = null, $estilo = 'comun') {
// Obtengo los valores particulares de configuracion.
$this->_conf = include(dirname(__FILE__) . '/Tabla/estilo_' . $estilo . '.php');
// Seteo los atributos para la tabla
* @access public
* @deprecated
*/
- function agregarFilaCabecera($contenido = '', $atributos = '')
- {
+ function agregarFilaCabecera($contenido = '', $atributos = '') {
return $this->addRow($contenido, 'cabecera');
}
* @access public
* @deprecated
*/
- function agregarFila($contenido = '')
- {
+ function agregarFila($contenido = '') {
return $this->addRow($contenido, 'comun');
}
* @access public
* @deprecated
*/
- function rowSpan($fila, $columna, $valor)
- {
+ function rowSpan($fila, $columna, $valor) {
return $this->updateCellAttributes($fila, $columna, 'rowspan="'.$valor.'"');
}
* @access public
* @deprecated
*/
- function colSpan($fila, $columna, $valor)
- {
+ function colSpan($fila, $columna, $valor) {
return $this->updateCellAttributes($fila, $columna, 'colspan="'.$valor.'"');
}
* @access public
* @deprecated
*/
- function align($fila, $columna, $valor)
- {
+ function align($fila, $columna, $valor) {
return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
}
* @access public
* @deprecated
*/
- function setColCabecera($columna)
- {
+ function setColCabecera($columna) {
return $this->updateColAttributes($columna, 'cabecera');
}
* @access public
* @deprecated
*/
- function setColTitulo($columna)
- {
+ function setColTitulo($columna) {
return $this->updateColAttributes($columna, 'titulo');
}
* @access public
* @deprecated
*/
- function setColAlign($columna, $valor)
- {
+ function setColAlign($columna, $valor) {
return $this->updateColAttributes($columna,'align="'.$valor.'"');
}
* @access public
* @deprecated
*/
- function setColWidth($columna, $valor)
- {
+ function setColWidth($columna, $valor) {
return $this->updateColAttributes($columna,'width="'.$valor.'"');
}
* @access public
* @deprecated
*/
- function setCellBgcolor($fila, $columna, $valor)
- {
+ function setCellBgcolor($fila, $columna, $valor) {
return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
}
*
* @access public
*/
- function toHtml($simple = 0)
- {
-
- // Agregar la tabla de fondo.
+ function toHtml($simple = 0) {
if ($simple) {
$result = parent::toHtml();
+ // Agregar la tabla de fondo.
} else {
$contenedora = $this->_conf['atributos']['tabla_contenedora'];
$contenedora['width'] = $this->getAttribute('width');
$this->_conf['atributos']['celda_contenedora']);
$result = $tabla_externa->toHtml();
}
-
- return $result;
+ // Si tiene pie o cabecera, crea tabla.
+ if ($this->_cabecera or $this->_pie) {
+ $tabla_externa = new HTML_Table(array('width'=>'100%','border'=>0));
+ }
+ // Si tiene cabecera, la agrega.
+ if ($this->_cabecera) {
+ $tabla_externa->addRow($this->_cabecera, array(
+ 'valign' => 'middle',
+ 'width' => '33%',
+ ));
+ $tabla_externa->updateCellAttributes(0, 0, array('align' => 'left'));
+ $tabla_externa->updateCellAttributes(0, 1, array('align' => 'center'));
+ $tabla_externa->updateCellAttributes(0, 2, array('align' => 'right'));
+ }
+ // Si tiene cabecera o pie, agrega la tabla original.
+ if ($this->_cabecera or $this->_pie) {
+ //$id = $tabla_externa->addRow($result);
+ $tabla_externa->addRow(array($result), array(
+ 'align' => 'center',
+ 'valign' => 'middle',
+ 'width' => '100%',
+ 'colspan' => '3',
+ ));
+ }
+ // Si tiene pie, lo agrega.
+ if ($this->_pie) {
+ $id = $tabla_externa->addRow($this->_pie, array(
+ 'valign' => 'middle',
+ 'width' => '33%',
+ ));
+ $tabla_externa->updateCellAttributes($id, 0, array('align' => 'left'));
+ $tabla_externa->updateCellAttributes($id, 1, array('align' => 'center'));
+ $tabla_externa->updateCellAttributes($id, 2, array('align' => 'right'));
+ }
+ return ($this->_cabecera or $this->_pie) ? $tabla_externa->toHtml() : $result;
}
/**
*
* @access public
*/
- function updateCellAttributes($row, $col, $attrs)
- {
+ function updateCellAttributes($row, $col, $attrs) {
return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs, false));
}
*
* @access public
*/
- function setCellAttributes($row, $col, $attrs)
- {
+ function setCellAttributes($row, $col, $attrs) {
return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs, true));
}
*
* @access public
*/
- function addRow($content, $attrs = 'comun')
- {
+ function addRow($content, $attrs = 'comun') {
return parent::addRow($content, $attrs);
}
* @return array
* @access private
*/
- function _translateAttributes($attrs, $isSet)
- {
+ function _translateAttributes($attrs, $isSet) {
if (!$attrs) {
return array();
}
return $this->_conf['css'];
}
+ /**
+ * Setea la cabecera.
+ *
+ * @param array $cabecera Celdas a agregar a la cabecera.
+ */
+ function setCabecera($cabecera) {
+ $this->_cabecera = $cabecera;
+ }
+
+ /**
+ * Agrega información a la cabecera de la tabla.
+ *
+ * @param mixed $cabecera Celda a agregar a la cabecera. Puede ser un string
+ * o un objeto con un método toHtml().
+ * @param string $lugar Lugar en donde poner la cabecera. Puede ser
+ * 'izquierda', 'centro' o 'derecha'.
+ */
+ function updateCabecera($cabecera, $lugar) {
+ if (!$this->_cabecera) {
+ $this->_cabecera = array(' ', ' ', ' ');
+ }
+ if ($lugar == 'izquierda') {
+ $this->_cabecera[0] = $cabecera;
+ } elseif ($lugar == 'centro') {
+ $this->_cabecera[1] = $cabecera;
+ } elseif ($lugar == 'derecha') {
+ $this->_cabecera[2] = $cabecera;
+ } else {
+ $this->raiseError('Parámetro incorrecto: lugar debe ser izquierda, centro o derecha.');
+ }
+ }
+
+ /**
+ * Setea el pie.
+ *
+ * @param array $pie Celdas a agregar al pie.
+ */
+ function setPie($pie) {
+ $this->_pie = $pie;
+ }
+
+ /**
+ * Agrega información al pie de la tabla.
+ *
+ * @param mixed $pie Celda a agregar al pie. Puede ser un string
+ * o un objeto con un método toHtml().
+ * @param string $lugar Lugar en donde poner el pie. Puede ser
+ * 'izquierda', 'centro' o 'derecha'.
+ */
+ function updatePie($pie, $lugar = 0) {
+ if (!$this->_pie) {
+ $this->_pie = array(' ', ' ', ' ');
+ }
+ if ($lugar == 'izquierda') {
+ $this->_pie[0] = $pie;
+ } elseif ($lugar == 'centro') {
+ $this->_pie[1] = $pie;
+ } elseif ($lugar == 'derecha') {
+ $this->_pie[2] = $pie;
+ } else {
+ $this->raiseError('Parámetro incorrecto: lugar debe ser izquierda, centro o derecha.');
+ }
+ }
+
}
?>