obj_mensaje)) { $tipo = $_SESSION[$g_aplicacion][$claseManejadora]->obj_mensaje->getTipo(); $s->assign("smty_tipoAviso", $tipo); $codError = "Código (Negocio): ".$_SESSION[$g_aplicacion][$claseManejadora]->obj_mensaje->getCodigo(); $s->assign("smty_codError", $codError); $descBreve = $_SESSION[$g_aplicacion][$claseManejadora]->obj_mensaje->getDescripcionCorta(); $s->assign("smty_descBreve", $descBreve); $textoAviso = $_SESSION[$g_aplicacion][$claseManejadora]->obj_mensaje->getDescripcionLarga(); $s->assign("smty_textoAviso", $textoAviso); unset($_SESSION[$g_aplicacion][$claseManejadora]->obj_mensaje); } $this->v_pestañas = array(); $this->str_claseManejadora = $claseManejadora; $this->str_nombreDatosConsulta = $nombreDatosConsulta; $this->str_nombreDatosEdicion = $nombreDatosEdicion; }//Fin constructor function activarPestaña($tipoPestaña,$nombreTpl){ if(($tipoPestaña=="fil")or($tipoPestaña=="lis")or($tipoPestaña=="edi")) $this->v_pestañas[$tipoPestaña]=$nombreTpl; else die("Error: Se ha incorporado un pestaña que no es de ninguno de los tipos estandar, concretamente $tipoPestaña.\nLos tipos estandar son 'fil', 'lis' y 'edi'."); } function agregarTitulos($v_titulos,$nombreTpl){ global $s; $s->assign($nombreTpl,$v_titulos); } function comportamientoPanel($dependiente=false){ //Vamos a ver cuantas pestañas tiene, y dependiendo de ello llamamos a una función o a otra switch(count($this->v_pestañas)){ case 3: //Mantenimiento de panel Ficha $this->obj_clase = & $this->comportamientoTresPestañas($dependiente); break; case 2: $this->obj_clase = & $this->comportamientoDosPestañas($dependiente); break; case 1: $this->obj_clase = & $this->comportamientoUnaPestaña($dependiente); break; default: die("Error: el número de Pestañas indicado en views no es correcto"); } return $this->obj_clase; } function comportamientoUnaPestaña($dependiente) { global $s; global $g_aplicacion; if(count($_SESSION[$g_aplicacion][$this->str_claseManejadora]->obj_ultimaConsulta)>0) { //cuando realizas el buscar y se han obtenido resultados $obj_clase = $_SESSION[$g_aplicacion][$this->str_claseManejadora]; } else { $obj_clase = new $this->str_claseManejadora(); //Guardamos la fila actual $obj_clase->int_filaActual = $_SESSION[$g_aplicacion][$this->str_claseManejadora]->int_filaActual; if($dependiente==true) $obj_clase->recargarDesdeHijo(); else $obj_clase->buscar(); } $_SESSION[$g_aplicacion][$this->str_claseManejadora] = $obj_clase; //Para el contenido de la tabla $s->assign($this->str_nombreDatosConsulta, $obj_clase->obj_ultimaConsulta); return $obj_clase; } //Fin comportamientoUnaPestaña function comportamientoDosPestañas($dependiente) { global $s; global $g_aplicacion; if (isset($_SESSION[$g_aplicacion][$this->str_claseManejadora])) { if(count($_SESSION[$g_aplicacion][$this->str_claseManejadora]->obj_ultimaConsulta)>0) { //cuando realizas el buscar y la se han obtenido resultados $obj_clase = $_SESSION[$g_aplicacion][$this->str_claseManejadora]; $otroPanel = "on"; $this->str_estadoFil = "off"; } //cuando la consulta no devuelve valores se deja elegir según el mappings y el parámetro panel. else { if ($_REQUEST["panel"] == "listar") { $otroPanel = "on"; $this->str_estadoFil = "off"; $obj_clase = new $this->str_claseManejadora(); //Guardamos la fila actual $obj_clase->int_filaActual = $_SESSION[$g_aplicacion][$this->str_claseManejadora]->int_filaActual; if($dependiente==true) $obj_clase->recargarDesdeHijo(); else $obj_clase->buscar(); } else { $otroPanel = "inactivo"; $this->str_estadoFil = "on"; } } } else { //La primerta vez que se entra en la ventana $otroPanel = "inactivo"; $this->str_estadoFil = "on"; } //Para el contenido de la tabla $s->assign($this->str_nombreDatosConsulta, $obj_clase->obj_ultimaConsulta); //La visualización de las pestañas if(isset($this->v_pestañas["lis"])) $s->assign($this->v_pestañas["lis"],$otroPanel); else $s->assign($this->v_pestañas["edi"],$otroPanel); $s->assign($this->v_pestañas["fil"],$this->str_estadoFil); return $obj_clase; } //Fin comportamientoDosPestañas function comportamientoTresPestañas($dependiente) { global $s; global $g_aplicacion; if (isset($_SESSION[$g_aplicacion][$this->str_claseManejadora])) { //Cuando estas editando if($_REQUEST["panel"]=="editar") { $this->str_estadoEdi = "on"; $this->str_estadoLis = "off"; $this->str_estadoFil = "off"; $obj_clase = $_SESSION[$g_aplicacion][$this->str_claseManejadora]; } else { $this->str_estadoEdi = "inactivo"; if(count($_SESSION[$g_aplicacion][$this->str_claseManejadora]->obj_ultimaConsulta)>0) { //cuando realizas el buscar y has buscado bien $obj_clase = $_SESSION[$g_aplicacion][$this->str_claseManejadora]; $this->str_estadoLis = "on"; $this->str_estadoFil = "off"; } else { if ($_REQUEST["panel"] == "listar") { $this->str_estadoLis = "on"; $this->str_estadoFil = "off"; $obj_clase = new $this->str_claseManejadora(); //Guardamos la fila actual $obj_clase->int_filaActual = $_SESSION[$g_aplicacion][$this->str_claseManejadora]->int_filaActual; if($dependiente==true) $obj_clase->recargarDesdeHijo(); else $obj_clase->buscar(); } else { $this->str_estadoLis = "inactivo"; $this->str_estadoFil = "on"; } } } } else { /*La primera vez q entra*/ $this->str_estadoLis = "inactivo"; $this->str_estadoFil = "on"; $this->str_estadoEdi = "inactivo"; } //Para el contenido de la tabla y de la ficha $s->assign($this->str_nombreDatosConsulta, $obj_clase->obj_ultimaConsulta); $s->assign($this->str_nombreDatosEdicion, $obj_clase->obj_ultimaEdicion); $_SESSION[$g_aplicacion][$this->str_claseManejadora] = $obj_clase; //La visualización de las pestañas $s->assign($this->v_pestañas["fil"],$this->str_estadoFil); $s->assign($this->v_pestañas["edi"],$this->str_estadoEdi); $s->assign($this->v_pestañas["lis"],$this->str_estadoLis); return $obj_clase; }//Fin de comportamientoTresPestañas }//Fin de clase IgepPanel ?>