shell bypass 403

GrazzMean Shell

Uname: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
Software: Apache
PHP version: 5.6.40 [ PHP INFO ] PHP os: Linux
Server Ip: 217.160.0.194
Your Ip: 216.73.217.99
User: u72294154 (9179942) | Group: ftpusers (600)
Safe Mode: OFF
Disable Function:
NONE

name : InmueblesController.php
<?php
App::uses('PagesController', 'Controller');

class InmueblesController extends PagesController {

    public $components = array('Session');


    public function home() {
        //Variables recibidas en URL
        $this->setInmueblesMap();

   // debug($this->params);


        if(empty($this->Session->read()['Vista']['vista']) || ($this->Session->read()['Vista']['vista'] != 'mapa' && $this->Session->read()['Vista']['vista'] != 'grid' && $this->Session->read()['Vista']['vista'] != 'lista')) {

            $this->Session->write('Vista.vista', 'lista');

        }else {
            $this->Session->write('Vista.vista', $this->Session->read()['Vista']['vista']);

            $vista = $this->Session->read()['Vista']['vista'];

            if(!empty($this->params->query['vista']) && $this->params->query['vista'] == 'mapa') {

                $this->Session->write('Vista.vista', 'mapa');

            }elseif(!empty($this->params->query['vista']) && $this->params->query['vista'] == 'grid') {

                $this->Session->write('Vista.vista', 'grid');

            }elseif(!empty($this->params->query['vista']) && $this->params->query['vista'] == 'lista') {

                $this->Session->write('Vista.vista', 'lista');
            }

        }



        //Listado de inmuebles
        $conditions = array('Inmueble.publicado' => true);
        array_push($this->uses, 'Slider', 'InmuebleListadoFiltro', 'Inmueble', 'InmuebleTipo', 'InmuebleInmuebleListado', 'Localidad', 'Provincia', 'Zona');

        $this->set('buscadorGestiones', $this->App->getInmueblesGestionesSelect());
        $this->set('buscadorTipos', $this->InmuebleTipo->find('list', 
            array(
                'conditions' => array('InmuebleTipo.tipo_id' => 0, 'AND' => array(
                )), 
                'fields' => array('InmuebleTipo.id', 'InmuebleTipo.nombre'), 
                'order' => $this->App->getOrden('InmuebleTipo'))));


        // Condicion si tiene tipo inmueble
        if(!empty($this->params->query['id_tipo_inmueble'])) {
            $conditionTipo = $this->params->query['id_tipo_inmueble'];
        }else {
            $conditionTipo = '';
        }

        // Condicion si tiene localidad
        if(!empty($this->params->query['id_localidad'])) {
            $conditionLocalidad = $this->params->query['id_localidad'];
        }else {
            $conditionLocalidad = '';
        }

        $this->set('buscadorProvincias', $this->App->getProvinciasSelect());
        

        /** LOCALIDADES **/

        if(!empty($this->params->query['id_provincia'])) {

        $conditionsLocalidades = array('id_provincia' => $this->params->query['id_provincia']);
        
        }else {
            $conditionsLocalidades = array();
        }

        $this->set('buscadorLocalidades', $this->App->getLocalidadesSelect($conditionsLocalidades));
        /** LOCALIDADES **/


        /** ZONAS **/
        if(!empty($this->params->query['id_localidad'])) {

        $conditionsZonas = array('localidad_id' => $this->params->query['id_localidad']);

        }else {
            $conditionsZonas = array('localidad_id' => 'NO MOSTRAR');
        }

        $this->set('buscadorZonas', $this->App->getZonasSelect($conditionsZonas));
        /** ZONAS **/




        (!empty($this->params->query['id_gestion'])) ? $gestion = $this->params->query['id_gestion'] : $gestion = '%'.''.'%';



        /******** Si viene por buscador de palabras *****/
        if(!empty($this->params->query['dataKeywords'])) {
        
        $conditions['Inmueble.publicado'] = true;

        //Buscamos la palabras si contiene provincia
        $arrayProvincia = array();
        foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordProvincia) {

            $dataKeywordsProvincia = $this->Provincia->find('all', array('conditions' => array('nombre LIKE' =>  $dataKeywordProvincia)));

            foreach ($dataKeywordsProvincia as $dataKeywordProvincia) {
             
            array_push($arrayProvincia, $dataKeywordProvincia['Provincia']['id']);
            }
            if(!empty($arrayProvincia)) {
                $conditions['Inmueble.id_provincia'] = $arrayProvincia;
                break;
            }
        }



        //Buscamos la palabras si contiene localidad
        $arrayLocalidad = array();
        foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordLocalidad) {

            $dataKeywordsLocalidad = $this->Localidad->find('all', array('conditions' => array('nombre LIKE' =>  $dataKeywordLocalidad)));

            foreach ($dataKeywordsLocalidad as $dataKeywordLocalidad) {
             
            array_push($arrayLocalidad, $dataKeywordLocalidad['Localidad']['id']);
            }
            if(!empty($arrayLocalidad)) {
                $conditions['Inmueble.id_localidad'] = $arrayLocalidad;
                break;
            }
        }


