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
$id = intval($this->grupo);
extract($this->conf['secciones'], EXTR_PREFIX_ALL, 'cnf');
$secciones = $db->getCol(
- "SELECT $cnf_campo
- FROM $cnf_base.$cnf_tabla
+ "SELECT $cnf_campo
+ FROM $cnf_base.$cnf_tabla
WHERE $cnf_id = $id"
);
+ //Busco los hijos si corresponde
+ //Agregado por gmeray
+ if($this->mostrar_hijos)
+ {
+ //hijos
+ $secciones = array_merge($secciones,
+ $db->getCol(
+ "SELECT GSS.$cnf_campo
+ FROM $cnf_base.$cnf_tabla GSS, $cnf_base.grupo_secciones GS
+ WHERE GSS.$cnf_id = GS.grupo
+ AND GS.grupo_padre = $id"
+ )
+ );
+ //nietos
+ $secciones = array_merge($secciones,
+ $db->getCol(
+ "SELECT GSS.$cnf_campo
+ FROM $cnf_base.$cnf_tabla GSS, $cnf_base.grupo_secciones GS, $cnf_base.grupo_secciones GS2
+ WHERE GSS.$cnf_id = GS.grupo
+ AND GS.grupo_padre = GS2.grupo
+ AND GS2.grupo_padre = $id"
+ )
+ );
+ //Si hace falta agreguen los bisnietos.
+ }
+ //Fin Agregado
+
if (DB::isError($secciones)) {
return $secciones;
}
// +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, $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
+
+ /**
+ * Obtiene un array con una lista de todas las secciones.
*
* @param DB $db Base de datos a usar para obtener los datos.
*
* @access public
* @static
*/
- function getSeccionesArray($db = null) // ~X2C
+ 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.
+ *
+ * @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
+ {
+ static $conf;
+ if (!$conf) {
+ $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true);
+ $conf = $conf['secciones'];
+ }
extract($conf);
- return $db->getAssoc("
- SELECT $id, $campo
- FROM $base.$tabla
- ORDER BY $campo ASC");
+ return $db->getOne(
+ "SELECT $id
+ FROM $base.$tabla
+ WHERE $campo = " . $db->quote($seccion));
}
// -X2C