protected function cargaVariables($modulo)
 {
     // Variables de entorno del modulo
     $variables = new CpanVariables('Mod', 'Env', $modulo);
     $this->varEnvMod = $variables->getValores();
     $this->values['varEnvMod'] = $this->varEnvMod;
     if (count($this->values['varEnvMod']) == 0) {
         $this->values['errores'][] = "No se han definido las variables de entorno del módulo '{$modulo}'";
     }
 }
Example #2
0
 /**
  * Devuelve un array con los módulos que están sujetos a gestión
  * de etiquetas, según el valor de la variable de entorno del proyecto 'modulosConEtiquetas'
  * 
  * El array tendrá n elementos (tantos como módulos), y cada elemento es:
  * 
  * - Id => el id del módulo
  * - Value => el título del módulo (no el nombre)
  * 
  * @return array 
  */
 public function getModulosConEtiquetas()
 {
     $modulos = array();
     $variables = new CpanVariables('Pro', 'Env');
     $modulosConEtiquetas = explode(",", trim($variables->getNode('modulosConEtiquetas')));
     unset($variables);
     $objetoModulo = new CpanModulos();
     foreach ($modulosConEtiquetas as $moduloConEtiquetas) {
         $modulo = $objetoModulo->find('NombreModulo', trim($moduloConEtiquetas));
         $modulos[] = array('Id' => $modulo->getId(), 'Value' => $modulo->getTitulo());
     }
     unset($objetoModulo);
     unset($modulo);
     return $modulos;
 }
Example #3
0
 public function actualiza($objeto)
 {
     $entidad = $objeto->getClassName();
     $idEntidad = $objeto->getPrimaryKeyValue();
     $this->queryDelete("Entity='{$entidad}' and IdEntity='{$idEntidad}'");
     if ($objeto->getPublish()->getIDTipo() == '1' and $objeto->getDeleted()->getIDTipo() == '0') {
         $variables = new CpanVariables("Mod", "Env", $entidad);
         foreach ($variables->getNode("columns") as $columna => $atributos) {
             if ($atributos['searchable']) {
                 $texto = $objeto->{"get{$columna}"}();
                 if ($texto) {
                     $search = new CpanSearch();
                     $search->setTexto($texto);
                     $search->setEntity($entidad);
                     $search->setIdEntity($idEntidad);
                     $search->setPublish($objeto->getPublish()->getIDTipo());
                     $search->setChecked($objeto->getChecked()->getIDTipo());
                     $search->setPrivacy($objeto->getPrivacy()->getIDTipo());
                     $search->create();
                 }
             }
         }
     }
 }
