load->model("idiomas_model"); $this->load->model("usuario_model"); if($this->router->class == 'multi') $this->brm_lib->set_default_options_multi(); else $this->brm_lib->set_default_options(); if($this->router->class == 'multi' && !isset($_SESSION['id_lang'])){ echo "error_session"; die(); } $this->load_defaults(); if(isset($_SESSION['referer_permisos'])){ $this->data["fin_overlay"] = 1; $this->data["fin_overlay_url"] = "/".$_SESSION["iso_lang"]."/multi/cambio_nivel_cuenta"; $this->data["fin_overlay_params"] = ""; } if(isset($_SESSION['referer_invalid'])){ $this->data["fin_overlay"] = 1; $this->data["fin_overlay_url"] = "/".$_SESSION["iso_lang"]."/multi/invalid_info"; $this->data["fin_overlay_params"] = ""; } // Get the logo $subdomain = $this->brm_lib->get_subdomain(); $default_logo = '' .$this->lang->line('comun_alt_logo') . ''; if( $subdomain ){ // Get the submain info $where = array(); $where['ASubdominio'] = $subdomain; $asocioacion = $this->asociaciones_model->get_asociaciones($where, '0,1'); if( sizeof($asocioacion) > 0){ $this->data['logo'] = '' . $asocioacion[0]->ANombre . ' ' . $this->lang->line('comun_asociacion_logo') . ''; }else{ $this->data['logo'] = $default_logo; } }else{ $this->data['logo'] = $default_logo; } } function load_defaults() { $this->load->language('comun', $_SESSION["iso_lang"]); $this->load->language('meta', $_SESSION["iso_lang"]); $this->load->language('val', $_SESSION["iso_lang"]); $this->load->model("tarifas_model"); $this->load->model("proyectos_model"); $this->load->model("sectores_model"); $this->load->model("zona_geografica_model"); $this->load->model("actividades_model"); $this->load->model("asociaciones_model"); $this->load->model("idiomas_model"); $parametro_web = $this->proyectos_model->get_records("parametros_web", "PWIdenfiticador = 'dias_limite_color'"); $this->data["dias_limite_color"] = $parametro_web[0]->PWValor; if(isset($_SESSION['id_user'])){ $this->data["historial"] = $this->usuario_model->get_records("usuarios_historial", "UHIdUsuario = ".$_SESSION['id_user'], '', 'UHFecha DESC', '0,5'); $usuario = $this->usuario_model->get_usuarios('UId = '.$_SESSION['id_user']); if($this->router->directory != '' && $this->router->class != 'multi' && $this->router->method != 'datos_previos' && $this->router->method != 'datos_previos_action' && $usuario[0]->UDatosPrevios == 0){ redirect("/".$_SESSION['iso_lang']."/portal/home/datos_previos"); die(); } } $this->data["idiomas_web"] = $this->idiomas_model->get_idiomas_web("IWActivado = 1 AND IWLIdIdioma = ".$_SESSION["id_lang"]); } } /** * @property CI_Loader $load * @property App_Form_validation $form_validation * @property CI_Input $input * @property CI_Output $output * @property CI_Email $email * @property CI_DB_active_record $db * @property CI_DB_forge $dbforge * @property CI_Table $table * @property App_Session $session * @property CI_FTP $ftp * @property CI_Pagination $pagination * @property CI_Calendar $calendar * @property CI_Config $config * @property CI_HtmlTable $table * @property CI_Language $lang * @property CI_Uri $uri * @property CI_Upload $upload * @property CI_Encryption $encrypt * @property idioma_model $idioma_model * @property App_model $main_model * @property menu_model $menu_model * @property pagina_model $pagina_model * @property usuario_admin_model $usuario_admin_model * @property credencial_model $credencial_model * @property app_lib $app_lib */ abstract class Main_Controller extends CI_Controller{ protected $_USER; function __construct() { parent::__construct(); $this->load->library("session"); $this->load->model("usuario_admin_model"); $this->load->library("app_lib"); // LOAD LOGGED USER $user=$this->usuario_admin_model->get (array($this->usuario_admin_model->_IDENTIFICADOR => $this->session->userdata(USER_ID))); $this->_USER = count($user)>0?$user[0]:false; if (!$this->_USER || $this->session->userdata(USER_TYPE) != ROOT_USER_GROUP) $this->config->set_item(HIDE_SUPERUSER,true); else $this->config->set_item(HIDE_SUPERUSER,false); if ($this->_USER) { $this->_USER->USER_TYPE = $this->session->userdata(USER_TYPE); $this->_USER->USER_ZONE = $this->session->userdata(USER_ZONE); } } protected function auth_user() { $this->session->auth_user(); } } abstract class App_Controller extends Main_Controller { private $_DATOS = array(); protected $_VIEWDATA = array(); protected $_SEO; protected $_IDENTIFICADOR; protected $load_model = false; protected $main_model; protected $_TRANSLATIONS; protected $_SELECTOR_IDIOMA; protected $_OBJECT; protected $obj_name = ''; protected $disableRowChecks = false; protected $UseLanguages; protected $LoadActions = true; protected $loadDefaultJS = true; protected $loadLanguageFile = true; protected $loadEditor = false; protected $loadBuscador = false; protected $_JS_FILE = false; protected $loadJSDates = array(); // loadJSDates is NOT INCLUDED in view data by default protected $_LANGUAGE_FILE = 'default'; protected $defaultSorting = false; protected $RequiredCredentials; public $_LANGUAGE; public $_TRANSLATE_LANGUAGE; public $_CURRENT_LANGUAGE; protected $_CURRENT_LANGUAGE_ID; protected $_FILEDATA; function __construct($front = false) { parent::__construct(); $this->load_defaults($front); } protected function _view_admin($view, $autoload = false){ if(!$autoload) return config_item('admin_folder').$view; else return $this->load->view(config_item('admin_folder').$view); } private function load_defaults($front) { // LOAD CONFIG VALUES $this->UseLanguages = config_item('USE_LANGUAGES'); if ($front) { // // MANAGE LANGUAGES // if ($this->UseLanguages) { // $this->load->model('idioma_model'); // $lang = $this->uri->segment(1, ''); // if (english($lang)) { // $uriLang = ''; // $this->_CURRENT_LANGUAGE = $lang; // } else { // $uriLang = english().'/'; // $this->_CURRENT_LANGUAGE = config_item('default_language'); // } // $this->_LANGUAGE = $this->idioma_model->get(); // $this->_TRANSLATE_LANGUAGE = english($this->_CURRENT_LANGUAGE)?spanish():english(); // $this->_CURRENT_LANGUAGE_ID = $this->_LANGUAGE[$this->_CURRENT_LANGUAGE]; // $this->_VIEWDATA['current_lang'] = $this->_CURRENT_LANGUAGE; // // // HANDLE URI // $uri = ''; // $start = english($lang) ? 2 : 1; // for ($i = $start; $i <= $this->uri->total_segments(); $i++) // $uri .= $this->uri->segment($i, '') . '/'; // $uri = chop($uri, '/'); // // // TRANSLATE LINK FOR CURRENT PAGE // $this->_VIEWDATA['translate_link'] = base_url() . $this->app_lib->translateURL($uri, $this->_TRANSLATE_LANGUAGE); // } // else // $this->_CURRENT_LANGUAGE = config_item('default_language'); } else { if ($this->UseLanguages) { $this->load->model('idioma_model'); $this->_LANGUAGE = $this->idioma_model->get(); $this->_CURRENT_LANGUAGE = $this->_LANGUAGE[config_item('default_language')]; } else $this->_CURRENT_LANGUAGE = config_item('default_language'); } // LANGUAGE DEFAULTS $this->load->language('base'); } protected function require_credentials($redirect = true) { $grupo = $this->session->userdata(USER_TYPE); $this->load->model('credencial_model'); $credentials = $this->credencial_model->checkPermisos( $grupo, $this->RequiredCredentials ); if (count($credentials) == 0) { if ($redirect) { $this->mostrarError($this->lang->line('sin_permisos')); redirect($this->app_lib->INICIO['admin']); } return false; } return true; } protected function initialize() { // CREDENTIALS if (config_item('USE_CREDENTIALS') && !empty($this->RequiredCredentials)) $this->require_credentials(); // MODELS if ($this->load_model) { $this->load->model($this->load_model); $this->main_model = $this->{$this->main_model}; $this->_IDENTIFICADOR = $this->main_model->_IDENTIFICADOR; } $this->_VIEWDATA['_IDENTIFICADOR'] = $this->_IDENTIFICADOR; $this->_VIEWDATA['objectName'] = $this->obj_name; // LANGUAGES if ($this->UseLanguages) $this->_SELECTOR_IDIOMA = $this->main_model->_SELECTOR_IDIOMA; if ($this->loadLanguageFile) { if ($this->_LANGUAGE_FILE == 'default') $this->load->language($this->router->class,$this->_CURRENT_LANGUAGE); else $this->load->language(_LANGUAGE_FILE,$this->_CURRENT_LANGUAGE); } if ($this->LoadActions) $this->_ACCIONES = array( $this->app_lib->LISTAR => array( 'estandar' => true, 'destino' => config_item('admin_folder')."/".$this->router->class.'/paginar', 'ajax' => true), $this->app_lib->EDITAR => array( 'estandar' => true, 'destino' => config_item('admin_folder')."/".$this->router->class.'/editar', 'ajax' => true, 'multiple' => false, 'type' => $this->app_lib->HTML, 'success' => 'nuevo'), $this->app_lib->NUEVO => array( 'estandar' => true, 'destino' => config_item('admin_folder')."/".$this->router->class.'/editar', 'ajax' => true, 'multiple' => false, 'type' => $this->app_lib->HTML, 'success' => 'nuevo'), $this->app_lib->ELIMINAR => array( 'estandar' => true, 'destino' => config_item('admin_folder')."/".$this->router->class.'/borrar', 'multiple' => true, 'ajax' => false) ); if ($this->_JS_FILE) $this->_VIEWDATA['contentJS'] = $this->_JS_FILE; $this->_VIEWDATA['loadDefaultJS'] = $this->loadDefaultJS; $this->_VIEWDATA['loadBuscador'] = $this->loadBuscador; $this->_VIEWDATA['loadEditor'] = $this->loadEditor; $this->_VIEWDATA['disableRowChecks'] = $this->disableRowChecks; $this->_VIEWDATA['defaultSorting'] = $this->defaultSorting; } protected function guardarDatos($datos) { $this->session->set_flashdata($this->app_lib->_DATOS, $datos); } protected function guardarDatosIdioma($datos, $traducciones) { foreach ($traducciones as $idioma => $textos) $data[] = $this->app_lib->array_to_object(array_merge($datos, $textos, array($this->_SELECTOR_IDIOMA => $idioma))); $this->session->set_flashdata($this->app_lib->_DATOS, $data); } protected function datos() { return $this->session->flashdata($this->app_lib->_DATOS); } protected function mostrarMensaje($mensaje = false) { if ($mensaje === false) $mensaje = $this->lang->line($this->app_lib->EXITO); $mensaje = mb_convert_encoding($mensaje, 'HTML-ENTITIES', 'UTF-8'); $this->session->set_flashdata($this->app_lib->_MENSAJES, $mensaje); } protected function mostrarError($error) { $error = mb_convert_encoding($error, 'HTML-ENTITIES', 'UTF-8'); $this->session->set_flashdata($this->app_lib->_ERRORES, $error); } protected function auth_user() { parent::auth_user(); } // ADDITIONAL DATA protected function _datosAdicionales() { } // ACCESIBLE DATA public function index(){ $this->_VIEWDATA['cabeceras'] = $this->_NOMBRES_COLUMNAS; $this->_VIEWDATA['idFila'] = $this->_IDENTIFICADOR; $this->_VIEWDATA['acciones'] = $this->_ACCIONES; $this->_VIEWDATA['content'] = config_item('admin_folder').'/listado'; // ESTABAMOS EDITANDO Y HUBO ERROR if ($datos = $this->datos()) { $this->_VIEWDATA['object'] = $datos; $this->loadFormPresets(); } // DATOS PARA EL BUSCADOR if ($this->loadBuscador) $this->_buscador (); $this->load->language('datatables',$this->_CURRENT_LANGUAGE); $this->buildMenu(); $this->load->view(config_item('admin_folder').'/main', $this->_VIEWDATA); } private function loadFormPresets(){ $this->load->language('forms'); $this->_datosAdicionales(); } // SAVE NEW OBJECT public function crear(){ if ($this->_validar()) $this->guardar(); else { $this->guardarDatos($this->_OBJECT); redirect(config_item('admin_folder').'/'.$this->router->class); } } // LOAD DATA FOR EDITION public function editar() { if ($this->input->post('currentId')) { $where[$this->main_model->_IDENTIFICADOR] = $this->input->post('currentId'); $this->_OBJECT = $this->main_model->get($where); $this->_VIEWDATA['object'] = $this->_OBJECT[0]; } $this->loadFormPresets(); $this->load->view(config_item('admin_folder').'/'.$this->router->class.'/editar', $this->_VIEWDATA); } // IF ALL, MOSTRAR TODO EL MENU INDEPENDIENTEMENTE DE LOS ACCESOS // EL MENU SE ASIGNARA A LA VARIABLE DE VISTA ${$MENUNAME} Y $($PAGSNAME) protected function buildMenu($all = false,$menuName = 'menu',$pagsName = 'paginas') { // LOAD MODELS $this->load->model('menu_model'); $this->load->model('pagina_model'); $this->load->model('acceso_model'); // FILTER MENU ITEMS PER USER TYPE $whereIn = array(); if (!$all) { $allowed = $this->acceso_model->get(array($this->acceso_model->_IDENTIFICADOR.'Grupo' => $this->_USER->USER_TYPE)); foreach ($allowed as $acceso) $whereIn[] = $acceso->{$this->acceso_model->_IDENTIFICADOR.'Menu'}; if (count($whereIn)>0) $menu = $this->menu_model->get('',array($this->menu_model->_IDENTIFICADOR => $whereIn)); else $menu = $this->menu_model->get(); } else $menu = $this->menu_model->get(); // PREPARE MENU $paginas = $level0 = $level1 = array(); foreach ($menu as $itemMenu) { switch ($itemMenu->MNivel) { case 0: $level0[] = $itemMenu; break; case 1: $level1[$itemMenu->MPadre][$itemMenu->MPosicion] = $itemMenu; break; default: break; } if (isset($itemMenu->{$this->menu_model->_IDENTIFICADOR.'Pagina'})) $paginas[] = $itemMenu->{$this->menu_model->_IDENTIFICADOR.'Pagina'}; } // SORT CHILDREN MENU foreach ($level1 as $k => $p) { ksort ($p); $level1[$k] = $p; } // LOAD PAGES $paginas = $this->pagina_model->get('',array($this->pagina_model->_IDENTIFICADOR => $paginas)); $this->_VIEWDATA["$menuName"] = array( MENU_LEVEL0 => $level0, MENU_LEVEL1 => $level1 ); $pags = array(); foreach ($paginas as $pagina) $pags[$pagina->{$this->pagina_model->_IDENTIFICADOR}] = $pagina; $this->_VIEWDATA["$pagsName"] = $pags; } // DDBB INSERTION/UPDATE MESSAGE CONTROL public function guardar($id = ''){ if (!$id && !$this->_OBJECT) { $this->mostrarError($this->lang->line('datos_vacios')); redirect(config_item('admin_folder')."/".$this->router->class); } // ACTUALIZAR else if ($id) { if ($this->_validar($id)) { // UPDATE OBJECT $where = array(); $where[$this->_IDENTIFICADOR] = $id; $this->main_model->update($this->_OBJECT, $where); $this->mostrarMensaje(); redirect(config_item('admin_folder')."/".$this->router->class); } else { $this->guardarDatos($this->_OBJECT); redirect(config_item('admin_folder')."/".$this->router->class); } } // CREAR else if ($this->_OBJECT) { $id = $this->main_model->insert($this->_OBJECT); if (!$id) { $this->guardarDatos($this->_OBJECT); $this->mostrarError($this->lang->line('error_bbdd')); redirect(config_item('admin_folder')."/".$this->router->class); } else { $this->mostrarMensaje(); redirect(config_item('admin_folder')."/".$this->router->class); } } } // REMOVE 1 OR MORE ROWS FROM DATABASE public function borrar() { $sLike = ''; $sWhereIn = ''; $data = $this->input->post(); $incluidos = $noIncluidos = array(); if (!$data) { $this->mostrarError ($this->lang->line('SIN_SELECCION')); redirect(config_item('admin_folder')."/".$this->router->class); } // SWEEP OUT UNCHECKED foreach ($data as $k => $v) { if (substr($k, 0, 4) == 'chk_') if ($v == 'false') $noIncluidos[] = substr($k,4); else if ($v == 'true') $incluidos[] = substr($k,4); } if ($this->input->post('allRows') == 'true'){ // SELECT ROWS $this->_filtrar($sLike, $sWhereIn); $this->_filtroBusqueda(); if (count($noIncluidos)>0) $this->main_model->db->restriction('', array($this->_IDENTIFICADOR.' NOT' => $noIncluidos)); } else { $filas = $this->input->post('filas'); $filas = array_unique(array_merge($filas,$incluidos)); $sWhereIn = array($this->_IDENTIFICADOR => $filas); } $total = $this->main_model->total('',$sWhereIn, $sLike); if ($total > 0) $this->main_model->delete($sWhereIn,$sLike); $this->mostrarMensaje(); redirect(config_item('admin_folder')."/".$this->router->class); } // TO BE OVERWRITTEN FOR ALL SUBCLASSES; EVEN IF IT'S NOT USED abstract protected function _validar(); // LIST OBJECTS public function paginar() { // IN CASE YOU DONT NEED DEBUG FOR AJAX FILE; // $this->output->enable_profiler(false); foreach ($this->_CAMPOS as $field) if (is_array($field) && isset($field['model']) && !in_array($field['model'], $this->load_model)) $this->load->model($field['model']); /* * Paging */ $sLimit = ''; if ($this->input->post('iDisplayLength') != '-1' ) $sLimit = intval($this->input->post('iDisplayStart')).", ".intval($this->input->post('iDisplayLength')); /* * Ordering */ $sOrder = ''; if ($this->input->post('iSortCol_0')) { for ($i=0 ; $iinput->post('iSortingCols')) ; $i++ ) if ( $this->input->post('bSortable_'.intval($this->input->post('iSortCol_'.$i))) == "true" ) $sOrder .= $this->_COLUMNAS[ intval( $this->input->post('iSortCol_'.$i) )-1 ].' '.$this->input->post('sSortDir_'.$i).', '; if ($sOrder) $sOrder = substr_replace( $sOrder, "", -2 ); } /* * Filtering */ $sLike = ''; // comprobar la condicion final si se cambia el valor inicial $sWhereIn = ''; // comprobar la condicion final si se cambia el valor inicial $sNotFound = false; $calcularTotal = true; $this->_filtrar($sLike, $sWhereIn, $sNotFound, $calcularTotal); // SPECIFIC CRITERIA $sWhere = $this->_filtroBusqueda(); // SE HAN INTRODUCIDO CRITERIOS POR LOS QUE FILTRAR PERO NO SE HAN ENCONTRADO DATOS if ($sNotFound&&!$sWhere) { $calcularTotal = false; $resultados = array(); } else $resultados = $this->main_model->get('', $sWhereIn, $sLike, $sOrder,$sLimit); //$this->main_model->debug(); $rows = array(); //echo '
';
//var_dump($resultados);
//exit();
        foreach ($resultados as $k => $row) {
            if ($this->disableRowChecks)
                $rows[$k][] = $this->app_lib->rowhidden($row->{$this->_IDENTIFICADOR});
            else
                $rows[$k][] = $this->app_lib->rowcheck($row->{$this->_IDENTIFICADOR});

            foreach ($this->_COLUMNAS as $columna)
                if (isset($this->_CAMPOS[$columna]) && $this->_CAMPOS[$columna] != '' && !is_array($this->_CAMPOS[$columna]))
                    $rows[$k][] = $this->app_lib->{$this->_CAMPOS[$columna]}($row->{$columna});
                else if (is_array($this->_CAMPOS[$columna])) {
                    if (isset($this->_CAMPOS[$columna]['funcion']))
                        $rows[$k][] = $this->{$this->_CAMPOS[$columna]['funcion']}($row);
                    else {
                        if (!isset($this->{$this->_CAMPOS[$columna]['model']}))
                            $this->load->model($this->_CAMPOS[$columna]['model']);
                        $translate = isset($this->_CAMPOS[$columna]['translate'])? $this->_CURRENT_LANGUAGE:false;
                        $alias = isset($this->_CAMPOS[$columna]['alias'])? $this->_CAMPOS[$columna]['alias']:false;
                        $origin = isset($this->_CAMPOS[$columna]['origin'])? $row->{$this->_CAMPOS[$columna]['origin']}:$row->{$columna};
                        $rows[$k][] = $this->{$this->_CAMPOS[$columna]['model']}->referencia($this->_CAMPOS[$columna]['table'],$this->_CAMPOS[$columna]['key'], $origin, $this->_CAMPOS[$columna]['field'],$translate,$alias);
                    }
                }
                else
                    $rows[$k][] = $row->{$columna};
        }

        // COUNT ROWS
        $this->_filtroBusqueda($sWhereIn);
        $total = $this->main_model->total();
        $this->_filtroBusqueda($sWhereIn);
        $displayTotal = $calcularTotal?$this->main_model->total('', $sWhereIn, $sLike):0;

        /*
	 * Output
	 */
	$output = array(
		'sEcho' => intval($this->input->post('sEcho')),
		'iTotalRecords' => $total,
		'iTotalDisplayRecords' => $displayTotal,
		'aaData' => $rows
	);
        echo json_encode($output);
        
    }

    /*
     * Filtering
     */
    protected function _filtrar(&$sLike='',&$sWhereIn='',&$sNotFound = false,&$calcularTotal = true) {
        if ($this->input->post('sSearch') != "") {
            for ( $i=0 ; $i_COLUMNAS) ; $i++ ) {
                // ENLAZADO CON OTRA TABLA
                if (is_array($this->_CAMPOS[$this->_COLUMNAS[$i]])) {
                    // FUNCION DEFINIDA POR EL PROGRAMADOR
                    if (isset($this->_CAMPOS[$this->_COLUMNAS[$i]]['reverse'])) {
                        $result = $this->{$this->_CAMPOS[$this->_COLUMNAS[$i]]['reverse']}($this->input->post('sSearch'));
                        
                        if ($result !== FALSE) {                            
                            $origin = isset($this->_CAMPOS[$this->_COLUMNAS[$i]]['origin'])? $this->_CAMPOS[$this->_COLUMNAS[$i]]['origin'] : $this->_COLUMNAS[$i];
                            
                            if (isset($this->_CAMPOS[$this->_COLUMNAS[$i]]['reverseTipo']) && $this->_CAMPOS[$this->_COLUMNAS[$i]]['reverseTipo'] == 'like')
                                $sLike[$origin] = $result;
                            else{
                                $sWhereIn[$origin] = $result;
                                //print_r($result);
                            }
                        }
                    }
                    else {
                        // CAMPOS COMBINADOS
                        if (is_array($this->_CAMPOS[$this->_COLUMNAS[$i]]['field'])) {
                            $tSelect = array_merge(array($this->_CAMPOS[$this->_COLUMNAS[$i]]['key']),$this->_CAMPOS[$this->_COLUMNAS[$i]]['field']);
                            $tWhere = '';
                            $tHaving = array($this->_CAMPOS[$this->_COLUMNAS[$i]]['alias'].' LIKE "%'.$this->input->post('sSearch').'%"' => NULL);
                        }
                        // CAMPOS NORMALES
                        else {
                            $tSelect = '';
                            $tHaving = '';
                            $tWhere = array($this->_CAMPOS[$this->_COLUMNAS[$i]]['field'] => $this->input->post('sSearch'));
                        }
                        if (!isset($this->{$this->_CAMPOS[$this->_COLUMNAS[$i]]['model']}))
                            $this->load->model ($this->_CAMPOS[$this->_COLUMNAS[$i]]['model']);
                        $_values = $this->{$this->_CAMPOS[$this->_COLUMNAS[$i]]['model']}->filter($this->_CURRENT_LANGUAGE,$tWhere,$tSelect,$tHaving,$this->_CAMPOS[$this->_COLUMNAS[$i]]['table']);
                        if (!empty($_values)) {
                            foreach ($_values as $k => $row)
                                $values[] = $row->{$this->_CAMPOS[$this->_COLUMNAS[$i]]['key']};
                            $sWhereIn[$this->_COLUMNAS[$i]]  = $values;
                        }
                    }
                }
                else if ($this->_CAMPOS[$this->_COLUMNAS[$i]] == 'SiNo')
                    $sLike[$this->_COLUMNAS[$i]] = $this->app_lib->{"reverse{$this->_CAMPOS[$this->_COLUMNAS[$i]]}"}($this->input->post('sSearch'));
                else
                    $sLike[$this->_COLUMNAS[$i]] = $this->input->post('sSearch');
            }
            if ($sWhereIn == '' && $sLike == '')
                $sNotFound = true;
        }
    }

    // DEFAULT BEHAVIOUR: DON'T FILTER
    protected function _filtroBusqueda() {       
        $this->main_model->db->connectorOR();
        return false;
    }

    protected function _buscador() {
        // DO NOTHING
    }
}
?>load->language('home', $_SESSION["iso_lang"]);			
		$this->data['menu_top'] = "home";
		
		if(isset($_SESSION['id_user']) && $_SESSION['id_user'] != ""){
		  
	        // Proyectos en Curso       
	        $en_curso_menu_value = $this->proyectos_model->get_proyectos("PIdUsuario = " . $_SESSION['id_user'] . " AND PEstado = 2");
	        $this->data['en_curso_menu_value'] = sizeof($en_curso_menu_value);
	       
	        // "Colaborando en" menu value
	
	        $sql = "((AIdUsuarioEmisor = ".$_SESSION['id_user']." AND AIdTipoActividad = 1 ) OR (AIdUsuarioReceptor = ".$_SESSION['id_user']." AND AIdTipoActividad = 2))";
	        $colaborando_en_value = $this->proyectos_model->get_proyectos($sql, '', 'proyectos.PId');
	        $this->data['colaborando_en_value'] = sizeof($colaborando_en_value);
	        
	        
	        // Mis Contactos
			
			$this->load->model("contactos_model");
			
			$where = array();
			$where['MCIdUsuario'] = $_SESSION['id_user'];
			$my_contactos_value = $this->contactos_model->get_contactos($where);
			$this->data['my_contactos_value'] = sizeof($my_contactos_value);
			
			/* User Information */
			
			$this->data['logged_info_usuario'] = $this->usuario_model->get_usuarios("UId ='" . $_SESSION['id_user'] . "'", "", "", "", "UUsuario, UId, UEmail");

		} /* END if logged in*/
		
		
		/* Listado Proyectos Publico Footer */
		
		$this->data['tipos_de_proyectos_footer'] = $this->proyectos_model->get_tipos_proyectos('proyectos_tipos_lang.PTLIdIdioma ='.$_SESSION["id_lang"]);
		
	}
	
	function index (){		
	
		if(isset($_SESSION['registro_colaborador'])) unset($_SESSION['registro_colaborador']);
		if(isset($_SESSION['registro_tipo'])) unset($_SESSION['registro_tipo']);
		
		// Mirar si hay asociación
		
			$subdomain = $this->brm_lib->get_subdomain();
			
			// Mirar si es acciis (Aid = 2)
			
				$where = array();
				$where['ASubdominio'] = $subdomain;		
				$asocioacion = $this->asociaciones_model->get_asociaciones($where, '0,1');
				
				if( (sizeof($asocioacion) > 0) && $asocioacion[0]->AId == 2){
					
					   $_SESSION['fin_overlay'] = 1;
					   $_SESSION['fin_overlay_url'] = "/multi/acciis_banner";
					   $_SESSION['fin_overlay_params'] = "";
				} 
			
		// $this->load->helper('phpmailer');	
		 //send_email("rtorres@coexia.com", "rtorres@coexia.com", "rtorres", "Template TEST", "esto es el mensaje");
	
		$this->data["content"] = "/home/home";			
		$this->load->view('template_public', $this->data);		

	}	
	
	function registro($fin = 0){
		if($fin != 1) $this->data["content"] = "/home/registro";	
		else $this->data["content"] = "/home/registro_fin";	
		$this->data["menu_top"] = "registro";
		$this->data["mocha"] = 1;
                
        $this->data["tipologias"] = $this->usuario_model->get_tipologias("UTILIdIdioma = ".$_SESSION['id_lang']." AND UTIVisible = 1", "UTIOrden ASC");
                
        /* Paises, get all paises */
		
		// si viene de landing ONG
		if (isset($_SESSION['registro_tipo']) && $_SESSION['registro_tipo'] == 4) $this->data['frase_dia'] = $this->lang->line('home4_text_frasedia_reg');
        
        $this->data['paises'] = $this->zona_geografica_model->get_paises('', 'PANombreInterno ASC');
                
		$this->load->view('template', $this->data);
	}
	
	function sugerencias_action() {
        if (isset($_POST['sugerencia']) && $_POST['sugerencia'] != '') {
            $this->load->language('colaborador', $_SESSION["iso_lang"]);

            $sugerencia = array();
            $sugerencia['SIdUsuario'] = isset($_SESSION['id_user']) ? $_SESSION['id_user'] : 0;
            $sugerencia['SEmail'] = isset($_POST['email_'])?$_POST['email_'] :'';
            $sugerencia['SNombre'] = isset($_POST['nombre_'])?$_POST['nombre_']: '';
            $sugerencia['SSugerencia'] = $_POST['sugerencia'];
            $sugerencia['SLang'] = $_SESSION['iso_lang'];
            $sugerencia['SFecha'] = date("Y-m-d G:i:s");

            $this->usuario_model->insert_record("sugerencias", $sugerencia);

            // Variables para que salga overlay fin
            $_SESSION['fin_overlay'] = 1;
            $_SESSION['fin_overlay_url'] = "/multi/sugerencias_fin";
            $_SESSION['fin_overlay_params'] = "";

            ///////////Email


            $this->load->helper('phpmailer');
            $asunto = $this->lang->line('asunto_sugerencia');
            
            $msg = $this->lang->line('recibido_sugerencia');
            if (isset($_SESSION['id_user']))
                
            $UEmail = $this->usuario_model->get_usuarios("UId ='" . $_SESSION['id_user'] . "'", "", "", "", "UEmail");
            else
            $UEmail = $_POST['email_'];

            
            $ok = send_email(isset($_SESSION['id_user'])? $UEmail[0]->UEmail : $UEmail, $this->config->item('email_web'), $this->config->item('email_web_name'), $asunto, $msg);
            $ok = send_email($this->config->item('email_info'), $this->config->item('email_web'), $this->config->item('email_web_name'), $asunto, $msg);

            //redirect("/" . $_SESSION["iso_lang"] . "/portal/micuenta/misdatos");
            redirect($_POST['current_url']);
        }
    }
	function registro_action(){
		/* Logout */
		$this->fancy_logout();
	
		if(isset($_POST['usuario']) && $_POST['usuario']['UUsuario'] != '' && $_POST['usuario']['UEmail'] != '' && $_POST['usuario']['UPassword'] != ''){
				$usuario = $_POST['usuario'];
				$usuario["UFechaCreacion"] = date("Y-m-d G:i:s");
				$usuario["UHashActivation"] = md5($usuario["UFechaCreacion"]);
				
				/* Guardamos la Asociación si viene con Subdominnio */
				$subdomain = $this->brm_lib->get_subdomain();
				if( $subdomain ){
				
					$where = array();
					$where['ASubdominio'] = $subdomain;		
					$asocioacion = $this->asociaciones_model->get_asociaciones($where, '0,1');		
					
					if( sizeof($asocioacion)  > 0) $usuario["UIdAsociacion"] = $asocioacion[0]->AId;
				}
				
				if(isset($_SESSION['registro_colaborador']) && $_SESSION['registro_colaborador']) $usuario["UColaborador"] = 1;
				
				$usuario["UPassword"] = md5($usuario["UPassword"]);
				$usuario['UEstado'] = 0;
				$usuario['UVisibilidad'] = 1; /* Siempre Visible */
				$usuario['UIdioma'] = 33; /* Spanish */
				$usuario['UPuntos'] = 2; // give him 1 star

				$id_usuario = $this->usuario_model->insert_usuario($usuario);
				
				// Idioma comunicaci�n por defecto
				$my_insert = array("UICIdUsuario" => $id_usuario, "UICIdIdioma" => 33);
                $this->proyectos_model->insert_record("usuarios_idiomas_comunicacion", $my_insert);
				
				/* Add Zona Geografica */
				
                /* Get Continente */

                $pais = $this->zona_geografica_model->get_paises('PAId = '.$usuario['UIdPais']);
                $continente = $pais[0]->PAIdContinente;


                /* Insert Zona */
                $zona = array();
                $zona['ZGIdUsuario'] = $id_usuario;
                $zona['ZGIdContinente'] = $continente;
                $zona['ZGIdPais'] = $usuario['UIdPais'];

                $zg_id = $this->usuario_model->insert_record("zonas_geograficas", $zona);                	
				
				
				// add the record to the usuarios_puntuacion table
				
                $my_puntos_ = array();
                $my_puntos_['UPIdUser'] = $id_usuario;
                $my_puntos_['UPDescripcion'] = "Registro";
                $my_puntos_['UPfecha'] = date("Y-m-d G:i:s");
                $my_puntos_['UPValor'] = 2;

                $this->usuario_model->add_puntos_record($my_puntos_);			
	                        
                $public_dir = md5($id_usuario.$usuario["UFechaCreacion"]);
                mkdir(FCPATH."public/data/usuarios/".$public_dir);
                mkdir(FCPATH."private/usuarios/".$public_dir);
                $this->usuario_model->update_usuario("UId = ".$id_usuario, array("UPublicDir" => $public_dir));
				
				$notificaciones = array();
				$notificaciones['UNIdUsuario'] = $id_usuario;
				$notificaciones['UNActividades'] = 1;
				$notificaciones['UNTablonConversaciones'] = 1;
				$notificaciones['UNSistema'] = 1;
				$this->usuario_model->insert_record("usuarios_notificaciones", $notificaciones);
                
                // Si es una ong le anadimos el sector -> organizaciones -> ongs
                if($usuario["UIdTipologia"] == 4){
                    $my_insert = array("USIdSector" => 114, "USIdUsuario" => $id_usuario);
                    $this->usuario_model->insert_record("usuarios_sectores", $my_insert);
                }            
           		
				$this->send_email_activar($usuario["UHashActivation"], $usuario['UEmail']);									
				redirect("/".$_SESSION["iso_lang"]."/home/registro/1");
		

		} /* END if missing fields*/
		
	}
	
	function send_email_activar($UHashActivation, $UEmail){
		$this->load->helper('phpmailer');
		$asunto = $this->lang->line('email_registro_asunto');
		$msg = $this->lang->line('email_registro_text_1')."".base_url().$_SESSION["iso_lang"]."/home/activate/".$UHashActivation."".$this->lang->line('email_registro_text_2');
			
		$ok = send_email($UEmail, $this->config->item('email_web'), $this->config->item('email_web_name'), $asunto, $msg);		
	}
	
	function resend_email_activar($hash){
		$usuario = $this->usuario_model->get_usuarios("UHashActivation ='".$hash."'");
		$usuario = sizeof($usuario) > 0 ? $usuario[0] : array();
		
		if(!empty($usuario)){
			$this->send_email_activar($hash, $usuario->UEmail);
			
			redirect("/".$_SESSION["iso_lang"]."/home/login");
		}
	}
	
	function activate($hash){
		/* Logout */
		$this->fancy_logout();
		
		if ($hash == 'ok') {
			$this->data["menu_top"] = "registro";
			$this->data["content"] = "/home/activate_ok";	
			$this->load->view('template', $this->data);
		} else if ($hash == 'ko') {
			$this->data["menu_top"] = "registro";
			$this->data["content"] = "/home/activate_ko";	
			$this->load->view('template', $this->data);
		} else {
		
		
			$usuario = $this->usuario_model->get_usuarios("UHashActivation ='".$hash."'");
					
			$usuario = sizeof($usuario) > 0 ? $usuario[0] : array();
			if(!empty($usuario)){		
			
				$tarifa_defecto_observador = $this->tarifas_model->get_tarifas("TIdTipoUsuario = 2 AND TActiva = 1 AND TInterna = 0 AND TPorDefecto = 1");				
				$tarifa_defecto_observador = $tarifa_defecto_observador[0];

				/* Crear el movimiento de cuenta necesario para cualquier usuario */

				$movimiento_cuenta = array();
				$movimiento_cuenta["UMCIdUsurio"] = $usuario->UId;
				$movimiento_cuenta["UMCdTarifaAnterior"] = 0;
				$movimiento_cuenta["UMCdTarifaNueva"] = $tarifa_defecto_observador->TId;
                $movimiento_cuenta["UMCCantidadProyectos"] = $tarifa_defecto_observador->TCantidadProyectosGratuitos;
				$movimiento_cuenta["UMCMotivo"] = "Activacion cuenta - Confirmamos estado Colaborador";
				$movimiento_cuenta["UMCFechaMovimiento"] = date("Y-m-d G:i:s");
				$movimiento_cuenta["UMCPagada"] = 1;
				$movimiento_cuenta['UMCFechaFinCuenta'] = date("Y-m-d", mktime(0, 0, 0, date("n") + $tarifa_defecto_observador->TCantidadTiempo, date("d"), date("Y")));
				$this->usuario_model->insert_movimiento_cuenta($movimiento_cuenta);
			
			    /* 
			    
			    	// Mantenemos el tipo Observador y sin fecha de caducidad.
			    
				$upd_usuario['UFechaCaducidadCuenta'] = (date("Y") + 1)."-".date("m")."-".date("d");				
				$upd_usuario['UTipoUsuario'] = 3; // Emprendedor
								
				if($usuario->UColaborador == 1){ $upd_usuario['UTipoUsuario'] = 2; } // Colaborador
				*/
				
				
				$upd_usuario = array();
				
				$upd_usuario['UTipoUsuario'] = 2; /* Todos son Colaboradores hasta que se demuestro lo contrario */
				
				$upd_usuario['UEstado'] = 1;
				$upd_usuario['UFechaActivacion'] = date("Y-m-d");
				
				$upd_usuario['UFechaCaducidadCuenta'] = date("Y-m-d", mktime(0, 0, 0, date("n") + $tarifa_defecto_observador->TCantidadTiempo, date("d"), date("Y")));
				$upd_usuario['UCuentaIndefinida'] = $tarifa_defecto_observador->TCantidadTiempo == -1 ? 1 : 0;
				$upd_usuario['UCantidadRestanteProyectos'] = $tarifa_defecto_observador->TCantidadProyectosGratuitos;
				$upd_usuario['UProyectosIlimitados'] = $tarifa_defecto_observador->TProyectosIlimitados;	
				$this->usuario_model->update_usuario("UId = ".$usuario->UId, $upd_usuario);	
                
                /*
                // Le metemos segun colaborador y emprendedor
                $tarifa_defecto_nueva = $this->tarifas_model->get_tarifas("TIdTipoUsuario = ".$upd_usuario['UTipoUsuario']." AND TActiva = 1 AND TInterna = 0 AND TPorDefecto = 1");				
				$tarifa_defecto_nueva = $tarifa_defecto_nueva[0];
                
                // Movimineto de Cuenta Especial segun tip
				$movimiento_cuenta = array();
				$movimiento_cuenta["UMCIdUsurio"] = $usuario->UId;
				$movimiento_cuenta["UMCdTarifaAnterior"] = $tarifa_defecto_observador->TId;
				$movimiento_cuenta["UMCdTarifaNueva"] = $tarifa_defecto_nueva->TId;
                $movimiento_cuenta["UMCCantidadProyectos"] = $tarifa_defecto_nueva->TCantidadProyectosGratuitos;
				$movimiento_cuenta["UMCMotivo"] = "Poner Fecha Caducidad Correcta";
				$movimiento_cuenta["UMCFechaMovimiento"] = date("Y-m-d G:i:s");
				$movimiento_cuenta["UMCFechaFinCuenta"] = (date("Y") + 1)."-".date("m")."-".date("d");				
				$movimiento_cuenta["UMCPagada"] = 1;
				$this->usuario_model->insert_movimiento_cuenta($movimiento_cuenta);
				*/
				
				redirect("/".$_SESSION["iso_lang"]."/home/activate/ok");
			}else{
				redirect("/".$_SESSION["iso_lang"]."/home/activate/ok");
			}				
		}
	}
	
	function login($action = '', $id_user = ''){	
/*		$txt = "";
     	foreach ($_SESSION as $key => $val) {
         	$txt .= $_SESSION[$key]."-".$key."\r\n";
     	}
		$cabeceras = 'From: team@brmanager.com' . "\r\n" .'Reply-To: team@brmanager.com' . "\r\n" .'X-Mailer: PHP/' . phpversion();
		mail('chamoik@yahoo.es','mail desde el login moi',$txt,$cabeceras);
		
*/		
       if(isset($_SESSION['id_user'])){
            redirect("/".$_SESSION["iso_lang"]."/portal");
       }else{
			if(isset($_SESSION['url_referer'])){
				$this->data["fin_overlay"] = 1;
				$this->data["fin_overlay_url"] = "/".$_SESSION["iso_lang"]."/multi/sin_sesion";
				$this->data["fin_overlay_params"] = "";
			}
		
			if($action == 'no_activate'){
				$this->data["fin_overlay"] = 1;
				$this->data["fin_overlay_url"] = "/".$_SESSION["iso_lang"]."/multi/no_activate";
				$this->data["fin_overlay_params"] = "id_user=".$id_user;
			}
		
			$this->data["menu_top"] = "login";
			$this->data["content"] = "/home/login";	
			$this->data["action"] = $action;	
			$this->load->view('template', $this->data);
       }
	}	
	
	function recordar_password_fin(){		
		$this->data["content"] = "/home/recordar_password_fin";	
		$this->load->view('template', $this->data);
	}
	
	function recordar_password_action(){
		if(isset($_POST['UEmail'])){
			$usuario = $this->usuario_model->get_usuarios("UEmail ='".$_POST['UEmail']."'");
			$usuario = sizeof($usuario) > 0 ? $usuario[0] : array();
			if(!empty($usuario)){
				$upd_usuario = array();
				$upd_usuario['UHashCambiarPassword'] = md5(date("Ymd G:i:s").$usuario->UId);				
				$this->usuario_model->update_usuario("UId = ".$usuario->UId, $upd_usuario);
			
				$this->load->helper('phpmailer');
				$asunto = $this->lang->line('email_recordar_password_asunto');
				$msg = $this->lang->line('email_recordar_password_text_1')."".base_url().$_SESSION["iso_lang"]."/home/chpass/".$upd_usuario['UHashCambiarPassword']."".$this->lang->line('email_recordar_password_text_2');
			
				$ok = send_email($usuario->UEmail, $this->config->item('email_web'), $this->config->item('email_web_name'), $asunto, $msg);
				
				redirect("/".$_SESSION["iso_lang"]."/home/recordar_password_fin");
			}
		}
	}
	
	function chpass($hash, $fin = 0){
		$usuario = $this->usuario_model->get_usuarios("UHashCambiarPassword ='".$hash."'");		
		$usuario = sizeof($usuario) > 0 ? $usuario[0] : array();
		
		if(!empty($usuario) || $fin == 1){
			$this->data["meta_title_lang"] = $this->lang->line('title_change_password');
			$this->data["menu_top"] = "login";
			$this->data["content"] = "/home/change_password";	
			$this->data["fin"] = $fin;
			$this->data["hash"] = $hash;	
			$this->data["mocha"] = 1;
			$this->load->view('template', $this->data);
		}else if(empty($usuario)){
			$this->data["meta_title_lang"] = $this->lang->line('title_change_password_error');
			$this->data["content"] = "/home/change_password_error";		
			$this->load->view('template', $this->data);
		}
	}
	
	function change_password_action($hash){
		if(isset($_POST['UPassword']) && $_POST['UPassword'] != ''){
			$usuario = $this->usuario_model->get_usuarios("UHashCambiarPassword ='".$hash."'");		
			$usuario = sizeof($usuario) > 0 ? $usuario[0] : array();
			
			if(!empty($usuario)){
				$upd_usuario = array();
				$upd_usuario['UHashCambiarPassword'] = "";				
				$upd_usuario['UPassword'] = md5($_POST['UPassword']);
				$this->usuario_model->update_usuario("UId = ".$usuario->UId, $upd_usuario);
				
				redirect("/".$_SESSION["iso_lang"]."/home/chpass/".$hash."/1");
			}
		}
	}	
	
	function recordar_usuario_action(){
		if(isset($_POST['UEmail']) && $_POST['UEmail'] != ''){
			$usuario = $this->usuario_model->get_usuarios("UEmail ='".$_POST['UEmail']."'");
			$usuario = sizeof($usuario) > 0 ? $usuario[0] : array();
			if(!empty($usuario)){
				$this->load->helper('phpmailer');
				$asunto = $this->lang->line('email_recordar_usuario_asunto');
				$msg = $this->lang->line('email_recordar_usuario_text_1').$usuario->UUsuario.$this->lang->line('email_recordar_usuario_text_2');
				
				$ok = send_email($usuario->UEmail, $this->config->item('email_web'), $this->config->item('email_web_name'), $asunto, $msg);
				redirect("/".$_SESSION["iso_lang"]."/home/recordar_usuario_fin");
			}
		}
	}	
	
	function recordar_usuario_fin(){	
		$this->data["menu_top"] = "login";
		$this->data["content"] = "/home/recordar_usuario_fin";	
		$this->load->view('template', $this->data);
	}
	
	function check (){
		$this->fancy_logout();
		
		if ($this->input->post('user')) 
		{
			$user = $this->input->post('user');
			$updatelastlogin = true;
            
			/* Backoffice crap */				
			if($this->input->post('hash')){
                $updatelastlogin = false;
				$hash = $this->input->post('hash');
			
			}else{	$pass = md5($this->input->post('password_')); }
			
			/* Backoffice crap */
			if($this->input->post('hash')){
                $where = array();		
                $where["UUsuario"] = $user;
				$where["UHashActivation"] = $hash;
			}else{
				$where = "UPassword = '".$pass."' AND (UUsuario = '".$user."' OR UEmail = '".$user."')";
			}
			
			$usuario = $this->usuario_model->get_usuarios($where);
			
			if(sizeof($usuario) > 0){
				if($usuario[0]->UEstado == 1){
					
					/* Si no tiene asociación no creo nada de SESSION. Lo quiero hacer una vez esté en el subdominio correcto */
					if ( $usuario[0]->UIdAsociacion == 0  ){ 
												
							// recuperamos la paginacion default
							$paginacion = $this->usuario_model->get_records("parametros_web", "PWIdenfiticador = 'paginacion'");
							$paginacion = $paginacion ? $paginacion[0]->PWValor : 10;
							$_SESSION['id_user'] = $usuario[0]->UId;
							$_SESSION['id_lang'] = $usuario[0]->UIdiomaWeb;
							$_SESSION['paginacion'] = ($usuario[0]->UPaginacion > 0) ? $usuario[0]->UPaginacion : $paginacion;
							if($updatelastlogin) $this->usuario_model->updatelastlogin($usuario[0]->UId);
							if(isset($_POST['no_cerrar_sesion']) && $_POST['no_cerrar_sesion'] == 1) setcookie('id_user', $usuario[0]->UId, time()+(3600*24*7), "/home/");
							else setcookie( 'id_user' , '' , time()-3600 , '/' , '' , 0 ); 
		                    
		                 }
		                    
					$b = 1;
                    
                    if($usuario[0]->UOverlayBusco == 0 && $usuario[0]->UDatosPrevios == 1){
                        $_SESSION['fin_overlay'] = 1;
                        $_SESSION['fin_overlay_url'] = "/portal/multi/sin_objetivos_busco";
                        $_SESSION['fin_overlay_params'] = "";
                    }
                    
				}else if($usuario[0]->UEstado == 0){
					$b = 2;
				}
			}else{
				$b = 0;
			}
					
			if ($b > 0){
			
				/* Check if Asociacion */
				
				if ( $usuario[0]->UIdAsociacion != 0 ){
					
					/* Get the subdomain */
					$where = array();
					$where['AId'] = $usuario[0]->UIdAsociacion;
					$asocioacion = $this->asociaciones_model->get_asociaciones($where, '0,1');	

					/* It should always return value, but just in case it doesn't */

					if( sizeof($asocioacion) > 0){
						
						$domain = "http://" . $asocioacion[0]->ASubdominio . ".brmanager.com/home/subdomain_login/" . $usuario[0]->UHashActivation;
						
					}else{ $domain = ''; }
				}
				
				if($b == 1){
					$_SESSION['error'] = "";	
					if(isset($_POST['url_referer'])){  redirect($_POST['url_referer']); }
					else{ 			
					
						if($domain) redirect($domain); 
						else redirect( "/".$_SESSION["iso_lang"]."/portal"); 
					}
				}else if($b == 2){
				
					if($domain) redirect($domain); 
					else redirect("/".$_SESSION["iso_lang"]."/home/login/no_activate/".$usuario[0]->UHashActivation);				
				}
			}
			else
			{
				$_SESSION['error'] = $this->lang->line('login_no_existe_usuario');
				redirect("/".$_SESSION["iso_lang"]."/home/login/fail");				
			}			
			
		}
		else 
		{
				$_SESSION['error'] = $this->lang->line('login_no_escrito_usuario');	
				redirect("/".$_SESSION["iso_lang"]."/home/registro");					
		}
	}
	
	function fancy_logout(){
		if(isset($_SESSION['id_user'])){
	        setcookie( 'id_user' , $_SESSION['id_user'], time()-1200, "/home/"); 
			$_SESSION['id_user'] = 0;
		}
		if(isset($_SESSION['last_url']))$_SESSION['last_url'] = "";
		if(isset($_SESSION['UUsuario']))$_SESSION['UUsuario'] = "";
		if(isset($_SESSION['UEmail']))$_SESSION['UEmail'] = "";
		if(isset($_SESSION['id_user']))unset($_SESSION['id_user']);
		if(isset($_SESSION['last_url']))unset($_SESSION['last_url']);
		if(isset($_SESSION['paginacion']))unset($_SESSION['paginacion']);
		if(isset($_SESSION['error']))unset($_SESSION['error']);
		if(isset($_SESSION['UUltimaEntrada']))unset($_SESSION['UUltimaEntrada']);
		if(isset($_SESSION['UUsuario']))unset($_SESSION['UUsuario']);
		if(isset($_SESSION['UEmail']))unset($_SESSION['UEmail']);
		if(isset($_SESSION['UTipoUsuario']))unset($_SESSION['UTipoUsuario']);
		if(isset($_SESSION['TipoUsuarioNombre']))unset($_SESSION['TipoUsuarioNombre']);		
	    if(isset($_SESSION['id_user']))unset( $_COOKIE['id_user'] );
	
	
	}
	
	function logout (){
		
		$this->fancy_logout();
	
/*		$txt = "";
     	foreach ($_SESSION as $key => $val) {
         	$txt .= $_SESSION[$key]."-".$key."\r\n";
     	}
		$cabeceras = 'From: team@brmanager.com' . "\r\n" .'Reply-To: team@brmanager.com' . "\r\n" .'X-Mailer: PHP/' . phpversion();
		mail('chamoik@yahoo.es','mail desde el logout moi',$txt,$cabeceras);
*/	

		redirect("/".$_SESSION["iso_lang"]."/home/login");
		
	}
	
	
	function condiciones_de_uso(){

		$this->data['content'] = "/home/condiciones";
		$this->load->view('template_public', $this->data);	
	
	}
	
	function politica_de_privacidad(){
	
		$this->data['content'] = "/home/politica";
		$this->load->view('template_public', $this->data);	
	
	}

	
	function contactar(){
	
		$this->data['tipos'] =  $this->usuario_model->get_records('contactar_tipos_lang', 'CTLIdioma = '.$_SESSION['id_lang']);
					
		$this->load->view('/home/contactar', $this->data);
	
	}	
	
	function contactar_action(){
				
		/* Insert into DB */
		$data = array();
		$data =  $_POST['contacto'];
		$data['CFechaCreacion'] = date("Y-m-d G:i:s");
		$data['CEstado'] = 0;
		
		$data['CIdUsuario'] = 0;
        $data['CLang'] = $_SESSION['iso_lang'];
		
		if(isset($_SESSION['id_user'])){
		
			$data['CIdUsuario'] = $_SESSION['id_user'];		
			
			$where["UId"] = $_SESSION['id_user'];		
			$usuario = $this->usuario_model->get_usuarios($where);
			
			$his_mail = $usuario[0]->UEmail;
			
		}else{ 
			$his_mail = $data['CEmail'];		
			
		}	
		
		$this->usuario_model->insert_record('contactar', $data);		
	
		/* SEND e-mail */				
			
            $email_body = $this->lang->line('contactar_text_12');
            $email_body .= "

"; $email_body .= $this->lang->line('email_me_interesa_contacto_6'); $email_body .= "

"; $email_body .= $this->lang->line('email_me_interesa_contacto_7'); $this->load->helper('phpmailer'); $ok = send_email($his_mail, $this->config->item('email_web'), $this->config->item('email_web_name'), $this->lang->line('contactar_text_11'), $email_body); $ok = send_email($this->config->item('email_info'), $this->config->item('email_web'), $this->config->item('email_web_name'), $this->lang->line('contactar_text_11'), $email_body); /* Overlay */ $_SESSION['fin_overlay'] = 1; $_SESSION['fin_overlay_url'] = "/home/contactar_fin"; $_SESSION['fin_overlay_params'] = ""; /* redirect to the same page*/ redirect($_POST['current_url']); } function contactar_fin(){ unset($_SESSION['fin_overlay']); unset($_SESSION['fin_overlay_url']); unset($_SESSION['fin_overlay_params']); $this->load->view('/home/contactar_fin'); } function provincias_paises_(){ $provincias = $this->usuario_model->get_records('provincias'); foreach($provincias as $provincia){ /* Check wich id_pais */ $where = array(); $where['PACountryCode'] = $provincia->PROCountryCode; $pais = $this->usuario_model->get_records('paises', $where); if(sizeof($pais) > 0){ /* Update provincia */ $data = array(); $data['PROIdPais'] = $pais[0]->PAId; $this->usuario_model->update_record('provincias', 'PROId = '.$provincia->PROId, $data); } /* END if we found Pais*/ } /* END foreach provincias */ } /* END provincias_paises function */ function captcha() { $_SESSION['fin_overlay'] = 0; unset($_SESSION['fin_overlay']); $_SESSION['fin_overlay_url'] = ""; unset($_SESSION['fin_overlay_url']); $_SESSION['fin_overlay_params'] = ""; unset($_SESSION['fin_overlay_params']); $this->load->view('/home/captcha_warning'); } function actualizar_emprendedores_proceso(){ // die("kill"); $where = "UTipoUsuario = 3 AND UFechaCaducidadCuenta IS NULL"; $usuarios = $this->usuario_model->get_records('usuarios', $where); foreach($usuarios as $usuario){ $data = array(); $data['UFechaCaducidadCuenta'] = "2013-5-1"; $this->usuario_model->update_record('usuarios', 'UId = '.$usuario->UId, $data); /* Movimiento */ $movimiento_cuenta = array(); $movimiento_cuenta["UMCIdUsurio"] = $usuario->UId; $movimiento_cuenta["UMCdTarifaAnterior"] = 0; $movimiento_cuenta["UMCdTarifaNueva"] = 3; $movimiento_cuenta["UMCCantidadProyectos"] = 10; $movimiento_cuenta["UMCMotivo"] = "Poner Fecha Caducidad Correcta"; $movimiento_cuenta["UMCFechaMovimiento"] = date("Y-m-d G:i:s"); $movimiento_cuenta["UMCFechaFinCuenta"] = "2013-5-1"; $movimiento_cuenta["UMCPagada"] = 1; $this->usuario_model->insert_movimiento_cuenta($movimiento_cuenta); print_r($usuario->UId." - ".$usuario->UUsuario); echo "
"; } } function register_please(){ $this->load->view('/home/register_please'); } function index2 (){ $_SESSION['registro_colaborador'] = true; $_SESSION['registro_tipo'] = 'x'; $this->data['frase_dia'] = $this->lang->line('home2_text_01'); $this->data["meta_title_lang"] = $this->lang->line('title_lang_home_index2'); $this->data["meta_description_lang"] = $this->lang->line('description_lang_home_index2'); $this->data["content"] = "/home/home2"; $this->load->view('template_public', $this->data); } function index3 (){ $_SESSION['registro_colaborador'] = false; $_SESSION['registro_tipo'] = 1; $this->data['frase_dia'] = $this->lang->line('home2_text_01'); $this->data["meta_title_lang"] = $this->lang->line('title_lang_home_index3'); $this->data["meta_description_lang"] = $this->lang->line('description_lang_home_index3'); $this->data["content"] = "/home/home3"; $this->load->view('template_public', $this->data); } function index4 (){ $_SESSION['registro_colaborador'] = false; $_SESSION['registro_tipo'] = 4; $this->data['frase_dia'] = $this->lang->line('home4_text_frasedia'); $this->data["meta_title_lang"] = $this->lang->line('title_lang_home_index4'); $this->data["meta_description_lang"] = $this->lang->line('description_lang_home_index4'); $this->data["content"] = "/home/home4"; $this->load->view('template_public', $this->data); } function subdomain_login($hash = ""){ /* Esta función sirve para loguear directamente al usuario en subdominio tras ser redirigido. Ya que si estás en www.brmanager.com y cambias la SESSION es por dominio.*/ if( $hash == ""){ redirect('/'); die(); } $where = array(); $where['UHashActivation'] = $hash; $usuario = $this->usuario_model->get_usuarios($where); if( sizeof($usuario) == 0){ redirect('/'); die(); } /* Este es el mismo código que la función: check() */ $paginacion = $this->usuario_model->get_records("parametros_web", "PWIdenfiticador = 'paginacion'"); $paginacion = $paginacion ? $paginacion[0]->PWValor : 10; $_SESSION['id_user'] = $usuario[0]->UId; $_SESSION['id_lang'] = $usuario[0]->UIdiomaWeb; $_SESSION['paginacion'] = ($usuario[0]->UPaginacion > 0) ? $usuario[0]->UPaginacion : $paginacion; if($updatelastlogin) $this->usuario_model->updatelastlogin($usuario[0]->UId); if(isset($_POST['no_cerrar_sesion']) && $_POST['no_cerrar_sesion'] == 1) setcookie('id_user', $usuario[0]->UId, time()+(3600*24*7), "/home/"); else setcookie( 'id_user' , '' , time()-3600 , '/' , '' , 0 ); redirect( "/".$_SESSION["iso_lang"]."/portal"); } } ?>