------------------------------------------------------------------------------- $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); //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( 'Ext', 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(); //}}} ?>