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; } $frontSession = new SessionsModel(); 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 //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($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") ; $frontSession->setIdValue($_SESSION['usersession']['idsession']); $_SESSION['usersession']['date_last_activity'] = $datos["date_last_activity"]; list($rs_actividad, $message) = $frontSession->UpdateItem($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(); } } } ?>