2 // vim: set binary 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 // +--------------------------------------------------------------------+
31 require_once 'AI/DBTreeObject.php';
34 require_once 'AI/Error.php';
36 // +X2C Class 486 :AI_GrupoSecciones
43 class AI_GrupoSecciones extends AI_DBTreeObject {
45 * ID del grupo de secciones.
61 * @var int $grupo_padre
67 * Secciones que pertenecen a este grupo.
69 * @var array $secciones
72 var $secciones = array();
75 * Antigedad (en d?s) de las noticias a mostrar.
77 * @var int $antiguedad
83 * True si hay que mostrar los grupos hijos (?? FIXME).
85 * @var bool $mostrar_hijos
88 var $mostrar_hijos = false;
91 * Indica si esta habilitado.
93 * @var bool $habilitado
96 var $habilitado = true;
100 // +X2C Operation 495
102 * @param int $grupo ID del grupo.
107 function AI_GrupoSecciones($grupo = 0) // ~X2C
109 parent::AI_DBTreeObject($grupo, dirname(__FILE__) . '/GrupoSecciones.ini');
113 // +X2C Operation 496
115 * @param mixed $db Base de datos o Resultado a utilizar.
120 function cargar($db) // ~X2C
122 // Obtengo campos comunes.
123 $err = parent::cargar($db);
124 if (PEAR::isError($err)) {
127 // Obtengo secciones.
128 $id = intval($this->grupo);
129 extract($this->conf['secciones'], EXTR_PREFIX_ALL, 'cnf');
130 $secciones = $db->getCol(
132 FROM $cnf_base.$cnf_tabla
135 if (DB::isError($secciones)) {
139 $this->secciones = $secciones;
141 $this->secciones = array();
147 // +X2C Operation 497
149 * @param DB $db DB donde guardar.
150 * @param bool $nuevo Si es true, se fuerza a guardar el Grupo de Secciones como nuevo.
155 function guardar($db, $nuevo = false) // ~X2C
157 // Guardo datos generales.
159 'grupo_padre' => intval($this->grupo_padre),
160 'nombre' => $this->nombre,
161 'habilitado' => $this->habilitado ? 1 : 0,
162 'antiguedad' => intval($this->antiguedad),
163 'mostrar_hijos' => $this->mostrar_hijos ? 1 : 0,
165 $err = parent::guardar($db, $datos, $nuevo);
166 if (PEAR::isError($err)) {
169 // Guardo datos de secciones.
170 $id_field = $this->conf['id'];
171 $id = intval($this->$id_field);
172 extract($this->conf['secciones'], EXTR_PREFIX_ALL, 'cnf');
173 $res = $db->query("DELETE FROM $cnf_base.$cnf_tabla WHERE $cnf_id = $id");
174 if (DB::isError($res)) {
177 $prepare = $db->prepare("INSERT INTO $cnf_base.$cnf_tabla
178 ($cnf_id, $cnf_campo) VALUES ($id, ?)");
179 if (DB::isError($prepare)) {
182 $res = $db->executeMultiple($prepare, $this->secciones);
183 if (DB::isError($res)) {
190 // +X2C Operation 498
192 * @param DB $db DB de donde borrar.
197 function borrar($db) // ~X2C
199 // Obtengo campos comunes.
200 $err = parent::borrar($db);
201 if (PEAR::isError($err)) {
204 // Obtengo secciones.
205 $id = intval($this->grupo);
206 extract($this->conf['secciones'], EXTR_PREFIX_ALL, 'cnf');
208 "DELETE FROM $cnf_base.$cnf_tabla WHERE $cnf_id = $id");
209 if (DB::isError($res)) {
217 // +X2C Operation 512
219 * Obtiene un array con una lista de secciones.
221 * @param DB $db Base de datos a usar para obtener los datos.
227 function getSeccionesArray($db = null) // ~X2C
230 $db =& DB::connect('mysql://mark:mark@intranet-db.mecon.ar/MEconDAV',
231 array('persistent' => true));
233 if (DB::isError($db)) {
236 return $db->getAssoc('
237 SELECT S.section_id, S.description
238 FROM MEconDAV.Sections as S
239 ORDER BY description');
243 } // -X2C Class :AI_GrupoSecciones