-------------------------------------------------------------------------------
$Id$
-----------------------------------------------------------------------------*/
//Require Once {{{
require_once 'HTML/Table.php';
require_once 'MECON/HTML/TablaDB.php';
require_once 'MECON/HTML/Image.php';
require_once 'MECON/HTML/Link.php';
require_once 'YATTA/Archivo.php';
//}}}
//TODO Definir la cuota en algun lado (Kb)
$cuota = 2048;
//Actuar segun la accion, etc {{{
$accion = @$_REQUEST['accion'];
$id = @$_REQUEST['_id'];
if (@$id && @$accion) {
$ARCHIVO =& new YATTA_Archivo;
$ARCHIVO->id = $id;
$ARCHIVO->usuario = $_SESSION['usuario'];
$res = $ARCHIVO->buscar($DB);
if (PEAR::isError($res)) {
die('Error: ' . $res->getMessage() . "\n");
}
$ARCHIVO->cargar($res);
switch ($accion) {
case 'download':
header("Content-Disposition: attachment;
filename=".$ARCHIVO->resultado);
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Type: application");
header("Content-Length: ".filesize($ARCHIVO->path.$ARCHIVO->archivo));
readfile ($ARCHIVO->path.$ARCHIVO->archivo);
exit;
break;
case 'borrar':
$ARCHIVO->borrar($DB);
//TODO Capturar el posible error
header ('Location:archivos');
break;
}
}
//}}}
//Obtengo la lista de archivos y lo agrego a la tabla {{{
$ARCHIVO =& new YATTA_Archivo;
$ARCHIVO->usuario = $_SESSION['usuario'];
$res = $ARCHIVO->buscar($DB);
if (PEAR::isError($res)) {
die('Error: ' . $res->getMessage() . "\n");
}
$TABLADB = new MECON_HTML_TablaDB ('Archivos');
$TABLADB->addRow(array(
'Lista de Archivos Disponibles'
), 'cabecera colspan="5" align="left"');
$TABLADB->addRow(array(
'Ext', 'Sistema', 'Descripcion', 'Bajar', 'Borrar'
), 'Titulo');
$TABLADB->addRowsData(
'',
array (array ('resultado', 'extension_callback')),
'prepend'
);
//Funcion de callback para el addRowsData de la linea anterior {{{
function extension_callback($resultado) {
return strtoupper(substr($resultado, strrpos($resultado, '.') + 1));
}
//}}}
//@TODO Hacer un addRowsData que agregue el tamanio del archivo (posiblemente
//con una funcion callback)
$TABLADB->addRowsData(
new MECON_HTML_Link('archivos',
new MECON_HTML_Image('/MECON/images/general_download.gif',
'Bajar'),
array ($TABLADB->getGetVarPrefix().'id' => "%s",
'accion' => 'download')
)
);
$TABLADB->addRowsData('%s',
array (array (array ('owner', 'id'), 'owner_callback'))
);
//Funcion de callback para el addRowsData de la linea anterior {{{
function owner_callback($owner) {
if ($owner['owner'] == $_SESSION['usuario']) {
$txt = ''.
''.
'';
}
else {
$txt = '';
}
return $txt;
}
//}}}
//$TABLADB->addRowsIcon('borrar', array ('id'), new MECON_HTML_Link ('archivos', '', array
// ('accion' => 'borrar')));
$pager = $TABLADB->addPager($res, null,
new MECON_HTML_Link
('archivos', null
)
);
$TABLADB->addRows($pager, array ('nombre_sistema', 'descripcion'));
$TABLADB->addRow(array('*Recuerde que los archivos se borran a los 7 dias
de antiguedad'),
'colspan="5" align="center" class="msg_rojo"');
$TABLADB->updateColAttributes(0,'width="4%"');
$TABLADB->updateColAttributes(1,'width="30%"');
$TABLADB->updateColAttributes(2,'width="50%"');
$TABLADB->updateColAttributes(3,'width="8%"');
$TABLADB->updateColAttributes(4,'width="8%"');
//}}}
//Agrego la info al marco y la muestro {{{
$MARCO->addStyleSheet('css/yatta.css');
$MARCO->addBody($TABLADB);
$MARCO->display();
//}}}
?>