Example #4
0
        $search->actualiza($objeto);
        unset($search);
    }
}
unset($objeto);
// Actualiza la columna en el resto de idiomas
if ($_SESSION['idiomas']['actual'] == 0) {
    // Recorro los idiomas adicionales
    foreach ($_SESSION['idiomas']['disponibles'] as $key => $value) {
        if ($key > 0) {
            $_SESSION['idiomas']['actual'] = $key;
            $objeto = new $entidad($idEntidad);
            $objeto->{"set{$columna}"}($v['valor']);
            if ($objeto->save() && ($columna == 'Publish' || $columna == 'Privacy')) {
                // Actualiza la url amigable
                $urlAmigable = CpanUrlAmigables::sincroniza($objeto);
                // Actualiza la tabla de búsquedas
                $variables = new CpanVariables("Mod", "Env", $entidad);
                if ($variables->getNode('searchable')) {
                    $search = new CpanSearch();
                    $search->actualiza($objeto);
                    unset($search);
                }
            }
            unset($objeto);
        }
    }
    $_SESSION['idiomas']['actual'] = 0;
}
$tag = "";
echo $tag;
    include "../bin/yaml/lib/sfYaml.php";
} else {
    echo "NO EXISTE LA CLASE PARA LEER ARCHIVOS YAML";
    exit;
}
// ---------------------------------------------------------------
// CARGO LOS PARAMETROS DE CONFIGURACION.
// ---------------------------------------------------------------
$config = sfYaml::load('../config/config.yml');
$app = $config['config']['app'];
// ---------------------------------------------------------------
// ACTIVAR EL AUTOLOADER DE CLASES Y FICHEROS A INCLUIR
// ---------------------------------------------------------------
define("APP_PATH", $_SERVER['DOCUMENT_ROOT'] . $app['path'] . "/");
include_once "../" . $app['framework'] . "Autoloader.class.php";
Autoloader::setCacheFilePath(APP_PATH . 'tmp/class_path_cache.txt');
Autoloader::excludeFolderNamesMatchingRegex('/^CVS|\\..*$/');
Autoloader::setClassPaths(array('../' . $app['framework'], '../entities/', '../lib/'));
spl_autoload_register(array('Autoloader', 'loadClass'));
$valores = explode("_", $_GET['entidadColumnaPropiedad']);
$modulo = $valores[0];
$columna = $valores[1];
$propiedad = $valores[2];
$var = new CpanVariables('Mod', 'Env', $modulo);
$atributosColumna = $var->getColumn($columna);
$atributosColumna[$propiedad] = $_GET['valor'];
$var->setColumn($columna, $atributosColumna);
$var->save();
unset($var);
$tag = "";
echo $tag;
 /**
  * Pone las variables de entorno del proyecto/app/modulo en curso
  * relativas al control de visibilidad de sus variables web
  *
  * Respeta los valores que hubiera en el yml del proyecto respecto
  * a las variables web definidas.
  *
  * @return void
  */
 private function ponVisibilidad()
 {
     $variables = new CpanVariables($this->_objeto['ambito'], 'Env', $this->_objeto['nombre']);
     $valoresActuales = $variables->getNode('showVarWeb');
     $valores['globales'] = array();
     $valores['especificas'] = array();
     if (is_array($this->_objeto['datos']['globales'])) {
         foreach ($this->_objeto['datos']['globales'] as $key => $value) {
             if (!isset($valoresActuales['globales'][$key])) {
                 $valores['globales'][$key] = 0;
             } else {
                 $valores['globales'][$key] = $valoresActuales['globales'][$key];
             }
         }
     }
     if (is_array($this->_objeto['datos']['especificas'])) {
         foreach ($this->_objeto['datos']['especificas'] as $key => $value) {
             if (!isset($valoresActuales['especificas'][$key])) {
                 $valores['especificas'][$key] = 0;
             } else {
                 $valores['especificas'][$key] = $valoresActuales['especificas'][$key];
             }
         }
     }
     $variables->setNode('showVarWeb', $valores);
     $variables->save();
     unset($variables);
 }
 /**
  * Edita, actualiza o borrar un registro
  *
  * Viene siempre por POST
  * Actualiza o Borrar según el valor de $this->request['accion']
  *
  * @return array con el template y valores a renderizar
  */
 public function editAction()
 {
     switch ($this->request['accion']) {
         case 'G':
             //GUARDAR DATOS
             if ($this->values['permisos']['permisosModulo']['UP']) {
                 $variables = new CpanVariables('Mod', 'Env', $this->request[$this->entity]['Entity']);
                 $this->varEnvMod = $variables->getValores();
                 unset($variables);
                 $this->values['varEnvMod'] = $this->varEnvMod;
                 $id = $this->request[$this->entity]['Id'];
                 $entidad = $this->request[$this->entity]['Entity'];
                 $idEntidad = $this->request[$this->entity]['IdEntity'];
                 $tipo = $this->request[$this->entity]['Type'];
                 $title = $this->request[$this->entity]['Title'];
                 $slug = $this->request[$this->entity]['Name'];
                 $showCaption = $this->request[$this->entity]['ShowCaption'];
                 $publicar = $this->request[$this->entity]['Publish'];
                 $documento = $this->request['FILES']['documento'];
                 $documento['maxWidth'] = $this->varEnvMod['galery']['maxWidthImage'];
                 $documento['maxHeight'] = $this->varEnvMod['galery']['maxHeightImage'];
                 $documento['modoRecortar'] = $this->request['modoRecortar'];
                 $rules = $this->getRules($this->request[$this->entity]['Type']);
                 // Para que deje actualizar aunque estemos en el límite del
                 // número máximo de documentos
                 if ($rules['numMaxDocs'] > 0) {
                     $rules['numMaxDocs']++;
                 }
                 $doc = new CpanDocs($id);
                 $doc->setTitle($title);
                 $doc->setName($slug);
                 $doc->setShowCaption($showCaption);
                 $doc->setPublish($publicar);
                 if ($documento['name'] != '') {
                     $doc->setArrayDoc($documento);
                 }
                 $doc->setIsThumbnail(0);
                 if ($doc->valida($rules)) {
                     $ok = $doc->actualiza();
                     // Subir Miniatura
                     if ($ok and $this->varEnvMod['galery']['generateThumbnail'] == '1') {
                         $thumbNail = $doc->getThumbNail();
                         $thumbNail->setTitle($title);
                         $thumbNail->setName($slug);
                         $thumbNail->setShowCaption($showCaption);
                         $thumbNail->setPublish($publicar);
                         $thumbNail->setIsThumbnail(1);
                         if ($documento['name'] != '') {
                             $documento['maxWidth'] = $this->varEnvMod['galery']['widthThumbnail'];
                             $documento['maxHeight'] = $this->varEnvMod['galery']['heightThumbnail'];
                             $thumbNail->setArrayDoc($documento);
                         }
                         if ($thumbNail->valida($rules)) {
                             $ok = $thumbNail->actualiza();
                         }
                         unset($thumbNail);
                     }
                 }
                 $this->values['errores'] = $doc->getErrores();
                 $this->values['alertas'] = $doc->getAlertas();
                 unset($doc);
                 return $this->listPopupAction($entidad, $idEntidad, $tipo, $this->request['formato']);
             } else {
                 return array('template' => '_global/forbiden.html.twig');
             }
             break;
         case 'B':
             //BORRAR DATOS
             if ($this->values['permisos']['permisosModulo']['DE']) {
                 $id = $this->request[$this->entity]['Id'];
                 $entidad = $this->request[$this->entity]['Entity'];
                 $idEntidad = $this->request[$this->entity]['IdEntity'];
                 $tipo = $this->request[$this->entity]['Type'];
                 $datos = new CpanDocs($id);
                 if ($datos->erase()) {
                     // Borro los eventuales hijos del documento ( los thumbnails)
                     $thumbNail = new CpanDocs();
                     $rows = $thumbNail->cargaCondicion('Id', "BelongsTo='{$id}'");
                     foreach ($rows as $row) {
                         $thumbNail = new CpanDocs($row['Id']);
                         $thumbNail->erase();
                     }
                     unset($thumbNail);
                     //$this->values['datos'] = $datos;
                     $this->values['errores'] = $datos->getErrores();
                 }
                 unset($datos);
                 return $this->listPopupAction($entidad, $idEntidad, $tipo, $this->request['formato']);
             } else {
                 return array('template' => '_global/forbiden.html.twig');
             }
             break;
     }
 }
 /**
  * Edita las variables de entorno de un nodo
  *
  * @return array Array template, values
  */
 public function EditNodeAction()
 {
     if ($_SESSION['usuarioPortal']['IdPerfil'] == '1') {
         switch ($this->request['METHOD']) {
             case 'GET':
                 $tipo = $this->request['3'];
                 $ambito = $this->request['2'];
                 $nombre = $this->request['4'];
                 $columna = $this->request['5'];
                 $titulo = "Variables {$this->request['3']} de '{$columna}'";
                 $variables = new CpanVariables($ambito, $tipo, $nombre);
                 $variablesColumna = $variables->getColumn($columna);
                 unset($variables);
                 $archivoConfig = new Form($nombre);
                 $columnasConfig = $archivoConfig->getNode('columns');
                 unset($archivoConfig);
                 $datos = $this->ponAtributos($variablesColumna, $columnasConfig[$columna]);
                 $this->values['titulo'] = $titulo;
                 $this->values['tipo'] = $tipo;
                 $this->values['ambito'] = $ambito;
                 $this->values['nombre'] = $nombre;
                 $this->values['columna'] = $columna;
                 $this->values['d'] = $datos;
                 $template = $this->entity . '/formPlantillaVariables.html.twig';
                 break;
             case 'POST':
                 $tipo = $this->request['tipo'];
                 $ambito = $this->request['ambito'];
                 $nombre = $this->request['nombre'];
                 $columna = $this->request['columna'];
                 $titulo = "Variables {$tipo} de '{$columna}'";
                 $variables = new CpanVariables($ambito, $tipo, $nombre);
                 $variables->setColumn($columna, $this->request['d']);
                 $variables->save();
                 $this->values['titulo'] = $titulo;
                 $this->values['tipo'] = $tipo;
                 $this->values['ambito'] = $ambito;
                 $this->values['nombre'] = $nombre;
                 $this->values['columna'] = $columna;
                 $this->values['errores'] = $variables->getErrores();
                 $archivoConfig = new Form($nombre);
                 $columnasConfig = $archivoConfig->getNode('columns');
                 unset($archivoConfig);
                 $datos = $this->ponAtributos($variables->getColumn($columna), $columnasConfig[$columna]);
                 $this->values['d'] = $datos;
                 unset($variables);
                 $template = $this->entity . '/formPlantillaVariables.html.twig';
                 break;
         }
     } else {
         $template = '_global/forbiden.html.twig';
     }
     return array('template' => $template, 'values' => $this->values);
 }
 /**
  * Carga en la sesión las variables de entorno y web del proyecto
  */
 protected function cargaVariables()
 {
     // Variables de entorno del proyecto
     if (!isset($_SESSION['VARIABLES']['EnvPro'])) {
         $variables = new CpanVariables('Pro', 'Env');
         $this->varEnvPro = $variables->getValores();
         $_SESSION['VARIABLES']['EnvPro'] = $this->varEnvPro;
     } else {
         $this->varEnvPro = $_SESSION['VARIABLES']['EnvPro'];
     }
     $this->values['varEnvPro'] = $this->varEnvPro;
     // Variables web del proyecto
     if (!isset($_SESSION['VARIABLES']['WebPro'])) {
         $variables = new CpanVariables('Pro', 'Web');
         $this->varWebPro = $variables->getValores();
         $_SESSION['VARIABLES']['WebPro'] = $this->varWebPro;
     } else {
         $this->varWebPro = $_SESSION['VARIABLES']['WebPro'];
     }
     $this->values['varWebPro'] = $this->varWebPro;
     unset($variables);
 }
