]> git.llucax.com Git - mecon/ai.git/commitdiff
Se agrega pantalla de carga de secciones ocultas.
authorLeandro Lucarella <llucax@gmail.com>
Fri, 7 Nov 2003 20:41:31 +0000 (20:41 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Fri, 7 Nov 2003 20:41:31 +0000 (20:41 +0000)
lib/AI/GrupoSecciones.ini
lib/AI/GrupoSecciones.php
sistema/www/secciones_ocultas.php [new file with mode: 0644]

index eae6a86088525ead3cb5a714f30f3fc5777dfcf3..42e04a3518bf1e5f9dbc8eb7902b6d985ee089bd 100644 (file)
@@ -15,9 +15,16 @@ tabla = grupo_secciones_seccion
 id    = grupo
 campo = seccion
 
 id    = grupo
 campo = seccion
 
+; Tabla de secciones ocultas.
+[ocultas]
+base  = intranet
+tabla = secciones_censuradas
+id    = seccion
+
 ; Vinculación con MEconDAV.
 [mecondav]
 base  = MEconDAV
 tabla = Sections
 id    = section_id
 campo = description
 ; Vinculación con MEconDAV.
 [mecondav]
 base  = MEconDAV
 tabla = Sections
 id    = section_id
 campo = description
+
index a9c3839cd2f873a0453b87933bc1267778ea492e..eef18103d714156ece478a4ba9075f4e7d6a24b5 100644 (file)
@@ -278,6 +278,81 @@ S
     }
     // -X2C
 
     }
     // -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.
     // +X2C Operation 537
     /**
      * Obtiene el grupo al que pertenece una sección.
diff --git a/sistema/www/secciones_ocultas.php b/sistema/www/secciones_ocultas.php
new file mode 100644 (file)
index 0000000..1c34f31
--- /dev/null
@@ -0,0 +1,98 @@
+<?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();
+// }}}
+
+?>