        // Sin dividir palabras
        if(empty($arrayLocalidad)) {

            $dataKeywordsLocalidad = $this->Localidad->find('all', array('conditions' => array('nombre LIKE' =>  $dataKeywordLocalidad)));

            foreach ($dataKeywordsLocalidad as $dataKeywordLocalidad) {
             
            array_push($arrayLocalidad, $dataKeywordLocalidad['Localidad']['id']);
            }
            if(!empty($arrayLocalidad)) {
                $conditions['Inmueble.id_localidad'] = $arrayLocalidad;
                break;
            }
        
        }


        //Buscamos la palabras si contiene zona
        if(empty($arrayLocalidad)) {
        $arrayZona = array();
        foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordZona) {

            $dataKeywordsZona = $this->Zona->find('all', array('conditions' => array('nombre LIKE' =>  $dataKeywordZona)));

            foreach ($dataKeywordsZona as $dataKeywordZona) {
             
            array_push($arrayZona, $dataKeywordZona['Zona']['id']);
            }
            if(!empty($arrayZona)) {
                $conditions['Inmueble.id_zona'] = $arrayZona;
                break;
            }
        }
        }



        //Buscamos la palabras si contiene tipo de inmueble
        $arrayInmuebleTipo = array();
        foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordInmuebleTipo) {

            $dataKeywordsInmuebleTipo = $this->InmuebleTipo->find('all', array('conditions' => array('nombre LIKE' =>  '%'.$dataKeywordInmuebleTipo. '%')));

            foreach ($dataKeywordsInmuebleTipo as $dataKeywordInmuebleTipo) {
             
            array_push($arrayInmuebleTipo, $dataKeywordInmuebleTipo['InmuebleTipo']['id']);
            }
            if(!empty($arrayInmuebleTipo)) {
                $conditions['Inmueble.id_tipo_inmueble'] = $arrayInmuebleTipo;
                break;
            }
        }




        //Buscamos la palabras si contiene titulo_corto
        if(empty($arrayProvincia) && empty($arrayLocalidad) && empty($arrayZona) && empty($arrayInmuebleTipo)) {
        $arrayInmuebleTitulo = array();

            $dataKeywordsInmuebleTitulo = $this->Inmueble->find('all', array('conditions' => array('titulo_corto LIKE' =>  '%'.$this->params->query['dataKeywords']. '%')));

            foreach ($dataKeywordsInmuebleTitulo as $dataKeywordInmuebleTitulo) {
             
            array_push($arrayInmuebleTitulo, $dataKeywordInmuebleTitulo['Inmueble']['id']);
            }
            if(!empty($arrayInmuebleTitulo)) {
                $conditions['Inmueble.id'] = $arrayInmuebleTitulo;
            }
        }


        if(empty($arrayProvincia) && empty($arrayLocalidad) && empty($arrayZona) && empty($arrayInmuebleTipo) && empty($arrayInmuebleTitulo)) {
        //Buscamos la palabras si contiene descripcion
        $arrayInmuebleDescripcion = array();

            $dataKeywordsInmuebleDescripcion = $this->Inmueble->find('all', array('conditions' => array('descripcion LIKE' =>  '%'.$this->params->query['dataKeywords']. '%')));

            foreach ($dataKeywordsInmuebleDescripcion as $dataKeywordInmuebleDescripcion) {
             
            array_push($arrayInmuebleDescripcion, $dataKeywordInmuebleDescripcion['Inmueble']['id']);
            }
            if(!empty($arrayInmuebleDescripcion)) {
                $conditions['Inmueble.id'] = $arrayInmuebleDescripcion;
            }
        }





      /*  $conditions['Inmueble.descripcion LIKE'] = '%'. $this->params->query['dataKeywords'] .'%';
        $conditions['Inmueble.titulo_corto LIKE'] = '%'. $this->params->query['dataKeywords'] .'%'; */

        //debug($conditions);





        }else {

        $conditions = array(
            'id_tipo_inmueble LIKE' => (!empty($this->params->query['id_tipo_inmueble'])) ? $this->params->query['id_tipo_inmueble'] : '%'.''.'%',
            'titulo_corto LIKE' => (!empty($dataKeywordsLocalidad) || empty($this->params->query['dataKeywords'])) ? '%'."".'%' : '%'.$this->params->query['dataKeywords'].'%',
            'descripcion LIKE' => (!empty($dataKeywordsLocalidad) || empty($this->params->query['dataKeywords'])) ? '%'."".'%' : '%'.$this->params->query['dataKeywords'].'%',
            'id_provincia LIKE' => (!empty($this->params->query['id_provincia'])) ? $this->params->query['id_provincia'] : '%'.''.'%',
            'id_localidad LIKE' => (!empty($this->params->query['id_localidad'])) ? $this->params->query['id_localidad'] : '%'.''.'%',
            'id_zona LIKE' => (!empty($this->params->query['id_zona'])) ? $this->params->query['id_zona'] : '%'.''.'%',
            'id_gestion LIKE' => (!empty($this->params->query['id_gestion']) && $this->params->query['id_gestion'] == '1') ? '1' : $gestion,
            'banos >=' => (!empty($this->params->query['banos'])) ? $this->params->query['banos'] : '%'.''.'%',
            'precio >=' => (!empty($this->params->query['precio_min'])) ? $this->params->query['precio_min'] : '0',
            'precio <=' => (!empty($this->params->query['precio_max'])) ? $this->params->query['precio_max'] : '10000000000',
            'superficie >=' => (!empty($this->params->query['superficie_min'])) ? $this->params->query['superficie_min'] : '0',
            'superficie <=' => (!empty($this->params->query['superficie_max'])) ? $this->params->query['superficie_max'] : '10000000000',
            'habitaciones >=' => (!empty($this->params->query['habitaciones'])) ? $this->params->query['habitaciones'] : '%'.''.'%',
            'tour_virtual LIKE' => !empty($this->params->query['tour_virtual']) && $this->params->query['tour_virtual'] == 'on' ? '%http%' : '%'.''.'%',
            'referencia LIKE' => !empty($this->params->query['referencia']) ? '%'.$this->params->query['referencia'].'%' : '%'.''.'%',
            'publicado' => true
        );

        }


        if(!empty($this->params->query['jardin']) && $this->params->query['jardin'] == 'on') {
            $conditions['jardin'] = 1;
        }

        if(!empty($this->params->query['ascensor']) && $this->params->query['ascensor'] == 'on') {
            $conditions['ascensor'] = 1;
        }

        if(!empty($this->params->query['terraza']) && $this->params->query['terraza'] == 'on') {
            $conditions['terraza'] = 1;
        }

        if(!empty($this->params->query['garaje']) && $this->params->query['garaje'] == 'on') {
            $conditions['garaje'] = 1;
        }

        if(!empty($this->params->query['calefaccion']) && $this->params->query['calefaccion'] == 'on') {
            $conditions['calefaccion'] = '%%';
}/*else {
 $conditions['calefaccion'] = '0';   
}*/