Example #10
0
 /**
  * Valida el objeto
  *
  * También compruebo que el titulo y el nombre no están vacios.
  * 
  * Si el título está vacío, pongo el valor de la columna indicado en la variable de entorno 'fieldGeneratorUrlFriendly'
  * Si el nombre está vacío, pongo el valor del título
  *
  * @param array $rules
  * @return boolean TRUE si el objeto completo pasa la validación
  */
 public function valida(array $rules)
 {
     if ($this->validaArchivo($rules)) {
         // Validar que se haya indicado título y nombre, en su defecto
         // se toma el indicado por la variable de entorno
         if ($this->Title == '' or $this->Name == '') {
             $variables = new CpanVariables('Mod', 'Env', $this->getEntity());
             $varEnv = $variables->getValores();
             unset($variables);
             $datos = new $this->Entity($this->IdEntity);
             $columnaSlug = $varEnv['fieldGeneratorUrlFriendly'];
             $slug = $datos->{"get{$columnaSlug}"}();
             unset($datos);
             if ($this->Title == '') {
                 $this->Title = $slug;
             }
             if ($this->Name == '') {
                 $this->Name = $this->Title;
             }
         }
         $slug = $this->Name;
         if ($slug == '') {
             $this->_errores[] = "No se ha indicado el título";
         }
     }
     return count($this->_errores) == 0;
 }
