Exemple #1
0
 protected function Get($var)
 {
     return $this->data->getTemplateVars($var);
 }
 /**
  * Ejecuta una peticion
  *
  * Carga el componente y ejecuta su metodo especifico
  * Si $mostrar tiene un valor true, se invoca la plantilla respectiva
  * y se muestra el contenido. Si tiene un valor false, ejecuta el metodo del modulo
  * invocado y retorna su respuesta
  *
  * @param String $peticion
  * @param Boolean $mostrar
  * @return unknown
  */
 public function ejecutar($peticion, $parametros = null, $mostrar = true, $llamado = false)
 {
     //Separara la peticion en Componente y accion
     $peticion = explode(".", $peticion);
     $componente = $peticion[0];
     $accion = $peticion[1];
     $dir = strtolower($componente);
     //Verifica la existencia del componente y lo incluye o devuelve un error
     if (file_exists("app/componentes/{$dir}.class.php")) {
         require_once "app/componentes/{$dir}.class.php";
         //Crear el objeto de datos smarty independiente para el componente
         $c_smarty = new Smarty_Data($this->smarty);
         $obj = new $componente($this, $c_smarty, $parametros, $llamado);
         //Verifica la exitencia de la accion o devuelve un error
         if (method_exists($obj, $accion)) {
             if ($mostrar) {
                 //$this->smarty->assign("componente", $dir);
                 //$this->smarty->assign("vista", $accion);
                 //Se asignan las variables al smarty personal del componente
                 $c_smarty->assign("componente", $dir);
                 $c_smarty->assign("vista", $accion);
                 //ejecuta la accion del componente
                 $obj->{$accion}();
                 //Verifica la bandera Ajax, si es afirmativa muestra una vista
                 if ($this->parametros['ajaxafw'] == 1 && $obj->ajax == "" || $obj->ajax == 1) {
                     //$this->smarty->assign("ajaxafw", 1);
                     $c_smarty->assign("ajaxafw", 1);
                     //Obtiene la vista a incluir
                     //$ptl=$this->smarty->get_template_vars("vista");
                     //$mod=$this->smarty->get_template_vars("componente");
                     $ptl = $c_smarty->getTemplateVars("vista");
                     $mod = $c_smarty->getTemplateVars("componente");
                     //Verifica la existencia de la vista y la muestra
                     if (file_exists("app/vistas/{$mod}/{$ptl}.tpl")) {
                         //$this->smarty->display("mostrar.tpl");
                         $tpl = $this->smarty->createTemplate("mostrar.tpl", $c_smarty);
                         $tpl->display();
                     } else {
                         Error::manejarError($this, 3, array($ptl . ".tpl", $componente, $accion));
                         return;
                     }
                 } else {
                     //En el caso contrario de no ser una peticion ajax, llama a la plantilla seleccionada
                     //Y la muestra
                     $ini = new Configuracion();
                     $plantilla = $ini->get("plantilla", "default");
                     //Si se ha definido una plantilla diferente para el modulo se usa
                     if ($obj->plantilla != null) {
                         $plantilla = $obj->plantilla;
                     }
                     //obtiene la vista a incluir
                     //$ptl=$this->smarty->get_template_vars("vista");
                     //$mod=$this->smarty->get_template_vars("componente");
                     $ptl = $c_smarty->getTemplateVars("vista");
                     $mod = $c_smarty->getTemplateVars("componente");
                     //Verifica la existencia de la vista y la plantilla y procede a mostrarla
                     if (file_exists("app/vistas/{$mod}/{$ptl}.tpl")) {
                         //$this->smarty->assign("vista", "$ptl");
                         $c_smarty->assign("vista", "{$ptl}");
                         if (file_exists("app/vistas/plantillas/{$plantilla}.tpl")) {
                             //$this->smarty->display("plantillas/$plantilla.tpl");
                             $tpl = $this->smarty->createTemplate("plantillas/{$plantilla}.tpl", $c_smarty);
                             $tpl->display();
                         } else {
                             Error::manejarError($this, 4, array($plantilla, $ptl . ".tpl", $componente, $accion));
                         }
                     } else {
                         Error::manejarError($this, 3, array($ptl . ".tpl", $componente, $accion));
                         return;
                     }
                 }
             } else {
                 return $obj->{$accion}();
             }
         } else {
             Error::manejarError($this, 2, array($componente, $accion));
             return;
         }
     } else {
         Error::manejarError($this, 1, $componente);
         return;
     }
 }