require_once 'HTML/Table.php';
require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/Link.php';
/**
* Libreria para le manejo de las tablas de los sistemas de intranet.
$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'));
- }
+ $this->_addSpecialRow($this->_cabecera, $tabla_externa);
// Si tiene cabecera o pie, agrega la tabla original.
if ($this->_cabecera or $this->_pie) {
//$id = $tabla_externa->addRow($result);
));
}
// Si tiene pie, lo agrega.
- if ($this->_pie) {
- $id = $tabla_externa->addRow($this->_pie, array(
+ $this->_addSpecialRow($this->_pie, $tabla_externa);
+ return ($this->_cabecera or $this->_pie) ? $tabla_externa->toHtml() : $result;
+ }
+
+ function _addSpecialRow($array, &$tabla) {
+ if ($array) {
+ $row = array();
+ foreach ($array as $key => $val) {
+ $row[$key] = $val ? $val : ' ';
+ }
+ $id = $tabla->addRow($row, array(
'valign' => 'middle',
- 'width' => '33%',
+ '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'));
+ // Si no hay celda central, hace colspan.
+ if ($array[0] and !$array[1]) {
+ $tabla->updateCellAttributes($id, 0, array(
+ 'colspan' => 2,
+ 'width' => '67%'));
+ /* } XXX se complica hacer el colspan para atras:
+ elseif ($array[2] and !$array[1]) {
+ $tabla->updateCellAttributes($id, 1, array(
+ 'colspan' => 2,
+ 'width' => '67%')); */
+ }
+ $tabla->updateCellAttributes($id, 0, array('align' => 'left'));
+ $tabla->updateCellAttributes($id, 1, array('align' => 'center'));
+ $tabla->updateCellAttributes($id, 2, array('align' => 'right'));
}
- return ($this->_cabecera or $this->_pie) ? $tabla_externa->toHtml() : $result;
}
/**
case 'comun':
case 'cabecera':
case 'titulo':
- $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]);
+ $rta = array_merge($rta,
+ $this->_conf['atributos']["celda_$attr"]);
+ $rta[$attr] = $attr;
break;
case 'align':
case 'valign':
case 'th':
$rta[$attr] = '';
break;
+ case 'clara': //Toma los mismos parametros que titulo pero en el pdf no se repite
+ $rta = array_merge($rta,
+ $this->_conf['atributos']["celda_titulo"]);
+ $rta[$attr] = $attr;
+ break;
+ case 'oscura': //Toma los mismos parametros que cabecera pero en el pdf no se repite
+ $rta = array_merge($rta,
+ $this->_conf['atributos']["celda_cabecera"]);
+ $rta[$attr] = $attr;
+ break;
default:
trigger_error("No se permite setear el atributo $attr", E_USER_ERROR);
}
* Setea la cabecera.
* Ejemplo:
* @code
- * $tabla->setCabecera(array('Hola', ' ', 'mundo!'));
+ * $tabla->setCabecera(array('Hola', '', 'mundo!'));
* @endcode
*
* @param array $cabecera Array de 3 elementos, que son la celda izquierda,
*/
function updateCabecera($cabecera, $lugar) {
if (!$this->_cabecera) {
- $this->_cabecera = array(' ', ' ', ' ');
+ $this->_cabecera = array('', '', '');
}
if ($lugar == 'izquierda') {
$this->_cabecera[0] = $cabecera;
*/
function updatePie($pie, $lugar) {
if (!$this->_pie) {
- $this->_pie = array(' ', ' ', ' ');
+ $this->_pie = array('', '', '');
}
if ($lugar == 'izquierda') {
$this->_pie[0] = $pie;
* @endcode
*
* @param string $id Identificador del link predefinido. Puede ser 'volver',
- * 'nuevo', 'nuevos', 'anterior' y 'siguiente'.
+ * 'nuevo', 'nuevos', 'buscar', 'anterior' y 'siguiente'.
* @param MECON_HTML_Link $link Link a usar. Si no tiene contenidos, se pone
* uno por defecto. Si es null, se pone como
* link la página actual.
$link->addContents($img);
$this->updateCabecera($link, 'derecha');
break;
+ case 'buscar':
+ $img = new MECON_HTML_Image('/MECON/images/general_lupa', 'Q');
+ // Si no tiene titulo, le pone titulo por defecto.
+ if (!$link->getContents()) {
+ $link->setContents('Buscar');
+ }
+ $link->addContents($img);
+ $this->updateCabecera($link, 'derecha');
+ break;
case 'siguiente':
$img = new MECON_HTML_Image('/MECON/images/general_posterior', '-<');
// Si no tiene titulo, le pone titulo por defecto.