Example #11
0
 /**
  * CÁLCULO DEL RECARGO ENERGÉTICO.
  * Si hay artículos que están sujetos a recargo energético, hay que calcular
  * el importe del impuesto e incluir una línea automática con dicho valor.
  * Si la línea ya está incluida, se actualiza.
  *
  * El articulo que se factura para recargo energetico viene definido en el parametro REART
  * Y el precio kilo en el parametro REIMP
  */
 public function calculaRecargoEnergetico()
 {
     $var = new CpanVariables("Mod", "Web", "PcaeEmpresas");
     $parametro = $var->getNode("especificas");
     $reArticulo = $parametro['reArticulo'];
     unset($var);
     // Ver si existe el articulo que se ha definido en parametros
     // para facturar el recargo energetico
     $articulo = new Articulos();
     $articulo = $articulo->find('Codigo', $reArticulo);
     if ($articulo->getIDArticulo()) {
         // Se ha definido el parametro con el codigo del articulo
         // para aplicar el recargo energetico. Ahora hay que ver si en el presupuesto
         // en curso hay articulos sujetos a recargo energético.
         $em = new EntityManager($this->getConectionName());
         $tablaArticulos = "{$articulo->getDataBaseName()}.{$articulo->getTableName()}";
         $lineas = new PstoLineas();
         $tablaLineas = "{$lineas->getDataBaseName()}.{$lineas->getTableName()}";
         unset($lineas);
         $query = "select t1.*,t2.Peso from {$tablaLineas} as t1, {$tablaArticulos} as t2 where t1.IDPsto='{$this->IDPsto}' and t1.IDArticulo=t2.IDArticulo and t2.RecargoEnergetico='1'";
         $em->query($query);
         $rows = $em->fetchResult();
         if ($rows) {
             //Hay articulos sujetos a recargo energetico
             $reKilos = 0;
             foreach ($rows as $row) {
                 $reKilos += $row['MtsFa'] * $row['Peso'];
             }
             $reImporte = $reKilos * $articulo->getPrecioVenta();
             //Ver si ya está la linea de presupuesto creada.
             $query = "select IDLinea from {$tablaLineas} where IDPsto='{$this->IDPsto}' and IDArticulo='{$articulo->getIDArticulo()}'";
             $em->query($query);
             $rows = $em->fetchResult();
             if ($rows) {
                 // Ya estaba, actualizar
                 $query = "update {$tablaLineas} set Unidades='{$reKilos}',Precio='{$articulo->getPrecioVenta()}',Importe='{$reImporte}' where IDLinea='{$rows[0]['IDLinea']}'";
                 $em->query($query);
             } else {
                 // No está, crear
                 $lineaPsto = new PstoLineas();
                 $lineaPsto->setIDPsto($this->IDPsto);
                 $lineaPsto->setIDArticulo($articulo->getIDArticulo());
                 $lineaPsto->setDescripcion($articulo->getDescripcion());
                 $lineaPsto->setUnidades($reKilos);
                 $lineaPsto->setPrecio($articulo->getPrecioVenta());
                 $lineaPsto->setImporte($reImporte);
                 $lineaPsto->setIDAgente($_SESSION['usuarioPortal']['Id']);
                 $lineaPsto->setIDComercial($this->IDComercial);
                 $lineaPsto->setIDAlmacen($this->IDAlmacen);
                 $lineaPsto->setIva($articulo->getIDIva()->getIva());
                 $lineaPsto->create();
                 unset($lineaPsto);
             }
         } else {
             // No hay articulos con recargo energetico.
             // Borro el eventual cargo de recargo energetico.
             $lineas = new PstoLineas();
             $lineas->queryDelete("IDPsto='{$this->IDPsto}' and IDArticulo='{$articulo->getIDArticulo()}'");
             unset($lineas);
         }
         $em->desConecta();
         unset($em);
     }
 }
