define("TITULO_PAGINA", $tituloPagina); define("SKIN", $skin); define("KEY_GOOGLE_ANALYTICS", $keyApiGoogleAnalitycs); define("USUARIO_AUTENTICADO", "usuario_autenticado"); define("ACCESO_SUPER_ADMIN", 30); define("ACCESO_ADMIN", 20); define("ACCESO_USER", 10); define("ID_ROL_ADMIN_GLOBAL", 1); /************************************************************** * VERSIÓN UTILIZADA: Versión 2.1.0 * PROGRAMADO POR: Javier Rico Motos y Sergio Santos Belmonte * EMAIL: info@zuinqstudio.com * WEB: http://www.zuinqstudio.com * © Todos los derechos reservados ***************************************************************/ function bbddConect($host = null, $basedatos = null, $user = null, $password = null, $port = null, $encoding = 'utf8') { global $debugMode,$usuarioBBDD,$passwordBBDD,$nombreBBDD,$hostBBDD,$portBBDD,$encodingBBDD; $host = (is_null($host) ? $hostBBDD : $host); $basedatos = (is_null($basedatos) ? $nombreBBDD : $basedatos); $user = (is_null($user) ? $usuarioBBDD : $user); $password = (is_null($password) ? $passwordBBDD : $password); $port = (is_null($port) ? $portBBDD : $port); $encoding = (is_null($encoding) ? $encodingBBDD : $encoding); try { $dsn = "mysql:host=$host;dbname=$basedatos;charset=$encoding;port=$port"; $link = new PDO($dsn, $user, $password, array( PDO::ATTR_EMULATE_PREPARES => false, //No se puede poner a true porque si no al devolver los resultados de las consultas los devuelve todos como string PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, )); } catch (PDOException $e){ echo "Error al conectar".($debugMode ? " (".$e->getMessage().")" : ""); } return $link; } function bbddQueryFetch($query, $params = null) { return bbddQuery($query, $params, true); } function bbddQuery($query, $params = null, $fetchItems = false) { global $link, $debugMode; try { $res = true; if(is_null($params)) { $stmt = $link->query($query); } else { $stmt = $link->prepare($query); $res = $stmt->execute($params); } return ($fetchItems ? $stmt->fetchAll(\PDO::FETCH_ASSOC) : ($res ? $stmt : false)); } catch(\PDOException $e) { if($debugMode) { echo "
".$e->getMessage().""; exit($e); } else { logMessage("ERROR AL EJECUTAR QUERY: '$query'. Params ".json_encode($params)."."); logMessage("ERROR: ".$e->getMessage()); } } return false; } function bbddComposeDebugSQL($query, $params) { $res = $query; $tmp = array(); preg_match_all("/(\\:\w+)/", $query, $tmp); foreach($tmp[0] AS $k) { if($k != "") { if(is_numeric($params[$k]) || is_null($params[$k])) { $res = str_replace($k, $params[$k], $res); } else { $res = str_replace($k, '"'.$params[$k].'"', $res); } } } return $res; } function bbddLastInsertId(){ global $link; return intval($link->lastInsertId()); } function bbddSingleScalarResult($query, $params = null){ global $link; if(is_null($params)) { $stmt = $link->query($query); } else { $stmt = $link->prepare($query); $stmt->execute($params); } $res = $stmt->fetchColumn(); return (is_numeric($res) ? $res : 0); } function beginTransaction(){ global $link; if(!$link->inTransaction()) { $link->beginTransaction(); } } function commitTransaction(){ global $link; if($link->inTransaction()) { $link->commit(); } } function rollbackTransaction(){ global $link; if($link->inTransaction()) { $link->rollBack(); } } function bbddCloseConnection(){ global $link; $link = null; } function bbddScapeHTMLSpecialChars($str, $encoding = 'UTF-8') { $str = str_replace("<", "<", $str); $str = str_replace(">", ">", $str); return $str; // return htmlspecialchars($str, ENT_NOQUOTES|ENT_HTML401, $encoding, false); //No usamos esta porque codifica el & a & } function bbddUnscapeHTMLSpecialChars($str, $encoding = 'UTF-8') { return htmlentities($str, ENT_COMPAT|ENT_IGNORE, $encoding); } /************************************************************** * VERSIÓN UTILIZADA: Versión 2.2.3 * PROGRAMADO POR: Javier Rico Motos y Sergio Santos Belmonte * EMAIL: info@zuinqstudio.com * WEB: http://www.zuinqstudio.com * © Todos los derechos reservados ***************************************************************/ function iniciaSession($nombreDeSesion) { if(!sessionAvailable()) { return false; } session_name($nombreDeSesion); session_start(); return sessionId(); } function finalizaSession() { if(sessionAvailable()) { session_regenerate_id(); session_destroy(); } } function sessionId() { return session_id(); } function sessionStarted() { //return (session_status() != PHP_SESSION_NONE); return (sessionId() != ''); } function existeVarSession($nombreVar) { return (sessionAvailable() && isset($_SESSION[$nombreVar])); } function getVarSession($nombreVar, $valorDefecto = null) { if(sessionAvailable() && existeVarSession($nombreVar)) { return $_SESSION[$nombreVar]; } else { return $valorDefecto; } } function setVarSession($nombreVar, $nuevoValor) { if(sessionAvailable()) { $_SESSION[$nombreVar] = $nuevoValor; } } function getObjSession($nombreVar, $valorDefecto = null) { if(sessionAvailable() && existeVarSession($nombreVar)) { return unserialize($_SESSION[$nombreVar]); } else { return $valorDefecto; } } function setObjSession($nombreVar, $nuevoValor) { if(sessionAvailable()) { $_SESSION[$nombreVar] = serialize($nuevoValor); } } function unsetVarSession($nombreVar) { if(sessionAvailable()) { unset($_SESSION[$nombreVar]); } } function setSessionTimeout($tiempoEnSeg = 3600) { ini_set("session.cookie_lifetime", $tiempoEnSeg); session_set_cookie_params($tiempoEnSeg); } function sessionAvailable() { global $argc; return !isset($argc); } /************************************************************** * VERSIÓN UTILIZADA: Versión 2.2.3 * PROGRAMADO POR: Javier Rico Motos y Sergio Santos Belmonte * EMAIL: info@zuinqstudio.com * WEB: http://www.zuinqstudio.com * © Todos los derechos reservados ***************************************************************/ function setUsuarioAutenticado($user) { global $usuarioAutenticado; $usuarioAutenticado = $user; setObjSession(USUARIO_AUTENTICADO, $usuarioAutenticado); } function unsetUsuarioAutenticado() { global $usuarioAutenticado; unset($usuarioAutenticado); unsetVarSession(USUARIO_AUTENTICADO); } function getUsuarioAutenticado(){ if(hayUsuarioAutenticado()){ return getObjSession(USUARIO_AUTENTICADO); }else{ return false; } } function hayUsuarioAutenticado() { return existeVarSession(USUARIO_AUTENTICADO); } function estaReg(){ $usuarioAutenticado = getUsuarioAutenticado(); if($usuarioAutenticado){ return $usuarioAutenticado->getUsuario(); }else{ return 0; } } function usuarioNivel(){ $usuarioAutenticado = getUsuarioAutenticado(); if($usuarioAutenticado){ return $usuarioAutenticado->getNivelAcceso(); }else{ return 0; } } function usuarioNombre(){ $usuarioAutenticado = getUsuarioAutenticado(); if($usuarioAutenticado){ return $usuarioAutenticado->getNombre()." ".$usuarioAutenticado->getApellidos(); }else{ return estaReg(); } } function compruebaNivel($nivel_acceso, $numError = 4){ global $urlPaginaLogin; if(!estaReg() || usuarioNivel() < $nivel_acceso){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function tienePermiso($permiso){ $usuarioAutenticado = getUsuarioAutenticado(); if($usuarioAutenticado){ return $usuarioAutenticado->tienePermiso($permiso); }else{ return false; } } function compruebaPermisos($permisos, $numError = 4){ global $urlPaginaLogin; $enco = tieneAlgunPermiso($permisos); if(!$enco){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function tieneAlgunPermiso($permisos){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); $permisosArray = preg_split("/,/", $permisos); if($usuarioAutenticado){ foreach($permisosArray AS $permiso){ if(tienePermiso($permiso)){ return true; } } } return false; } function compruebaRol($idRol, $numError = 4){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); if(!$usuarioAutenticado || !$usuarioAutenticado->tieneRol($idRol)){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function compruebaAlgunRol($roles, $numError = 4){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); $encontradoRol = false; if($usuarioAutenticado && is_array($roles)){ foreach($roles AS $idRol){ if($usuarioAutenticado->tieneRol($idRol)){ $encontradoRol = true; break; } } } if(!$encontradoRol){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function compruebaAutenticado($numError = 3){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); if(!$usuarioAutenticado){ redirecciona($urlPaginaLogin."?error1=".$numError); } } /* Funcion para generar passwords desde la web o desde el admin */ function nuevoPassword($len=6){ $i=0; srand(date("s")); while($i<$len){ $str.=chr((rand()%26)+97); $i++; } return $str; } function generaIdentificador(){ return session_id().time(); } /************************************************************** * VERSIÓN UTILIZADA: Versión 2.2.3 * PROGRAMADO POR: Javier Rico Motos y Sergio Santos Belmonte * EMAIL: info@zuinqstudio.com * WEB: http://www.zuinqstudio.com * © Todos los derechos reservados ***************************************************************/ include_once("../includes/clases/utils/includes.inc.php"); function includeClases($clases = "", $pathBase = "../includes/clases"){ $todos = ($clases==""); $clases = explode(",",strtolower($clases)); if(in_array("boe",$clases) || $todos){ include_once($pathBase."/boe.class.php"); } if(in_array("inmueble",$clases) || $todos){ include_once($pathBase."/inmueble.class.php"); } }