if(!empty($this->params->query['piscina']) && $this->params->query['piscina'] == 'on') {
    $conditions['piscina'] = 1;
}



$numTotalInmuebles = $this->Inmueble->find('all', array('conditions' => $conditions));

$this->set('numTotalInmuebles', $numTotalInmuebles);
$this->set('noNoticias', true);


        // Vista Mapa

if($this->params->parametros == 'vista-mapa' || $this->Session->read()['Vista']['vista'] == 'mapa') {

    $this->Session->write('Vista.vista', 'mapa');

    $vista = 'mapa';

    $inmuebles = $this->Inmueble->find('all', array('conditions' => $conditions, 'order' => (!empty($this->params->query['order'])) ? $this->params->query['order'] : '', 'limit' => '10000'));

            //Quitamos limites dado que el listado principal puede tener una gran cantidad de inmuebles
    ini_set('memory_limit', '-1');
    ini_set('max_execution_time', 0);

    $inmuebleHelper = new InmuebleHelper(new View());
    $listadoMapa = array('totales' => 0, 'items' => array());
    foreach ($inmuebles as $l) {
        if (!empty($l['Inmueble']['geolocalizacion'])) {
            $listadoMapa['totales'] ++;
            $geo = explode(',', $l['Inmueble']['geolocalizacion']);
            if(!empty($l['InmuebleGaleria'][0]['url'])) {
                $imagen = $inmuebleHelper->getImagen($l['InmuebleGaleria'][0]['url'], 242, 178);
            }
            $listadoMapa['items'][] = array(
                'titulo' => $inmuebleHelper->trimText($l['Inmueble']['descripcion'], 45),
                'referencia' => $l['Inmueble']['referencia'],
                'gestion' => $l['Inmueble']['id_gestion'],
                'precio' => $inmuebleHelper->getPrecio($l['Inmueble']),
                'banos' => $l['Inmueble']['banos'],
                'imagen' => $imagen,
                'habitaciones' => $l['Inmueble']['habitaciones'],
                'superficie_util' => $l['Inmueble']['superficie_util'],
                'url' => $inmuebleHelper->url(array('controller' => $this->params->controller, 'action' => 'detalle', 'inmueble' => $l['Inmueble']['seo'])),
                'latitud' => $geo[0],
                'longitud' => $geo[1],
            );
        }
    }


    $this->set('listado', $listadoMapa);

    $this->javascripts[] = 'https://maps.google.com/maps/api/js?sensor=false';
    $this->javascripts[] = 'https://www.google.com/jsapi';
    $this->javascripts[] = 'infobox';
    $this->javascripts[] = 'gmaps.lib';
    $this->javascripts[] = 'frontend/inmuebles-mapa';


        // Vista Grid
}elseif($this->params->parametros == 'vista-grid' || $this->Session->read()['Vista']['vista'] == 'grid') {

    $this->Session->write('Vista.vista', 'grid');
    $vista = 'grid';


        //Obtenemos la información de las páginas que tiene el listado
    $this->set('numTotalInmuebles', $numTotalInmuebles);

    $limit = 12;
    $pagTotales = ceil(count($numTotalInmuebles) / $limit);
    $pagActual = (int) $this->getParamsSession('pagina', 1);
        if ($pagActual < 1) { //si solicitamos páginas por debajo de la 1
            $pagActual = 1;
        } elseif ($pagActual > $pagTotales) { //si solicitamos páginas por encima del total de páginas
            $pagActual = $pagTotales;
        }
        $this->set('paginaActual', $pagActual);
        $this->set('paginaTotales', $pagTotales);

        $this->paginate = array('conditions' => $conditions, 'limit' => $limit, 'order' => (!empty($this->params->query['order'])) ? $this->params->query['order'] : $this->App->getOrden('Inmueble'), 'page' => $pagActual);

        $listado = $this->paginate('Inmueble');

        $this->set('listado', $listado);


        // Vista Lista
    }elseif($this->params->parametros == 'vista-lista' || $this->Session->read()['Vista']['vista'] == 'lista' || empty($this->Session->read('Vista.vista'))) {

        $this->Session->write('Vista.vista', 'lista');

        $vista = 'lista';


        //Obtenemos la información de las páginas que tiene el listado
        $this->set('numTotalInmuebles', $numTotalInmuebles);

        $limit = 12;
        $pagTotales = ceil(count($numTotalInmuebles) / $limit);
        $pagActual = (int) $this->getParamsSession('pagina', 1);
        if ($pagActual < 1) { //si solicitamos páginas por debajo de la 1
            $pagActual = 1;
        } elseif ($pagActual > $pagTotales) { //si solicitamos páginas por encima del total de páginas
            $pagActual = $pagTotales;
        }
        $this->set('paginaActual', $pagActual);
        $this->set('paginaTotales', $pagTotales);

        $this->paginate = array('conditions' => $conditions, 'limit' => $limit, 'order' => (!empty($this->params->query['order'])) ? $this->params->query['order'] : $this->App->getOrden('Inmueble'), 'page' => $pagActual);

        $listado = $this->paginate('Inmueble');

        $this->set('listado', $listado);


    }


    $this->set('vista', $vista);

    $this->render('/Pages/inmuebles');
}

