]> git.llucax.com Git - mecon/ai.git/blobdiff - lib/AI/GrupoSecciones.php
Se corrige el path de los iconos.
[mecon/ai.git] / lib / AI / GrupoSecciones.php
index b842671b65423e0816401687766b4ccce587b5d9..df21dc6857b66213c1ffee75f55782ff43b00677 100644 (file)
@@ -33,6 +33,11 @@ require_once 'AI/DBTreeObject.php';
 
 require_once 'AI/Error.php';
 
+/**
+ * Archivo de configuración.
+ */
+define('AI_GRUPOSECCIONES_CONFFILE', dirname(__FILE__).'/GrupoSecciones.ini');
+
 // +X2C Class 486 :AI_GrupoSecciones
 /**
  * Grupo de secciones.
@@ -72,7 +77,7 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
     var $secciones = array();
 
     /**
-     * Antigedad (en d?s) de las noticias a mostrar.
+     * Antigüedad (en días) de las noticias a mostrar.
      *
      * @var    int $antiguedad
      * @access public
@@ -106,7 +111,7 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
      */
     function AI_GrupoSecciones($grupo = 0) // ~X2C
     {
-        parent::AI_DBTreeObject($grupo, dirname(__FILE__) . '/GrupoSecciones.ini');
+        parent::AI_DBTreeObject($grupo, AI_GRUPOSECCIONES_CONFFILE);
     }
     // -X2C
 
@@ -213,30 +218,61 @@ class AI_GrupoSecciones extends AI_DBTreeObject {
     }
     // -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.
      *
      * @param  DB $db Base de datos a usar para obtener los datos.
+     * @param  int $grupo Grupo del cual obtener las secciones.
      *
      * @return array
      * @access public
      * @static
      */
-    function getSeccionesArray($db = null) // ~X2C
+    function getSeccionesArray($db = null, $grupo = 0) // ~X2C
+    {
+        static $conf_dav, $conf_sec;
+        if (!$conf_dav or !$conf_sec) {
+            $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true);
+            $conf_dav = $conf['mecondav'];
+            $conf_sec = $conf['secciones'];
+        }
+        extract($conf_dav, EXTR_PREFIX_ALL, 'dav');
+        extract($conf_sec, EXTR_PREFIX_ALL, 'sec');
+               return $db->getAssoc("
+            SELECT d.$dav_id, d.$dav_campo 
+            FROM $dav_base.$dav_tabla as d
+            LEFT JOIN $sec_base.$sec_tabla AS s
+            ON s.$sec_campo = d.$dav_id
+            WHERE s.$sec_campo IS NULL OR s.$sec_id = $grupo
+            ORDER BY d.$dav_campo ASC");
+    }
+    // -X2C
+
+    // +X2C Operation 537
+    /**
+     * Obtiene el grupo al que pertenece una sección.
+     *
+     * @param  int $seccion Sección a buscar.
+     * @param  DB $db DB a usar.
+     *
+     * @return AI_GrupoSecciones
+     * @access public
+     * @static
+     */
+    function getGrupo($seccion, $db = null) // ~X2C
     {
-               if ($db === null) {
-                       $db =& DB::connect('mysql://mark:mark@intranet-db.mecon.ar/MEconDAV',
-                               array('persistent' => true));
-               }
-               if (DB::isError($db)) {
-                       return $db;
-               }
-               return $db->getAssoc('
-            SELECT   S.section_id, S.description
-            FROM     MEconDAV.Sections as S
-            ORDER BY description');
+        static $conf;
+        if (!$conf) {
+            $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true);
+            $conf = $conf['secciones'];
+        }
+        extract($conf);
+               return $db->getOne("
+            SELECT  $id
+            FROM    $base.$tabla
+            WHERE   $campo = " . $db->quote($seccion));
     }
     // -X2C