/** * Importa y retorna una instancia de un modelo, el modelo va sin extensión * * @param string $modelo Nombre del Modelo * @param bool $es_admin Bandera si el modelo está en la carpeta admin * @return Modelo Instnacia del modelo */ protected function getModelo($modelo, $es_admin = FALSE) { if ($es_admin) { $_ruta = Cnt::$dir_raiz . 'app/admin/Modelos/' . $modelo . '.php'; $modelo = $modelo . 'MdlAdm'; } else { $_ruta = Cnt::$dir_raiz . 'app/Modelos/' . $modelo . '.php'; $modelo = $modelo . 'Mdl'; } if (!is_readable($_ruta)) { Error::mostrar('Archivo de modelo "' . $modelo . '" no encontrado', $_ruta . ' no existe'); } require_once $_ruta; if (!class_exists($modelo)) { Error::mostrar('Modelo "' . $modelo . '" no definido', 'Clase no definida en ' . $_ruta); } return $modelo::getInstancia(); }
/** * Analiza una ruta y obtiene el código HTML * * Método que analiza una ruta, si es válido ejecuta esta ruta y retorna en * código HTML generado por la ruta * @param string $ruta Ruta que retorna un HTML * @return string Código HTML generado por la ruta */ public function getHtml($ruta) { $_aux = array_filter(explode('/', $ruta)); $_contro = strtolower(array_shift($_aux)); $_metodo = strtolower(array_shift($_aux)); $_args = $_aux; $_ruta = Cnt::$dir_ejec . 'Controladores/' . $_contro . '.php'; if (!is_readable($_ruta)) { Error::mostrar('Archivo de controlador "' . $_contro . '" no existe', 'El archivo ' . $_ruta . ' no existe'); } require_once $_ruta; $_clase = $_contro . 'Ctld'; if (!class_exists($_clase, FALSE)) { Error::mostrar('Controlador "' . $_contro . '" no definido', 'Clase no definida en ' . $_ruta); } $_ctld = $_clase::getInstancia(); if (!is_callable(array($_ctld, $_metodo))) { Error::mostrar('Método "' . $_metodo . '" no encontrado', 'Método no existe en ' . $_ruta); } return call_user_func_array(array($_ctld, $_metodo), $_args); }
/** * Método que maneja el tiempo de sesión */ private static function tiempo() { if (isset($_SESSION[Config::$id . '__tiempo'])) { if (time() - $_SESSION[Config::$id . '__tiempo'] > Config::$sesion * 60) { self::apagar(); Error::mostrar('Tiempo de sesión expirada', 'El tiempo de sesión ha expirado', FALSE); } $_SESSION[Config::$id . '__tiempo'] = time(); } }
/** * Ejecuta el método de la clase controlador con sus respectivos argumentos * * Método que verifica si el controlador, método y argumentos son válidos, * y lo ejecuta, de no ser así llama al gestor de errores */ public function resolver() { $this->buscarAlias(); $_ruta = Cnt::$dir_ejec . 'Controladores/' . $this->contro . '.php'; if (!is_readable($_ruta)) { Error::mostrar('Archivo de controlador "' . $this->contro . '" no existe', 'El archivo ' . $_ruta . ' no existe'); } require_once $_ruta; $_clase = $this->contro . 'Ctld'; if (!class_exists($_clase, FALSE)) { Error::mostrar('Controlador "' . $_clase . '" no definido', 'Clase no definida en ' . $_ruta); } $_contro = $_clase::getInstancia(); if (!method_exists($_contro, $this->metodo)) { Error::mostrar('Método "' . $this->metodo . '" no encontrado', 'Método no existe en ' . $_ruta); } Cnt::setDirVista(Cnt::$dir_ejec . 'Vistas/'); call_user_func_array(array($_contro, $this->metodo), $this->args); }
public function setJs($ruta, $plantilla = TRUE) { if ($plantilla) { $_ruta = Cnt::$url_plan . 'js/' . $ruta . '.js'; } else { $_ruta = $ruta . '.js'; } if (!is_readable($_ruta)) { Error::mostrar('JavaScript "' . $ruta . '" no existe', 'No existe el archivo ' . $_ruta); } $this->js[] = $_ruta; }