X-Git-Url: https://git.llucax.com/mecon/yatta.git/blobdiff_plain/ace0fa29b691637080934d43d7dbc084c5eb8a86..04fbfb4dc44bc6be937345880455d63478f1e62d:/sistema/www/archivos.php diff --git a/sistema/www/archivos.php b/sistema/www/archivos.php index 695cccb..1c74c20 100644 --- a/sistema/www/archivos.php +++ b/sistema/www/archivos.php @@ -26,130 +26,133 @@ $Id$ //Require Once {{{ require_once 'HTML/Table.php'; -require_once 'MECON/HTML/Tabla.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 Este path es el del tacho segun el usuario, etc. -$path = '/var/www/sistemas/yatta/test/'. $_SESSION['usuario']; - //TODO Definir la cuota en algun lado (Kb) $cuota = 2048; -//TODO Agregar class para manejar los colores y fuentes - //Actuar segun la accion, etc {{{ $accion = @$_REQUEST['accion']; -$archivo = @$_REQUEST['archivo']; -if (@$accion && @$archivo) { - $archivo2 = $path.'/'.$archivo; +$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); + header("Content-Disposition: attachment; + filename=".$ARCHIVO->resultado); header("Pragma: no-cache"); header("Expires: 0"); header("Content-Type: application"); - header("Content-Length: ".filesize($archivo2)); - readfile ($archivo2); + header("Content-Length: ".filesize($ARCHIVO->path.$ARCHIVO->archivo)); + readfile ($ARCHIVO->path.$ARCHIVO->archivo); exit; break; case 'borrar': - system ('rm '.$archivo2); + $ARCHIVO->borrar($DB); + //TODO Capturar el posible error header ('Location:archivos'); break; } } //}}} -//Obtengo la Lista de Archivos del Directorio en Cuestion {{{ -if ($dh = @opendir($path)) { - $ocupado =0; - while (($file = readdir($dh)) !== false) { - //FIXME Sacar el .svn cuando se pase a produccion - if ($file != '.' && $file != '..' && $file != '.svn') { - $archivos[$file]['ext'] = strtoupper(substr($file, strrpos($file, '.') + 1)); - $archivos[$file]['nombre'] = $file; - $archivos[$file]['tam'] = round((filesize($path.'/'.$file) / 1024),2); - $archivos[$file]['porc'] = round((filesize($path.'/'.$file) / 1024) * 100 / - $cuota, 2); - - $ocupado += $archivos[$file]['porc']; - } - } - closedir($dh); +//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"); } -//}}} -//Tabla de Archivos {{{ -$TABLA_2 =& new MECON_HTML_Tabla (); -$TABLA_2->addRow(array( + +$TABLADB = new MECON_HTML_TablaDB ('Archivos'); +$TABLADB->addRow(array( 'Lista de Archivos Disponibles' - ), 'cabecera colspan="6" align="left"'); -$TABLA_2->addRow(array( - 'Ext', 'Nombre', 'Tam. Kb', 'Tam. %', 'Bajar', 'Borrar' + ), 'cabecera colspan="5" align="left"'); +$TABLADB->addRow(array( + 'Ext', 'Sistema', 'Descripcion', 'Bajar', 'Borrar' ), 'Titulo'); -if (@$archivos) { - asort($archivos); - foreach ($archivos as $arch) { - $TABLA_2->addRow(array( - new MECON_HTML_Image ('/MECON/images/EXTENSION_'.$arch['ext'].'.gif', $arch['ext']), - $arch['nombre'], - $arch['tam'].' Kb', - $arch['porc'].' %', - new MECON_HTML_Link ('archivos', new - MECON_HTML_Image('/MECON/images/general_download.gif', 'Bajar'), - array ( - 'accion'=>'download', - 'archivo'=>$arch['nombre'], - )), - new MECON_HTML_Link ('archivos', new MECON_HTML_Image - ('/MECON/images/general_eliminar.gif', 'Eliminar'), - array ( - 'accion'=>'borrar', - 'archivo'=>$arch['nombre']) - , 'OnClick="return confirm(\'Esta Seguro Bestia?\')"')) - ); - } - $TABLA_2->addRow(array( - '*Recuerde que los archivos se borran a los 7 dias - de antiguedad' - ), 'colspan="6" align="center" class="msg_rojo"'); -} -else { - $TABLA_2->addRow(array('No se encontraron archivos'), 'colspan="6" - class="msg_rojo"'); + + +$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)); } -$TABLA_2->updateColAttributes(0,'width="5%"'); -$TABLA_2->updateColAttributes(2,'width="10%"'); -$TABLA_2->updateColAttributes(3,'width="10%"'); -$TABLA_2->updateColAttributes(4,'width="8%"'); -$TABLA_2->updateColAttributes(5,'width="8%"'); //}}} -//Tabla de Espacio Disponible {{{ -$TABLA_1 =& new HTML_Table ('width="100%"'); -$TABLA_1->addRow(array( - 'Espacio Utilizado: ', - (@$ocupado) ? $ocupado.' %' : '0'.' %' - )); -$TABLA_1->updateColAttributes(0,'width="95%" align="right"'); -$TABLA_1->updateColAttributes(1,'align="center"'); -if (@$ocupado > 80) { - $TABLA_1->updateCellAttributes(0,1,'class="msg_rojo"'); -} -else { - $TABLA_1->updateCellAttributes(0,1,'class="msg_negro"'); +//@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; } -$TABLA_1->updateCellAttributes(0,0,'class="msg_negro"'); +//}}} + + +//$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->addBody($TABLA_1); -$MARCO->addBody('
'); -$MARCO->addBody($TABLA_2); $MARCO->addStyleSheet('css/yatta.css'); +$MARCO->addBody($TABLADB); $MARCO->display(); //}}} - ?>