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. |
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 // +X2C Class 414 :GrupoSecciones
36 class GrupoSecciones {
38 * ID del grupo de secciones.
60 * Grupos de secciones que tiene este grupo.
65 var $_hijos = array();
68 * Secciones que pertenecen a este grupo.
70 * @var array $secciones
73 var $secciones = array();
76 * Antigedad (en d?s) de las noticias a mostrar.
78 * @var int $antiguedad
84 * True si hay que mostrar los grupos hijos (?? FIXME).
86 * @var bool $mostrarHijos
89 var $mostrarHijos = false;
92 * Indica si esta habilitado.
94 * @var bool $habilitado
97 var $habilitado = true;
107 return $this->_hijos;
112 // +X2C Operation 464
114 * @param int $grupo ID del grupo.
119 function GrupoSecciones($grupo = 0)// ~X2C
121 $this->grupo = $grupo;
126 // +X2C Operation 453
128 * @param mixed &$db Base de datos o Resultado a utilizar.
133 function cargar(&$db)// ~X2C
135 $grupo = intval($this->grupo);
136 if (is_a($db, 'db_result')) {
139 // Si no es un resultado, hago el query.
142 $result =& $dbh->query(
145 WHERE grupo = $grupo"
147 if (DB::isError($result)) {
152 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
154 return PEAR::raiseError("No hay más resultados en la DB [grupo=$grupo]", CODIGO DE ERROR);
156 // Asigno valores al objeto.
158 $this->grupo = $grupo;
159 $this->nombre = $nombre;
160 $this->padre = $grupo_padre;
161 $this->antiguedad = $antiguedad;
162 $this->mostrarHijos = $mostrar_hijos;
163 // Obtengo secciones.
164 $secciones =& $dbh->getCol(
166 FROM grupo_secciones_seccion
167 WHERE grupo = $grupo"
169 if (DB::isError($secciones)) {
173 $this->secciones = $secciones;
175 $this->secciones = array();
181 // +X2C Operation 454
183 * @param DB &$db DB donde guardar.
188 function guardar(&$db)// ~X2C
190 $grupo = intval($this->grupo);
193 'grupo_padre' => intval($this->padre),
194 'nombre' => $this->nombre,
195 'habilitado' => $this->habilitado ? 1 : 0,
196 'antiguedad' => intval($this->antiguedad),
197 'mostrar_hijos' => $this->mostrar_hijos ? 1 : 0,
200 $accion = DB_AUTOQUERY_UPDATE;
201 $where = "grupo = $grupo";
203 $accion = DB_AUTOQUERY_INSERT;
204 $grupo = $db->nextId('grupo_secciones');
205 if (DB::isError($grupo)) {
208 // Asigno el nuevo id de grupo.
209 $this->grupo = $grupo;
210 $datos['grupo'] = $grupo;
212 $res =& $db->autoExecute('grupo_secciones', $datos, $accion, $where);
213 if (DB::isError($res)) {
216 $res =& $db->query("DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
217 if (DB::isError($res)) {
220 $prepare =& $db->prepare("INSERT INTO grupo_secciones_seccion
221 (grupo, seccion) VALUES ($grupo, ?)");
222 if (DB::isError($prepare)) {
225 $res =& $db->executeMultiple($prepare, $this->secciones);
226 if (DB::isError($res)) {
233 // +X2C Operation 455
235 * @param int $db DB de donde borrar.
240 function borrar($db)// ~X2C
242 $grupo = intval($this->grupo);
245 "DELETE FROM grupo_secciones WHERE grupo = $grupo");
246 if (DB::isError($res)) {
250 "DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
251 if (DB::isError($res)) {
256 return PEAR::raiseError("No hay un grupo valido para borrar");
260 // +X2C Operation 462
262 * @param DB &$db DB de donde cargar los hijos.
267 function cargarHijos(&$db)// ~X2C
269 $grupo = intval($this->grupo);
271 $result =& $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo");
272 if (DB::isError($result)) {
275 $hijo =& new GrupoSecciones;
276 $err =& $hijo->cargar($result);
277 while (!PEAR::isError($err)) {
279 $err = $hijo->cargar($result);
281 if (!$err->getCode() == CODIGO DE ERROR DE NO HAY MAS ELEMENTOS) {
288 } // -X2C Class :GrupoSecciones