public function detalle() {
    array_push($this->uses, 'Inmueble');
    $inmueble = $this->Inmueble->findBySeoAndPublicado('/'.$this->params->inmueble, true);

    $similares = $this->Components->load('Inmueble')->getSimilares($inmueble, $this->getParamsSession('inmueblesConditions'));

    $this->set('similares', $similares);

        //Comprobamos si hemos encontrado el inmueble
    if (empty($inmueble)) {
        $this->Session->setFlash('No se ha encontrado el inmueble al que deseas acceder.' . $this->btnClose, 'default', array('class' => 'alert alert-danger'));
        $this->redirect(array('controller' => 'pages', 'action' => 'error'));
    }

    if ($this->request->is('post') && !empty($this->request->data['Contacto'])) {
        array_push($this->uses, 'Contacto');
        $this->Contacto->create();
        $this->request->data['Contacto']['pagina'] = 'Inmueble';
        $this->request->data['Contacto']['entidad'] = 'inmueble';
        $this->request->data['Contacto']['entidad_id'] = $inmueble['Inmueble']['id'];

        if($this->__checkRecaptchaResponse($this->request->data['g-recaptcha-response'])){
            if ($this->Contacto->save($this->request->data)) {
                //Email
                $Email = new CakeEmail(Configure::read('App.env'));
                $Email->to(Configure::read('App.email'))
                ->subject('Contacto en la web de ' . Configure::read('App.nombre'))
                ->template('contacto')
                ->emailFormat('html')
                ->viewVars(array('fecha' => date('d/m/Y G:i'), 'contacto' => $this->request->data['Contacto'], 'entidad' => $inmueble['Inmueble']))
                ->send();

                $this->Session->setFlash('/obj-inmueble', 'default', array(), 'ga');
                $this->Session->setFlash('Gracias por completar el formulario de contacto, nos pondremos en contacto con usted para atenderte lo antes posible.' . $this->btnClose, 'default', array('class' => 'alert alert-success'));
                $this->redirect(array('controller' => 'inmuebles', 'action' => 'detalle', 'inmueble' => $inmueble['Inmueble']['seo']));
            } else {
                $this->errores = $this->Contacto->validationErrors;
            }

        } else {
          // Usuario NO ha resuelto recaptcha GOOGLE
            $this->Session->setFlash('Debe pasar la validación del Captcha para poder enviar el formulario.' . $this->btnClose, 'default', array('class' => 'alert alert-danger'));  
        }
    }

    $this->set('noNoticias', true);

    $this->set('inmueble', $inmueble);
    $this->set('provincias', $this->App->getProvinciasSelect());
    $this->set('localidades', $this->App->getLocalidadesSelect(array('Localidad.id_provincia' => $inmueble['Inmueble']['id_provincia'])));
    $this->set('estados', $this->App->getInmueblesEstadosSelect());
    $this->set('gestiones', $this->App->getInmueblesGestionesSelect());
    $this->set('tipos', $this->App->getInmueblesTiposSelect());

        //Metas
    $this->metas['title'] = strip_tags($inmueble['Inmueble']['titulo_corto']. ' - Altamira21');
    $this->metas['description'] = $inmueble['Inmueble']['descripcion']. ' - Altamira21';


    $this->stylesheets[] = 'https://code.interactivaclic.com/bxslider/4.2.3/jquery.bxslider.min.css';
    $this->stylesheets[] = 'https://code.interactivaclic.com/lightGallery/1.1.4/css/lightGallery.css';
    $this->javascripts[] = 'https://code.interactivaclic.com/bxslider/4.2.3/jquery.bxslider.min.js';
    $this->javascripts[] = 'https://code.interactivaclic.com/lightGallery/1.1.4/js/lightGallery.min.js';
    $this->javascripts[] = 'https://maps.google.com/maps/api/js?sensor=false';
    $this->javascripts[] = 'frontend/galeria';
    $this->render('/Pages/inmueble');
}

