2 // vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
3 // +--------------------------------------------------------------------+
4 // | Ministerio de Economía |
5 // | AI (Administrador de Intranet) |
6 // +--------------------------------------------------------------------+
7 // | This file is part of AI. |
9 // | AI is free software; you can redistribute it and/or modify |
10 // | it under the terms of the GNU General Public License as published |
11 // | by the Free Software Foundation; either version 2 of the License, |
12 // | or (at your option) any later version. |
14 // | AI is distributed in the hope that it will be useful, but |
15 // | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 // | General Public License for more details. |
19 // | You should have received a copy of the GNU General Public License |
20 // | along with Hooks; if not, write to the Free Software Foundation, |
21 // | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 // +--------------------------------------------------------------------+
23 // | Creado: vie jun 27 17:08:18 ART 2003 |
24 // | Autor: Leandro Lucarella <llucar@mecon.gov.ar> |
25 // +--------------------------------------------------------------------+
30 // Requires generales. {{{
31 require_once 'MECON/HTML/Arbol/ArbolDB.php';
32 require_once 'AIForm.php';
35 // Averiguo si estoy administrando algún tipo de objeto. {{{
37 if (@$_SERVER['PATH_INFO']) {
38 $tmp = ltrim($_SERVER['PATH_INFO'], '/');
39 if ($tmp == 'grupo') {
41 $clase = 'GrupoSecciones';
42 $tabla = 'grupo_secciones';
43 } elseif ($tmp == 'servicio') {
47 } elseif ($tmp == 'sistema') {
51 } else { // No hay un objeto válido para administrar.
52 header('Location: '.$_SERVER['SCRIPT_NAME']);
57 // Si tiene una clase, estamos editando algo. {{{
59 // Creo el árbol con los servicios. {{{
65 'prepend_link' => $tipo . '?accion='.MODIFICACION.'&id='
67 if ($tipo == 'grupo' or $tipo == 'servicio') {
68 $dbdata['nombre'] = 'nombre';
69 $dbdata['id_padre'] = $tipo . '_padre';
71 $arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
74 // Creo un objeto y seteo su id. {{{
75 require_once "$clase.php";
77 $obj->$tipo = @$_REQUEST['id'];
80 // Creo formulario. {{{
84 // Verifico que la acción sea válida. {{{
85 switch(@$_REQUEST['accion']) {
88 $accion = $_REQUEST['accion'];
95 // Verifico si ya se envio el formulario. {{{
96 $botones = $form->getSubmitValue('botones');
97 if ($boton = @join('', array_keys($botones))) {
98 $boton = $boton . '_' . strtolower($botones[$boton]);
101 case 'aceptar_agregar':
104 case 'modificar_borrar':
105 // Viene de modificar, hay que confirmar primero.
107 case 'aceptar_borrar':
109 $obj->$tipo = $form->getSubmitValue($tipo);
111 case 'borrar_cancelar':
112 // Indico que viene de un formulario cancelado.
114 case 'aceptar_modificar':
115 $accion = MODIFICACION;
116 $obj->$tipo = $form->getSubmitValue($tipo);
121 // Inicio el formulario, cargando datos de ser necesario. {{{
122 if ($accion & (BAJA | MODIFICACION)) {
123 $err =& $obj->cargar($DB);
124 if (PEAR::isError($err)) {
125 die($err->getMessage());
127 $form->iniciar($obj, $accion);
130 $form->iniciar($obj);
134 // Freezo de ser necesario. {{{
140 // Me fijo si se cargo un formulalrio y si es válido. {{{
141 if ($form->validate()) {
144 $form->llenarObjeto($obj);
145 $err =& $obj->guardar($DB);
146 if (PEAR::isError($err)) {
147 die($err->getMessage());
149 header(sprintf('Location: %s?accion=%d&id=%d',
150 $tipo, MODIFICACION, $obj->$tipo));
155 if (!@$a_confirmar) {
156 $form->llenarObjeto($obj);
157 $err =& $obj->borrar($DB);
158 if (PEAR::isError($err)) {
159 die($err->getMessage());
161 header("Location: $tipo");
166 case MODIFICACION: // {{{
168 $form->llenarObjeto($obj);
169 $err =& $obj->guardar($DB);
170 if (PEAR::isError($err)) {
171 die($err->getMessage());
173 header(sprintf('Location: %s?accion=%d&id=%d',
174 $tipo, MODIFICACION, $obj->$tipo));
183 // Agrego al cuerpo de la página las cosas que voy a dibujar. {{{
184 $LAYOUT->setCellContents(0, 0, $arbol);
185 $LAYOUT->setCellContents(0, 2, $form);
186 $MARCO->addBody($LAYOUT);
190 // No se está editando nada, agrego al cuerpo de la página la pantalla de entrada {{{
192 require_once 'HTML/Image.php';
193 $MARCO->setEspacios(false);
194 $MARCO->addBody(new HTML_Image('images/home', 'Adminitrador de Intranet'));