Example #12
0
 /**
  * Carga las variables web y de entorno del proyecto, app y módulo
  * @return void
  */
 protected function cargaVariables()
 {
     // Variables de entorno del proyecto
     if (!isset($_SESSION['VARIABLES']['EnvPro'])) {
         $variables = new CpanVariables('Pro', 'Env');
         $this->varEnvPro = $variables->getValores();
         $_SESSION['VARIABLES']['EnvPro'] = $this->varEnvPro;
     } else {
         $this->varEnvPro = $_SESSION['VARIABLES']['EnvPro'];
     }
     $this->values['varEnvPro'] = $this->varEnvPro;
     if (count($this->values['varEnvPro']) == 0 and $_SESSION['usuarioPortal']['IdPerfil'] == '1') {
         $this->values['errores'][] = "No se han definido las variables de entorno del proyecto";
     }
     // Variables web del proyecto
     if (!isset($_SESSION['VARIABLES']['WebPro'])) {
         $variables = new CpanVariables('Pro', 'Web');
         $this->varWebPro = $variables->getValores();
         $_SESSION['VARIABLES']['WebPro'] = $this->varWebPro;
     } else {
         $this->varWebPro = $_SESSION['VARIABLES']['WebPro'];
     }
     $this->values['varWebPro'] = $this->varWebPro;
     if (count($this->values['varWebPro']) == 0 and $_SESSION['usuarioPortal']['IdPerfil'] == '1') {
         $this->values['errores'][] = "No se han definido las variables web del proyecto";
     }
     // Variables de entorno del modulo
     $variables = new CpanVariables('Mod', 'Env', $this->entity);
     $this->varEnvMod = $variables->getValores();
     $this->values['varEnvMod'] = $this->varEnvMod;
     $_SESSION['VARIABLES']['EnvMod'] = $this->varEnvMod;
     if (count($this->values['varEnvMod']) == 0 and $_SESSION['usuarioPortal']['IdPerfil'] == '1') {
         $this->values['errores'][] = "No se han definido las variables de entorno del módulo '{$this->entity}'";
     }
     // Variables web del modulo
     if (!isset($_SESSION['VARIABLES']['WebMod'])) {
         $variables = new CpanVariables('Mod', 'Web', $this->entity);
         $this->varWebMod = $variables->getValores();
         $_SESSION['VARIABLES']['WebMod'] = $this->varWebMod;
     } else {
         $this->varWebMod = $_SESSION['VARIABLES']['WebMod'];
     }
     $this->values['varWebMod'] = $this->varWebMod;
     if (count($this->values['varWebMod']) == 0 and $_SESSION['usuarioPortal']['IdPerfil'] == '1') {
         $this->values['errores'][] = "No se han definido las variables web del módulo '{$this->entity}'";
     }
     // Variables de entorno de la app
     if (!isset($_SESSION['VARIABLES']['EnvApp'])) {
         $variables = new CpanVariables('App', 'Env', $this->app);
         $this->varEnvApp = $variables->getValores();
         $_SESSION['VARIABLES']['EnvApp'] = $this->varEnvApp;
     } else {
         $this->varEnvApp = $_SESSION['VARIABLES']['EnvApp'];
     }
     $this->values['varEnvApp'] = $this->varEnvApp;
     //if ((count($this->values['varEnvApp']) == 0) and ($_SESSION['usuarioPortal']['IdPerfil'] == '1'))
     //    $this->values['errores'][] = "No se han definido las variables de entorno de la App '{$this->app}'";
     // Variables web de la app
     if (!isset($_SESSION['VARIABLES']['WebApp'])) {
         $variables = new CpanVariables('App', 'Web', $this->app);
         $this->varWebApp = $variables->getValores();
         $_SESSION['VARIABLES']['WebApp'] = $this->varWebApp;
     } else {
         $this->varWebApp = $_SESSION['VARIABLES']['WebApp'];
     }
     $this->values['varWebApp'] = $this->varWebApp;
     //if ((count($this->values['varWebApp']) == 0) and ($_SESSION['usuarioPortal']['IdPerfil'] == '1'))
     //    $this->values['errores'][] = "No se han definido las variables web de la App '{$this->app}'";
     unset($variables);
 }