public function referencia() {
    array_push($this->uses, 'Inmueble');
    $inmuebles = $this->Inmueble->find('all', array('conditions' => array('Inmueble.publicado' => true, 'Inmueble.referencia' => $this->params->referencia)));

        //Comprobamos si hemos encontrado algún inmueble
    if (empty($inmuebles)) {
        $this->Session->setFlash('No se ha encontrado la referencia introducida.' . $this->btnClose, 'default', array('class' => 'alert alert-danger'));
        $this->redirect(array('controller' => 'inmuebles', 'action' => 'home'));
    }

    $this->set('listado', $inmuebles);

        //Obtenemos los IDs de las entidades para después actualizar el nº de impresiones
    foreach ($inmuebles as $e) {
        $this->impresiones['inmuebles'][] = $e['Inmueble']['id'];
    }

        //Migas
    $this->migas['Inmuebles con la referencia: ' . $this->params->descriptor] = array('controller' => $this->params->controller, 'action' => $this->params->action, 'referencia' => $this->params->referencia);

    $this->render('/Pages/referencia');
}

private function getListadoInmuebles($conditions = array()) {

}

    //Método que genera las condiciones de las áreas
private function getFiltroArea(&$conditions, $campo, $seoID = null) {
    if (!empty($this->params->query[$campo]) && !empty($seoID[$this->params->query[$campo]]) && empty($this->params->query['localidad'])) {
            //Buscamos las localidades del área seleccionada
        array_push($this->uses, 'Localidad');
        $localidadesIDs = $this->Localidad->find('list', array('fields' => array('Localidad.id', 'Localidad.id'), 'conditions' => array('Localidad.id_area' => $seoID[$this->params->query[$campo]])));
        $conditions['Inmueble.id_localidad'] = array_merge(array(0), $localidadesIDs);
    }
}

    //Método que genera las condiciones de los campos en caso que sean rangos
