}
// -X2C
+ /**
+ * Obtiene un array con una lista de todas las secciones.
+ *
+ * @param DB $db Base de datos a usar para obtener los datos.
+ *
+ * @return array
+ * @access public
+ * @static
+ */
+ function getAllSeccionesArray($db = null)
+ {
+ static $conf;
+ if (!$conf) {
+ $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true);
+ $conf = $conf['mecondav'];
+ }
+ extract($conf, EXTR_PREFIX_ALL, 'dav');
+ return $db->getAssoc(
+ "SELECT d.$dav_id, d.$dav_campo
+ FROM $dav_base.$dav_tabla as d
+ ORDER BY d.$dav_campo ASC");
+ }
+
+ /**
+ * Obtiene un array con una lista de las secciones ocultas.
+ *
+ * @param DB $db Base de datos a usar para obtener los datos.
+ *
+ * @return array
+ * @access public
+ * @static
+ */
+ function getSeccionesOcultasArray($db = null)
+ {
+ static $conf;
+ if (!$conf) {
+ $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true);
+ $conf = $conf['ocultas'];
+ }
+ extract($conf, EXTR_PREFIX_ALL, 'ocu');
+ return $db->getCol("SELECT d.$ocu_id FROM $ocu_base.$ocu_tabla as d");
+ }
+
+ /**
+ * Establece las secciones ocultas.
+ *
+ * @param DB $db Base de datos a usar para grabar los datos.
+ *
+ * @return Cantidad de secciones insertadas o PEAR_Error.
+ * @access public
+ * @static
+ */
+ function setSeccionesOcultas($db = null, $secciones)
+ {
+ static $conf;
+ if (!$conf) {
+ $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true);
+ $conf = $conf['ocultas'];
+ }
+ extract($conf, EXTR_PREFIX_ALL, 'ocu');
+ $res = $db->query("DELETE FROM $ocu_base.$ocu_tabla");
+ if (DB::isError($res)) {
+ return $res;
+ }
+ foreach ($secciones as $seccion) {
+ $res = $db->query(
+ "INSERT INTO $ocu_base.$ocu_tabla VALUES ("
+ . $db->quote($seccion) . ")");
+ if (DB::isError($res)) {
+ return $res;
+ }
+ }
+ return count($secciones);
+ }
+
// +X2C Operation 537
/**
* Obtiene el grupo al que pertenece una sección.
--- /dev/null
+<?php
+// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
+// +--------------------------------------------------------------------+
+// | Ministerio de Economía |
+// | AI (Administrador de Intranet) |
+// +--------------------------------------------------------------------+
+// | This file is part of AI. |
+// | |
+// | AI is free software; you can redistribute it and/or modify |
+// | it under the terms of the GNU General Public License as published |
+// | by the Free Software Foundation; either version 2 of the License, |
+// | or (at your option) any later version. |
+// | |
+// | AI is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with Hooks; if not, write to the Free Software Foundation, |
+// | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
+// +--------------------------------------------------------------------+
+// | Creado: vie jun 27 17:08:18 ART 2003 |
+// | Autor: Leandro Lucarella <llucar@mecon.gov.ar> |
+// +--------------------------------------------------------------------+
+//
+// $Id$
+//
+
+// Requires {{{
+require_once 'MECON/general.php';
+prepend_include_path('/var/www/sistemas/ai/sistema/local_lib');
+require_once 'permisos.php';
+require_once 'AI/GrupoSecciones.php';
+require_once 'MECON/HTML/QuickForm.php';
+//require_once 'MECON/HTML/Error.php';
+// }}}
+
+// Si no está logueado, se redirige a la Intranet. {{{
+if (!@$_SESSION['usuario']) {
+ header('Location: /sistemas/intranet/login?redirect='
+ . urlencode($_SERVER['REQUEST_URI']));
+}
+// }}}
+
+// Debug. {{{
+require_once 'PEAR.php';
+#PEAR::setErrorHandling(PEAR_ERROR_TRIGGER);
+PEAR::setErrorHandling(PEAR_ERROR_RETURN);
+// }}}
+
+// Creo la base de datos. {{{
+require_once 'AI/DB.php';
+$db =& AI_DB::connect('../conf/DB.ini');
+if (DB::isError($db)) {
+ die($db->getMessage());
+}
+// }}}
+
+// Creo el objeto de permisos y chequeo que tenga permiso para administrar noticias para seguir. {{{
+require_once 'SAMURAI/Perm.php';
+$perm = new SAMURAI_Perm($_SESSION['usuario'], AI_PERM, $db);
+$perm->chequear(AI_PERM_NOTICIAS);
+// }}}
+
+// Creo el Marco. {{{
+require_once 'MECON/Marco.php';
+$marco = new MECON_Marco('../conf/Marco.php', $perm);
+// }}}
+
+// Creo formulario. {{{
+$form =& new MECON_HTML_QuickForm('', 'post', $_SERVER['PHP_SELF']);
+$form->renderer->tabla->updateAttributes(array('width' => '400'));
+$form->addElement('header','cabecera', 'Secciones Ocultas');
+$f_secciones =& $form->addElement('select', 'secciones', 'Secciones',
+ AI_GrupoSecciones::getAllSeccionesArray($db),
+ array('multiple' => 'multiple', 'size' => 8));
+$form_btn_actualizar =& MECON_HTML_QuickForm::createElement('submit', 'actualizar' , 'Actualizar');
+$form->addGroup(array(&$form_btn_actualizar), 'botones');
+$marco->addBody($form);
+// }}}
+
+// Si los datos del formulario son válidos, hago el ABM. {{{
+if ($form->validate()) {
+ $secciones = $form->getSubmitValue('secciones');
+ $res = AI_GrupoSecciones::setSeccionesOcultas($db, $secciones);
+}
+// }}}
+
+// Cargo formulario con los datos actualizados. {{{
+$f_secciones->setSelected(AI_GrupoSecciones::getSeccionesOcultasArray($db));
+// }}}
+
+// Muestro la página. {{{
+$marco->display();
+// }}}
+
+?>