1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
2 -------------------------------------------------------------------------------
5 -------------------------------------------------------------------------------
6 This file is part of YATTA!.
8 YATTA! is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
13 YATTA! is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA 02111-1307 USA
20 -------------------------------------------------------------------------------
21 Creado: jue nov 27 18:58:19 ART 2003
22 Autor: Martin Marrese <mmarre@mecon.gov.ar>
23 -------------------------------------------------------------------------------
25 -----------------------------------------------------------------------------*/
28 require_once 'HTML/Table.php';
29 require_once 'MECON/HTML/TablaDB.php';
30 require_once 'MECON/HTML/Image.php';
31 require_once 'MECON/HTML/Link.php';
32 require_once 'YATTA/Archivo.php';
35 //TODO Definir la cuota en algun lado (Kb)
38 //Actuar segun la accion, etc {{{
39 $accion = @$_REQUEST['accion'];
40 $id = @$_REQUEST['_id'];
41 if (@$id && @$accion) {
42 $ARCHIVO =& new YATTA_Archivo;
44 $ARCHIVO->usuario = $_SESSION['usuario'];
45 $res = $ARCHIVO->buscar($DB);
46 if (PEAR::isError($res)) {
47 die('Error: ' . $res->getMessage() . "\n");
49 $ARCHIVO->cargar($res);
52 header("Content-Disposition: attachment;
53 filename=".$ARCHIVO->resultado);
54 header("Pragma: no-cache");
56 header("Content-Type: application");
57 header("Content-Length: ".filesize($ARCHIVO->path.$ARCHIVO->archivo));
58 readfile ($ARCHIVO->path.$ARCHIVO->archivo);
62 $ARCHIVO->borrar($DB);
63 //Capturar el posible error
64 header ('Location:archivos');
70 //Obtengo la lista de archivos y lo agrego a la tabla {{{
71 $ARCHIVO =& new YATTA_Archivo;
72 $ARCHIVO->usuario = $_SESSION['usuario'];
74 $res = $ARCHIVO->buscar($DB);
75 if (PEAR::isError($res)) {
76 die('Error: ' . $res->getMessage() . "\n");
80 $TABLADB = new MECON_HTML_TablaDB ('Archivos');
81 $TABLADB->addRow(array(
82 'Lista de Archivos Disponibles'
83 ), 'cabecera colspan="5" align="left"');
84 $TABLADB->addRow(array(
85 'Ext', 'Sistema', 'Descripcion', 'Bajar', 'Borrar'
89 $TABLADB->addRowsData(
90 '<img src="/MECON/images/EXTENSION_%s" alt="Ext">',
91 array (array ('resultado', 'extension_callback')),
95 //Funcion de callback para el addRowsData de la linea anterior {{{
96 function extension_callback($resultado) {
97 return strtoupper(substr($resultado, strrpos($resultado, '.') + 1));
101 //@TODO Hacer un addRowsData que agregue el tamanio del archivo (posiblemente
102 //con una funcion callback)
104 $TABLADB->addRowsData(
105 new MECON_HTML_Link('archivos',
106 new MECON_HTML_Image('/MECON/images/general_download.gif',
108 array ($TABLADB->getGetVarPrefix().'id' => "%s",
109 'accion' => 'download')
113 $TABLADB->addRowsData('%s',
114 array (array (array ('owner', 'id'), 'owner_callback'))
117 //Funcion de callback para el addRowsData de la linea anterior {{{
118 function owner_callback($owner) {
119 if ($owner['owner'] == $_SESSION['usuario']) {
120 $txt = '<a href="archivos?accion=borrar&_id='.$owner['id'].'">'.
121 '<img src="/MECON/images/general_eliminar.gif">'.
125 $txt = '<img src="/MECON/images/general_eliminar_des.gif">';
132 //$TABLADB->addRowsIcon('borrar', array ('id'), new MECON_HTML_Link ('archivos', '', array
133 // ('accion' => 'borrar')));
135 $pager = $TABLADB->addPager($res, null,
141 $TABLADB->addRows($pager, array ('nombre_sistema', 'descripcion'));
142 $TABLADB->addRow(array('*Recuerde que los archivos se borran a los 7 dias
144 'colspan="5" align="center" class="msg_rojo"');
146 $TABLADB->updateColAttributes(0,'width="4%"');
147 $TABLADB->updateColAttributes(1,'width="30%"');
148 $TABLADB->updateColAttributes(2,'width="50%"');
149 $TABLADB->updateColAttributes(3,'width="8%"');
150 $TABLADB->updateColAttributes(4,'width="8%"');
153 //Agrego la info al marco y la muestro {{{
154 $MARCO->addStyleSheet('css/yatta.css');
155 $MARCO->addBody($TABLADB);