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; } }