2 // vim: set expandtab tabstop=4 shiftwidth=4:
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: Tue Jun 24 16:22:07 2003 |
24 // | Autor: Leandro Lucarella <llucar@mecon.gov.ar> |
25 // +--------------------------------------------------------------------+
30 require_once 'AIError.php';
32 // +X2C Class 486 :GrupoSecciones
38 class GrupoSecciones {
40 * ID del grupo de secciones.
62 * Grupos de secciones que tiene este grupo.
67 var $_hijos = array();
70 * Secciones que pertenecen a este grupo.
72 * @var array $secciones
75 var $secciones = array();
78 * Antigedad (en d?s) de las noticias a mostrar.
80 * @var int $antiguedad
86 * True si hay que mostrar los grupos hijos (?? FIXME).
88 * @var bool $mostrarHijos
91 var $mostrarHijos = false;
94 * Indica si esta habilitado.
96 * @var bool $habilitado
99 var $habilitado = true;
109 return $this->_hijos;
114 // +X2C Operation 495
116 * @param int $grupo ID del grupo.
121 function GrupoSecciones($grupo = 0)// ~X2C
123 $this->grupo = $grupo;
127 // +X2C Operation 496
129 * @param mixed $db Base de datos o Resultado a utilizar.
134 function cargar($db)// ~X2C
136 $grupo = intval($this->grupo);
137 if (is_a($db, 'db_result')) {
140 // Si no es un resultado, hago el query.
142 $result = $db->query(
145 WHERE grupo = $grupo"
147 if (DB::isError($result)) {
152 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
154 return new AIError(AIERROR_NO_RESULTADOS,
155 "No hay más resultados en la DB [grupo=$grupo]");
157 // Asigno valores al objeto.
159 $this->grupo = $grupo;
160 $this->nombre = $nombre;
161 $this->padre = $grupo_padre;
162 $this->antiguedad = $antiguedad;
163 $this->mostrarHijos = $mostrar_hijos;
164 // Obtengo secciones.
165 $secciones = $db->getCol(
167 FROM grupo_secciones_seccion
168 WHERE grupo = $grupo"
170 if (DB::isError($secciones)) {
174 $this->secciones = $secciones;
176 $this->secciones = array();
182 // +X2C Operation 497
184 * @param DB $db DB donde guardar.
189 function guardar($db)// ~X2C
191 $grupo = intval($this->grupo);
194 'grupo_padre' => intval($this->padre),
195 'nombre' => $this->nombre,
196 'habilitado' => $this->habilitado ? 1 : 0,
197 'antiguedad' => intval($this->antiguedad),
198 'mostrar_hijos' => $this->mostrar_hijos ? 1 : 0,
201 $accion = DB_AUTOQUERY_UPDATE;
202 $where = "grupo = $grupo";
204 $accion = DB_AUTOQUERY_INSERT;
205 $grupo = $db->nextId('grupo_secciones');
206 if (DB::isError($grupo)) {
209 // Asigno el nuevo id de grupo.
210 $this->grupo = $grupo;
211 $datos['grupo'] = $grupo;
213 $res = $db->autoExecute('grupo_secciones', $datos, $accion, $where);
214 if (DB::isError($res)) {
217 $res = $db->query("DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
218 if (DB::isError($res)) {
221 $prepare = $db->prepare("INSERT INTO grupo_secciones_seccion
222 (grupo, seccion) VALUES ($grupo, ?)");
223 if (DB::isError($prepare)) {
226 $res = $db->executeMultiple($prepare, $this->secciones);
227 if (DB::isError($res)) {
234 // +X2C Operation 498
236 * @param DB $db DB de donde borrar.
241 function borrar($db)// ~X2C
243 $grupo = intval($this->grupo);
246 "DELETE FROM grupo_secciones WHERE grupo = $grupo");
247 if (DB::isError($res)) {
251 "DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
252 if (DB::isError($res)) {
257 return PEAR::raiseError("No hay un grupo válido para borrar");
261 // +X2C Operation 499
263 * @param DB $db DB de donde cargar los hijos.
268 function cargarHijos($db)// ~X2C
270 $grupo = intval($this->grupo);
271 $result = $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo");
272 if (DB::isError($result)) {
275 $this->_hijos = array();
276 $hijo = new GrupoSecciones;
277 $err = $hijo->cargar($result);
278 while (!PEAR::isError($err)) {
279 $this->_hijos[] = $hijo->__clone();
280 $err = $hijo->cargar($result);
282 // Si no hay mas resultados, entonces terminó bien.
283 if (is_a($err, 'aierror')
284 and $err->getCode() == AIERROR_NO_RESULTADOS) {
287 // Si no, se devuelve el error.
292 // +X2C Operation 500
294 * @return GrupoSecciones
297 function __clone()// ~X2C
303 } // -X2C Class :GrupoSecciones