]> git.llucax.com Git - mecon/ai.git/blob - sistema/local_lib/GrupoSecciones.php
1e8e63cab7fc0bab455d97cbbb62c9300bcd1d6a
[mecon/ai.git] / sistema / local_lib / GrupoSecciones.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                      Ministerio de Economía                        |
5 // |                  AI (Administrador de Intranet)                    |
6 // +--------------------------------------------------------------------+
7 // | This file is part of AI.                                           |
8 // |                                                                    |
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.                             |
13 // |                                                                    |
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.                           |
18 // |                                                                    |
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: Tue Jun 24 16:22:07 2003                                   |
24 // | Autor:  Leandro Lucarella <llucar@mecon.gov.ar>                    |
25 // +--------------------------------------------------------------------+
26 //
27 // $Id$
28 //
29
30 // +X2C Class 414 :GrupoSecciones
31 /**
32  * Grupo de secciones.
33  *
34  * @access public
35  */
36 class GrupoSecciones {
37     /**
38      * ID del grupo de secciones.
39      *
40      * @var    int $groupo
41      * @access public
42      */
43     var $groupo = 0;
44
45     /**
46      * Nombre.
47      *
48      * @var    string $nombre
49      * @access public
50      */
51     var $nombre = '';
52
53     /**
54      * @var    int $padre
55      * @access public
56      */
57     var $padre = 0;
58
59     /**
60      * Grupos de secciones que tiene este grupo.
61      *
62      * @var    array $hijos
63      * @access protected
64      */
65     var $_hijos = array();
66
67     /**
68      * Secciones que pertenecen a este grupo.
69      *
70      * @var    array $secciones
71      * @access public
72      */
73     var $secciones = array();
74
75     /**
76      * Antigedad (en d?s) de las noticias a mostrar.
77      *
78      * @var    int $antiguedad
79      * @access public
80      */
81     var $antiguedad = 0;
82
83     /**
84      * True si hay que mostrar los grupos hijos (?? FIXME).
85      *
86      * @var    bool $mostrarHijos
87      * @access public
88      */
89     var $mostrarHijos = false;
90
91     /**
92      * Indica si esta habilitado.
93      *
94      * @var    bool $habilitado
95      * @access public
96      */
97     var $habilitado = true;
98
99     /**
100      * Gets Hijos.
101      *
102      * @return array
103      * @access public
104      */
105     function getHijos()
106     {
107         return $this->_hijos;
108     }
109
110     // ~X2C
111
112
113     // +X2C Operation 453
114     /**
115      * @param  DB &$db Base de datos a utilizar.
116      *
117      * @return bool
118      * @access public
119      */
120     function cargar(&$db)// ~X2C
121     {
122         $data = $db->getRow(
123             "SELECT *
124                 FROM grupo_secciones
125                 WHERE grupo = {$this->grupo}",
126             array(),
127             DB_FETCHMODE_ASSOC
128         );
129         if (DB::isError($data)) {
130             return $data;
131         } elseif (!$data) {
132             return PEAR::raiseError("No existe el grupo {$this->grupo} en la DB");
133         } else {
134             extract($data);
135             $this->grupo        = $grupo;
136             $this->nombre       = $nombre;
137             $this->padre        = $grupo_padre;
138             $this->antiguedad   = $antiguedad;
139             $this->mostrarHijos = $mostrar_hijos;
140             $data = $db->getCol(
141                 "SELECT seccion
142                     FROM grupo_secciones_seccion
143                     WHERE grupo = {$this->grupo}"
144             );
145             if (DB::isError($data)) {
146                 return $data;
147             } else {
148                 if ($data) {
149                     $this->secciones = $data;
150                 } else {
151                     $this->secciones = array();
152                 }
153             }
154             return true;
155         }
156     }
157     // -X2C
158
159     // +X2C Operation 454
160     /**
161      * @param  DB &$db DB donde guardar.
162      *
163      * @return bool
164      * @access public
165      */
166     function guardar(&$db)// ~X2C
167     {
168         $grupo = intval($this->grupo);
169         $where = '';
170         $datos = array(
171             'grupo_padre'   => intval($this->padre),
172             'nombre'        => $this->nombre,
173             'habilitado'    => $this->habilitado ? 1 : 0,
174             'antiguedad'    => intval($this->antiguedad),
175             'mostrar_hijos' => $this->mostrar_hijos ? 1 : 0,
176         );
177         if ($grupo) {
178             $accion = DB_AUTOQUERY_UPDATE;
179             $where  = "grupo = $grupo";
180         } else {
181             $accion = DB_AUTOQUERY_INSERT;
182             $grupo = $db->nextId('grupo_secciones');
183             $datos['grupo'] = $grupo;
184             echo "$group\n";
185         }
186         $res = $db->autoExecute('grupo_secciones', $datos, $accion, $where);
187         if (DB::isError($res)) {
188             return $res;
189         }
190         // Falta actualización de secciones.
191         $res = $db->query("DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
192         if (DB::isError($res)) {
193             return $res;
194         }
195         $prepare = $db->prepare("INSERT INTO grupo_secciones_seccion
196             (grupo, seccion) VALUES ($grupo, ?)");
197         if (DB::isError($prepare)) {
198             return $prepare;
199         }
200         $res = $db->executeMultiple($prepare, $this->secciones);
201         if (DB::isError($res)) {
202             return $res;
203         }
204         return true;
205     }
206     // -X2C
207
208     // +X2C Operation 455
209     /**
210      * @param  int $db DB de donde borrar.
211      *
212      * @return bool
213      * @access public
214      */
215     function borrar($db)// ~X2C
216     {
217         trigger_error('Not implemented!', E_USER_WARNING);
218     }
219     // -X2C
220
221     // +X2C Operation 462
222     /**
223      * @param  DB &$db DB de donde cargar los hijos.
224      *
225      * @return bool
226      * @access public
227      */
228     function cargarHijos(&$db)// ~X2C
229     {
230         trigger_error('Not implemented!', E_USER_WARNING);
231     }
232     // -X2C
233
234 } // -X2C Class :GrupoSecciones
235
236 ?>