//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(
+ '<img src="/MECON/images/EXTENSION_%s" alt="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(
- '<b>Espacio Utilizado: </b>',
- (@$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 = '<a href="archivos?accion=borrar&_id='.$owner['id'].'">'.
+ '<img src="/MECON/images/general_eliminar.gif">'.
+ '</a>';
+ }
+ else {
+ $txt = '<img src="/MECON/images/general_eliminar_des.gif">';
+ }
+ 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('<BR>');
-$MARCO->addBody($TABLA_2);
$MARCO->addStyleSheet('css/yatta.css');
+$MARCO->addBody($TABLADB);
$MARCO->display();
//}}}
-
?>