get('components').DS.$comp_name.DS.$controllerName.'.php'; //Incluimos el fichero que contiene nuestra clase controladora solicitada if(is_file($controllerPath)) require $controllerPath; else die('El controlador no existe - 404 not found'); //Si no existe la clase que buscamos y su accion, tiramos un error 404 if (is_callable(array($controllerName, $actionName)) == false){ trigger_error ($controllerName . '->' . $actionName . '` no existe', E_USER_NOTICE); return false; } //Si todo esta bien, creamos una instancia del controlador y llamamos a la accion //Antes validamos el tiempo de existencia de la sesión en caso de haber ingresado al sistema //Obtener el tiempo de sesion en segundos //instanciamos el objeto $session para manejar la sesión vía base de datos $frontSession = new SessionsModel(); //echo "Estoy verde!!!!!!"; if(isset($_SESSION['usersession']['iduser'])){ $duracion_session = 20;//en minutos $valor_intervalo_session = 'PT'.$duracion_session.'M'; $intervalo_session = new DateInterval( $valor_intervalo_session ); //minutos $session_valida = true;//variable para definir si vemos la acción o mostramos el login //echo "HOLA :::: -------> ".$_SESSION['usersession']['iduser']." --- iduser
"; //obtenemos la ultima sesión ingresada $rs_session = $frontSession->validarSession(@$_SESSION['usersession']['iduser']); //print_r($rs_session); $info_session = $rs_session->fetch(); if(is_array($info_session)){ $date_currency = new DateTime(date('Y-m-d H:i:s')); $date_session = new DateTime($info_session["date_last_activity"]); date_add($date_session, $intervalo_session); if($date_session < $date_currency ){ $session_valida = false; //unset($_SESSION['usersession']); }else{ $session_valida = true; } }else{ $session_valida = false; } //if(is_array($info_session) && ($info_session['date_session'] < (date("Y-m-d H:i:s",$_SESSION['usersession']['date_session'] + $tiempo_session))) ){ if($session_valida){ $date_last_activity = new DateTime(date("Y-m-d H:i:s")); $datos["date_last_activity"] = $date_last_activity->format("Y-m-d H:i:s") ; $datos["idsession"] = $info_session["idsession"]; $_SESSION['usersession']['date_last_activity'] = $date_last_activity->format("Y-m-d H:i:s") ; $_SESSION['usersession']['idsession'] = $info_session["idsession"]; $rs_actividad = $frontSession->setActivity($datos); //Se direcciona al controlador $controller = new $controllerName(); $controller->$actionName(); }else{ //establecemos el controlado y la acción por defecto $actionName = "logout"; if($comp_name != "com_users"){ $comp_name = "com_users"; if($controllerName != "UsersController" ){ $controllerName = "UsersController"; //esto es para no instanciarlo dos veces $controllerPath = $config->get('components').DS.$comp_name.DS.$controllerName.'.php'; require $controllerPath; } } //:::instanciamos e invocamos la acción $controller = new $controllerName(); $controller->$actionName(); } }else{ $controller = new $controllerName(); $controller->$actionName(); } } } ?>