Example #13
0
 /**
  * Devuelve un array con los atributos de cada columna del módulo $modulo
  *
  * Los atributos son: caption, visible, updatable, default, permission, help
  *
  * Los valores de los atributos se obtienen  de las variables de entorno del módulo,
  * y si no existen, se cargan del config.yml correspondiente
  *
  * @param string $modulo El nombre del módulo
  * @return array Array de atributos
  */
 public function getAtributos($modulo)
 {
     $atributos = array();
     // PRIMERO LEO LOS ATRIBUTOS DE LAS COLUMNAS QUE ESTÁN EN CONFIG.YML
     $columnasConfig = $this->getNode('columns');
     // LUEGO LOS SUSTITUYO POR LOS ESPECIFICOS QUE ESTAN EN LAS VAR DE ENTORNO DE PROYECTO
     // DE TAL MANERA QUE PREVALECEN LOS DEFINIDOS EN LAS VARIABLES DE ENTORNO, PERO
     // SI NO EXISTIERA LA VARIABLE DE ENTORNO CORRESPONDIENTE ENTONCES PONGO LA DEL CONFIG.
     $variables = new CpanVariables('Mod', 'Env', $modulo);
     if (is_array($variables->getDatosYml())) {
         $arrayColumnas = $variables->getNode('columns');
         foreach ($arrayColumnas as $key => $value) {
             $atributos[$key] = $value;
             if (is_array($columnasConfig[$key])) {
                 foreach ($columnasConfig[$key] as $keyConfig => $valueConfig) {
                     if (!isset($atributos[$key][$keyConfig])) {
                         $atributos[$key][$keyConfig] = $valueConfig;
                     }
                 }
             }
         }
     } else {
         // Aún no se han definido las variables, por lo tanto cargo los atributos
         // en base al array de correspondencia de atributos predeterminados
         foreach ($columnasConfig as $keyColumna => $valueColumna) {
             foreach (VariablesEnv::$varEnvMod as $keyVar => $keyColumnaConfig) {
                 $atributos[$keyColumna][$keyVar] = isset($valueColumna[$keyColumnaConfig]) ? $valueColumna[$keyColumnaConfig] : "";
             }
         }
     }
     unset($variables);
     // Si el usuario es super pongo la visibilidad a TRUE
     //if ($_SESSION['usuarioPortal']['Id'] == '1')
     //    foreach ($atributos as $key => $value)
     //        ++$atributos[$key]['visible'];
     /**
      if (!$atributos[$key]['visible']) {
      $atributos[$key]['visible'] = '1';
      $atributos[$key]['caption'] .= " (oculta)";
      }
     */
     return $atributos;
 }