Пример #1
0
 public static function ejecutar()
 {
     $ejecutar = '';
     if (isset($_GET[self::$parametroAccion])) {
         $ejecutar = trim($_GET[self::$parametroAccion]);
     }
     $ejecutar = empty($ejecutar) ? array() : explode(self::$separadorAccion, $ejecutar);
     self::$id_accion = isset($ejecutar[1]) ? trim($ejecutar[1]) : '';
     //echo __METHOD__.'['.__LINE__.']'."<br/>";
     self::$id_controlador = isset($ejecutar[0]) ? trim($ejecutar[0]) : config::get('aplicacion.controlador.defecto', '');
     //depurar( array( 'ejecutar', $ejecutar));
     //echo __METHOD__.'['.__LINE__.']'."<br/>";
     if (empty(self::$id_controlador)) {
         error_grave('No es posible ejecutar la petición,' . ' no hay controlador predefinido.');
     } else {
         self::$id_controlador = strtolower(self::$id_controlador);
         $archivo = self::$rutaControladores . '/' . self::$id_controlador . '.php';
         if (!is_readable($archivo)) {
             error_grave('No es posible ejecutar la petición,' . ' no existe el archivo para el controlador' . ' "' . self::$id_controlador . '".');
         } else {
             $clase_control = 'controlador_' . self::$id_controlador;
             require_once $archivo;
             if (!class_exists($clase_control, false)) {
                 error_grave('No es posible ejecutar la petición,' . ' no existe la clase para el controlador' . ' "' . self::$id_controlador . '".');
             } else {
                 self::$controlador = new $clase_control();
                 if (self::$controlador === null) {
                     error_grave('No es posible ejecutar la petición,' . ' no se ha creado la instancia de control' . ' "' . self::$id_controlador . '".');
                 } else {
                     if (empty(self::$id_accion)) {
                         self::$id_accion = self::$controlador->accion_defecto;
                     }
                     if (empty(self::$id_accion)) {
                         error_grave('No es posible ejecutar la petición,' . ' no hay accion predefinida para el controlador' . ' "' . self::$id_controlador . '".');
                     } else {
                         $metodo = 'accion_' . self::$id_accion;
                         if (!method_exists(self::$controlador, $metodo)) {
                             error_grave('No es posible ejecutar la petición,' . ' no existe el metodo para la accion' . ' "' . self::$id_accion . '", en el controlador' . ' "' . self::$id_controlador . '".');
                         } else {
                             if (!puede_ejecutar(sesion::get('usuario'), self::$id_controlador, self::$id_accion)) {
                                 error_grave('No es posible ejecutar la petición,' . ' no tiene permisos suficientes para la accion' . ' "' . self::$id_accion . '", en el controlador' . ' "' . self::$id_controlador . '".');
                             } else {
                                 call_user_func(array(self::$controlador, $metodo));
                             }
                         }
                         //if
                     }
                     //if
                 }
                 //if
             }
             //if
         }
         //if
     }
     //if
 }
Пример #2
0
 public static function save()
 {
     $res = false;
     if (self::$cargada) {
         $archivo = self::filename();
         if (is_writable($archivo) || !file_exists($archivo) && is_writable(dirname($archivo))) {
             $datos = empty(self::$datos) ? array() : self::$datos;
             file_put_contents($archivo, '<?php' . "\r\n" . '//Configuración del Sistema actualizada el ' . date('Y-m-d H:i:s') . "\r\n" . 'return ' . var_export($datos, true) . ';' . "\r\n");
             $res = true;
         } else {
             error_grave('No es posible guardar la configuración de la aplicación.');
         }
         //if
     }
     //if
     return $res;
 }
Пример #3
0
 protected static function generarArchivo($_x_archivo, $_x_parametros, $_x_devolver = false)
 {
     if ($_x_devolver) {
         ob_start();
     }
     if (is_readable($_x_archivo)) {
         //Preparar los parametros como variables locales antes de ejecutar
         //el archivo de la vista. Descomentar la linea "extract" que interese
         //segun se deseen extraer solo parametros con nombre de variable
         //valido (primera linea), o todos, pero poniendo un prefijo de variable
         //en los nombres de indice que no sean validos o numericos (segunda
         //linea) quedando como "$indice_N"...
         extract($_x_parametros);
         //--extract( $parametros, EXTR_OVERWRITE || EXTR_PREFIX_INVALID, 'indice_');
         //Ejecutar la vista cargando el archivo PHP calculado.
         require $_x_archivo;
     } else {
         error_grave('vista no disponible (' . $_x_archivo . ').');
     }
     //if
     if ($_x_devolver) {
         $res = ob_get_clean();
         return $res;
     }
     //if
 }
Пример #4
0
 public static function usar($modelos)
 {
     if (!is_array($modelos)) {
         $modelos = array((string) $modelos);
     }
     foreach ($modelos as $modelo) {
         $archivo = self::$rutaModelos . '/' . $modelo . '.php';
         if (is_readable($archivo)) {
             //Los archivos de modelos se deben cargar una sola vez porque definen
             //una clase de objeto y no puede redefinirse una segunda vez.
             require_once $archivo;
         } else {
             error_grave('modelo no disponible (' . $archivo . ').');
         }
         //if
     }
     //foreach
 }