]> git.llucax.com Git - mecon/yatta.git/blob - sistema/www/archivos.php
Preparo todo para armar la rama estable.
[mecon/yatta.git] / sistema / www / archivos.php
1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
2 -------------------------------------------------------------------------------
3                              Ministerio de Economía
4                                     YATTA!
5 -------------------------------------------------------------------------------
6 This file is part of YATTA!.
7
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)
11 any later version.
12
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.
16  
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 -------------------------------------------------------------------------------
24 $Id$
25 -----------------------------------------------------------------------------*/
26
27 //Require Once {{{
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';
33 //}}}
34
35 //Actuar segun la accion, etc {{{
36 $accion = @$_REQUEST['accion'];
37 $id = @$_REQUEST['_id'];
38 if (@$id && @$accion) {
39     $ARCHIVO =& new YATTA_Archivo;
40     $ARCHIVO->id = $id;
41     $ARCHIVO->usuario = $_SESSION['usuario'];
42     $res = $ARCHIVO->buscar($DB);
43     if (PEAR::isError($res)) {
44          trigger_error('Error: ' . $res->getMessage() . "\n", E_USER_ERROR);
45     }
46     $ARCHIVO->cargar($res);
47     switch ($accion) {
48         case 'download':
49             header("Content-Disposition: attachment;
50                     filename=".$ARCHIVO->resultado);
51             header("Pragma: no-cache");
52             header("Expires: 0");
53             header("Content-Type: application");
54             header("Content-Length:
55                     ".filesize(PATH_TACHO.basename($ARCHIVO->archivo)));
56             readfile (PATH_TACHO.basename($ARCHIVO->archivo));
57             exit;
58             break;
59     case 'borrar':
60             $res = $ARCHIVO->borrar($DB);
61             if (PEAR::isError($res)) {
62                  trigger_error('Error: ' . $res->getMessage() . "\n", E_USER_ERROR);
63             }
64             header ('Location:archivos');
65             exit;
66             break;
67     }
68 }
69 //}}}
70
71 //Obtengo la lista de archivos y lo agrego a la tabla {{{
72 $ARCHIVO =& new YATTA_Archivo;
73 $ARCHIVO->usuario = $_SESSION['usuario'];
74
75 $res = $ARCHIVO->buscar($DB);
76 if (PEAR::isError($res)) {
77      trigger_error('Error: ' . $res->getMessage() . "\n", E_USER_ERROR);
78 }
79
80
81 $TABLADB = new MECON_HTML_TablaDB ('Archivos', 'width="760"');
82 $TABLADB->addRow(array(
83             'Lista de Archivos Disponibles'
84             ), 'cabecera colspan="5" align="left"');
85 $TABLADB->addRow(array(
86             'Ext', 'Sistema', 'Descripcion', 'Bajar', 'Borrar'
87             ), 'Titulo');
88
89
90 $TABLADB->addRowsData(
91             '<img src="/MECON/images/EXTENSION_%s" alt="Ext">',
92             array (array ('resultado', 'extension_callback')),
93             'prepend'
94         );
95
96 //Funcion de callback para el addRowsData de la linea anterior {{{
97 function extension_callback($resultado) {
98     return strtoupper(substr($resultado, strrpos($resultado, '.') + 1));
99 }
100 //}}}
101
102 $TABLADB->addRowsData(
103             new MECON_HTML_Link('archivos',
104                 new MECON_HTML_Image('/MECON/images/general_download.gif',
105                     'Bajar'),
106                 array ($TABLADB->getGetVarPrefix().'id' => "%s", 
107                     'accion' => 'download')
108             )
109         );
110
111 $TABLADB->addRowsData('%s',
112             array (array (array ('owner', 'id'), 'owner_callback'))
113         );
114
115 //Funcion de callback para el addRowsData de la linea anterior {{{
116 function owner_callback($owner) {
117     if ($owner['owner'] == $_SESSION['usuario']) {
118         $txt = '<a href="archivos?accion=borrar&_id='.$owner['id'].'">'.
119             '<img src="/MECON/images/general_eliminar.gif">'.
120             '</a>';
121     }
122     else {
123         $txt = '<img src="/MECON/images/general_eliminar_des.gif">';
124     }
125     return $txt;
126 }
127 //}}}
128
129 $pager = $TABLADB->addPager($res, null, 
130             new MECON_HTML_Link
131                 ('archivos', null 
132                 )
133         );
134
135 $TABLADB->addRows($pager, array ('nombre_sistema', 'descripcion'));
136 $TABLADB->addRow(array('*Recuerde que los archivos se borran a los ' 
137             . $CONF['tacho']['cantidad_dias'] .
138             ' dias de antiguedad'), 
139             'colspan="5" align="center" class="msg_rojo"'); 
140
141 $TABLADB->updateColAttributes(0,'width="4%"');
142 $TABLADB->updateColAttributes(1,'width="30%"');
143 $TABLADB->updateColAttributes(2,'width="50%"');
144 $TABLADB->updateColAttributes(3,'width="8%"');
145 $TABLADB->updateColAttributes(4,'width="8%"');
146 //}}}
147
148 //Agrego la info al marco y la muestro {{{
149 $MARCO->addStyleSheet('css/yatta.css');
150 $MARCO->addBody($TABLADB);
151 $MARCO->display();
152 //}}}
153 ?>