private function getFiltroRango(&$conditions, $campo, $campoTabla = null) {
    if (empty($campoTabla)) {
        $campoTabla = $campo;
    }

    if (!empty($this->params->query["$campo-desde"]) || !empty($this->params->query["$campo-hasta"])) {
        $desde = (!empty($this->params->query["$campo-desde"])) ? $this->params->query["$campo-desde"] : null;
        $hasta = (!empty($this->params->query["$campo-hasta"])) ? $this->params->query["$campo-hasta"] : null;

        if (empty($hasta)) {
            $conditions["Inmueble.$campoTabla >="] = $desde;
        } elseif (empty($desde)) {
            $conditions["Inmueble.$campoTabla <"] = $hasta;
        } else {
            $conditions["Inmueble.$campoTabla >="] = $desde;
            $conditions["Inmueble.$campoTabla <"] = $hasta;
        }

        if (array_key_exists('NOT', $conditions)) {
            $conditions['NOT'] = array();
        }
        $conditions['NOT']["Inmueble.$campoTabla"] = 0;
    }
}

    //Método que genera las condiciones de las habitaciones y baños
private function getFiltroValores(&$conditions, $campo, $campoTabla, $valores, $valoresLast) {
    if (!empty($this->params->query[$campo])) {
        foreach ($valores as $k => $v) {
            if ($this->params->query[$campo] == Inflector::slug($v, '-')) {
                    if ($valoresLast == $v) { //último elemento
                        $conditions["Inmueble.$campoTabla >="] = $k;
                        $this->filtro[$campo] = array($v => 0);
                    } else {
                        $conditions["Inmueble.$campoTabla"] = $k;
                        $this->filtro[$campo] = array($v => 0);
                    }
                }
            }
        }
    }

    private function getFiltroExtras(&$conditions) {
        if (!empty($this->params->query['extras'])) {
            $extras = explode('-', $this->params->query['extras']);
            foreach ($extras as $e) {
                $conditions["Inmueble." . str_replace(array('aireacondicionado'), array('aire_acondicionado'), $e)] = true;
            }
        }
    }


    //Método que pasa a la vista un array con valores obtenidos de la propia tabla
    private function getArrayValores($elementosNum, $campo, $vista) {
        $out = array();

        if (!empty($elementosNum[$campo])) {
            $out = array_keys($elementosNum[$campo]);
            sort($out);
        }

        $this->set($vista, $out);
    }

    private function setInmueblesMap() {
        //Gestión
        if (!empty($this->params->gestion)) {
            $this->params->query['gestion'] = $this->params->gestion;
        }

        //Tipo
        if (!empty($this->params->tipo) && $this->params->tipo != 'inmuebles') {
            $this->params->query['tipo'] = $this->params->tipo;
        }

        //Estado
        if (!empty($this->params->estado)) {
            $this->params->query['estado'] = $this->params->estado;
        }


        //Parametros
        if (!empty($this->params->parametros)) {
            $this->getInmueblesMapParams($this->params->parametros);
        }
    }

    private function getInmueblesMapParams($query) {
        foreach (explode('_', $query) as $p) {
            if (substr_count($p, 'pagina-')) {
                $this->params->query['pagina'] = str_replace(array('pagina-'), null, $p);
            } elseif (substr_count($p, 'vista-')) {
                $this->params->query['vista'] = str_replace(array('vista-'), null, $p);
            } elseif (substr_count($p, 'orden-')) {
                $this->params->query['orden'] = str_replace(array('orden-'), null, $p);
            } elseif (substr_count($p, 'precio-desde-')) {
                $this->params->query['precio-desde'] = str_replace(array('precio-desde-'), null, $p);
            } elseif (substr_count($p, 'precio-hasta-')) {
                $this->params->query['precio-hasta'] = str_replace(array('precio-hasta-'), null, $p);
            } elseif (substr_count($p, 'extras-')) {
                $this->params->query['extras'] = str_replace(array('extras-'), null, $p);
            } elseif (substr_count($p, '-habitacion')) {
                $this->params->query['habitacion'] = $p;
            } elseif (substr_count($p, '-bano')) {
                $this->params->query['bano'] = $p;
            } elseif (substr_count($p, 'busqueda-')) {
                $this->params->query['busqueda'] = str_replace(array('busqueda-'), null, $p);
            }
        }
    }


    private function __checkRecaptchaResponse($response){
    // verifying the response is done through a request to this URL
        $url = 'https://www.google.com/recaptcha/api/siteverify';
    // The API request has three parameters (last one is optional)
        $data = array('secret' => '6LeT4HYgAAAAAEBBSxodXmdxlPjy17kh8F4P5HDF',
            'response' => $response,
            'remoteip' => $_SERVER['REMOTE_ADDR']);

    // use key 'http' even if you send the request to https://...
        $options = array(
            'http' => array(
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => http_build_query($data),
            ),
        );

    // We could also use curl to send the API request
        $context  = stream_context_create($options);
        $json_result = file_get_contents($url, false, $context);
        $result = json_decode($json_result);
        return $result->success;
    }

}
© 2026 GrazzMean