]> git.llucax.com Git - mecon/ai.git/blobdiff - lib/AI/GrupoSecciones.php
Se cambian los die(expr) por trigger_error(expr, E_USER_ERROR) para poder interceptar...
[mecon/ai.git] / lib / AI / GrupoSecciones.php
index a9c3839cd2f873a0453b87933bc1267778ea492e..b7dc567562f6e6a5d60ae19e04074966b1dff2eb 100644 (file)
 // $Id$
 //
 
-// +X2C includes
 require_once 'AI/DBTreeObject.php';
-// ~X2C
-
 require_once 'AI/Error.php';
 
 /**
@@ -38,7 +35,6 @@ require_once 'AI/Error.php';
  */
 define('AI_GRUPOSECCIONES_CONFFILE', dirname(__FILE__).'/GrupoSecciones.ini');
 
-// +X2C Class 486 :AI_GrupoSecciones
 /**
  * Grupo de secciones.
  *
@@ -85,7 +81,7 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
     var $antiguedad = 0;
 
     /**
-     * True si hay que mostrar los grupos hijos (?? FIXME).
+     * True si hay que mostrar los grupos hijos.
      *
      * @var    bool $mostrar_hijos
      * @access public
@@ -100,29 +96,24 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
      */
     var $habilitado = true;
 
-    // ~X2C
-
-    // +X2C Operation 495
     /**
      * @param  int $grupo ID del grupo.
      *
      * @return void
      * @access public
      */
-    function AI_GrupoSecciones($grupo = 0) // ~X2C
+    function AI_GrupoSecciones($grupo = 0)
     {
         parent::AI_DBTreeObject($grupo, AI_GRUPOSECCIONES_CONFFILE);
     }
-    // -X2C
 
-    // +X2C Operation 496
     /**
      * @param  mixed $db Base de datos o Resultado a utilizar.
      *
      * @return PEAR_Error
      * @access public
      */
-    function cargar($db) // ~X2C
+    function cargar($db)
     {
         // Obtengo campos comunes.
         $err = parent::cargar($db);
@@ -174,17 +165,16 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
         }
         return true;
     }
-    // -X2C
 
-    // +X2C Operation 497
     /**
      * @param  DB $db DB donde guardar.
-     * @param  bool $nuevo Si es true, se fuerza a guardar el Grupo de Secciones como nuevo.
+     * @param  bool $nuevo Si es true, se fuerza a guardar el Grupo de
+     * Secciones como nuevo.
      *
      * @return PEAR_Error
      * @access public
      */
-    function guardar($db, $nuevo = false) // ~X2C
+    function guardar($db, $nuevo = false)
     {
         // Guardo datos generales.
         $datos = array(
@@ -217,16 +207,14 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
         }
         return true;
     }
-    // -X2C
 
-    // +X2C Operation 498
     /**
      * @param  DB $db DB de donde borrar.
      *
      * @return PEAR_Error
      * @access public
      */
-    function borrar($db) // ~X2C
+    function borrar($db)
     {
         // Obtengo campos comunes.
         $err = parent::borrar($db);
@@ -243,12 +231,12 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
         }
         return true;
     }
-    // -X2C
 
-    // +X2C Operation 512
     /**
      * Obtiene un array con una lista de secciones.
-Sólo se obtienen las secciones que todavía no pertenecen a ningún grupo. Si se especifica un grupo, se agregan las secciones de ese grupo al <em>array</em> resultante.
+     * Sólo se obtienen las secciones que todavía no pertenecen a ningún
+     * grupo. Si se especifica un grupo, se agregan las secciones de ese grupo
+     * al <em>array</em> resultante.
      *
      * @param  DB $db Base de datos a usar para obtener los datos.
      * @param  int $grupo Grupo del cual obtener las secciones.
@@ -257,7 +245,7 @@ S
      * @access public
      * @static
      */
-    function getSeccionesArray($db = null, $grupo = 0) // ~X2C
+    function getSeccionesArray($db = null, $grupo = 0)
     {
         static $conf_dav, $conf_sec;
         if (!$conf_dav or !$conf_sec) {
@@ -276,9 +264,82 @@ S
                     OR    s.$sec_id = $grupo
                 ORDER BY  d.$dav_campo ASC");
     }
-    // -X2C
 
-    // +X2C Operation 537
+    /**
+     * 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);
+    }
+
     /**
      * Obtiene el grupo al que pertenece una sección.
      *
@@ -289,7 +350,7 @@ S
      * @access public
      * @static
      */
-    function getGrupo($seccion, $db = null) // ~X2C
+    function getGrupo($seccion, $db = null)
     {
         static $conf;
         if (!$conf) {
@@ -302,8 +363,7 @@ S
                 FROM  $base.$tabla
                 WHERE $campo = " . $db->quote($seccion));
     }
-    // -X2C
 
-} // -X2C Class :AI_GrupoSecciones
+}
 
 ?>
\ No newline at end of file