![]() |
Documentación GVHIDRA 3.1.5
|
Ir al código fuente de este archivo.
Funciones | |
smarty_function_CWBotonTooltip ($params, &$smarty) |
smarty_function_CWBotonTooltip | ( | $ | params, |
&$ | smarty | ||
) |
Definición en la lÃnea 34 del archivo function.CWBotonTooltip.php.
{ $igepSmarty = new IgepSmarty(); $smarty->igepPlugin->registrarInclusionJS('objBotonToolTip.js'); // LECTURA DE VALORES DE LA PILA // //Puntero a la pila de etiquetas que contiene a CWFila $punteroPilaPadre = count($smarty->_tag_stack)-1; $CWPadre = $smarty->_tag_stack[$punteroPilaPadre][0]; //Puntero a la etiqueta Abuelo $punteroPilaAbuelo = $punteroPilaPadre - 1; $CWAbuelo = $smarty->_tag_stack[$punteroPilaAbuelo][0]; if (($CWPadre == 'CWSelector') && ($CWAbuelo == 'CWSolapa'))//Si el padre es un CWSolapa, tenemos que movernos uno más arriba, pq pasamos de el { $punteroPilaPadre = count($smarty->_tag_stack)-3; $CWPadre = $smarty->_tag_stack[$punteroPilaPadre][0]; $punteroPilaAbuelo = $punteroPilaPadre - 1; $CWAbuelo = $smarty->_tag_stack[$punteroPilaAbuelo][0]; } if (($CWPadre == 'CWSelector') || ($CWPadre == 'CWSolapa'))//Si el padre es un CWSolapa, tenemos que movernos uno más arriba, pq pasamos de el { $punteroPilaPadre = count($smarty->_tag_stack)-2; $CWPadre = $smarty->_tag_stack[$punteroPilaPadre][0]; $punteroPilaAbuelo = $punteroPilaPadre - 1; $CWAbuelo = $smarty->_tag_stack[$punteroPilaAbuelo][0]; } $punteroPilaPanel = $punteroPilaAbuelo - 2; // CWPanel - CWContenedor - CWFichaEdicion - CWFicha - (CWSolapa) - (CWSelector) $CWPanel = $smarty->_tag_stack[$punteroPilaPanel][0]; $idPanel = $smarty->_tag_stack[$punteroPilaPanel][1]['id']; $idAbuelo = $smarty->_tag_stack[$punteroPilaAbuelo][1]['id']; $iterActual = $smarty->_tag_stack[$punteroPilaPadre][2]; //inicialización de variables $nomForm = ''; if ($CWAbuelo == 'CWPanel') { $nomForm = 'F_'.$idAbuelo; // Nombre del formulario $idPanel = $idAbuelo; } // Ampliación para poder tener botones tooltip con 'action' dentro de las fichas elseif ($CWAbuelo == 'CWFichaEdicion') { $punteroPilaBisAbuelo = $punteroPilaAbuelo - 1; $punteroPilaTaAbuelo = $punteroPilaBisAbuelo - 1; $idTaAbuelo = $smarty->_tag_stack[$punteroPilaTaAbuelo][1]['id']; $nomForm = 'F_'.$idTaAbuelo; // Nombre del formulario $idPanel = $idTaAbuelo; } elseif ($CWAbuelo == 'CWContenedor') { $punteroPilaBisAbuelo = $punteroPilaAbuelo - 1; $idBisAbuelo = $smarty->_tag_stack[$punteroPilaBisAbuelo][1]['id']; $nomForm = 'F_'.$idBisAbuelo; // Nombre del formulario $idPanel = $idBisAbuelo; } $llamadaJavascript=''; $script = ''; //Variable para identificar el objTooltip que generamos $nomObjeto =""; // PARÁMETROS PROPIOS DEL BOTÓN // titulo $titulo = ''; if ($params['titulo']) { $titulo = $params['titulo']; } // funcion $funcionBtn = ''; if ($params['funcion']) { $funcionBtn = $params['funcion']; } // Acción indica el tipo de botón ['guardar','cancelar'....] // id $idBtn = null; if ($params['id']) { $idBtn = $params['id']; } // actuaSobre - Panel sobre el q se realizará la acción $actuaSobre = ''; $tresModos = 0; if ($params['actuaSobre']) { $actuaSobre = $params['actuaSobre']; if ((($idPanel == 'lis') || ($idPanel == 'lisDetalle')) && ($actuaSobre == 'ficha')) { $smarty->_tag_stack[$punteroPilaAbuelo][1]['tresModos'] = true; $tresModos = 1; } } // action - Será el action del formulario $action = ''; if ($params['action']) { $action = $params['action']; if (!stristr($action,'__')) { $puntero = ''; switch($CWAbuelo) { case 'CWPanel': // Botón en la barra superior $puntero = $punteroPilaAbuelo; break; case 'CWContenedor': // Botón en un panel filtro $puntero = $punteroPilaAbuelo - 1; break; case 'CWFichaEdicion': // Botón en un panel ficha o tabular case 'CWTabla': $puntero = $punteroPilaAbuelo - 2; break; } } if ($puntero != '') { // Si no lleva la clase manejadora puesta por defecto if ($action == 'nuevo') $action = $smarty->_tag_stack[$puntero][1]['claseManejadora']."__".$action."&actuaSobre=".$actuaSobre; else $action = $smarty->_tag_stack[$puntero][1]['claseManejadora']."__".$action; } } // PARÁMETROS VENTANA DE SELECCIÓN $panelActua = ''; if ($params['panelActua']) { $panelActua = $params['panelActua']; } $filaActual = ''; if (isset($params['filaActual'])) { $filaActual = $params['filaActual']; } $formVS = ''; if ($params['formActua']) { $formVS = $params['formActua']; } $claseManejadora = ''; if ($params['claseManejadora']) { $claseManejadora = $params['claseManejadora']; } else { $claseManejadora = $smarty->_tag_stack[$punteroPilaAbuelo][1]['claseManejadora']; if (($CWAbuelo == "CWFichaEdicion") || ($CWAbuelo == "CWTabla")) { $puntero = $punteroPilaAbuelo-2; $claseManejadora = $smarty->_tag_stack[$puntero][1]['claseManejadora']; } else if (($CWAbuelo == "CWContenedor")) { $puntero = $punteroPilaAbuelo-1; $claseManejadora = $smarty->_tag_stack[$puntero][1]['claseManejadora']; } } // No se utiliza... pq??? para q era??? $acumularValor = false; if ($params['acumularValor']) { $acumularValor = $params['acumularValor']; } // rutaManual - url a una página q nos mostrará en una ventana $rutaManual = ''; if ($params['rutaManual']) { $rutaManual = $params['rutaManual']; } if ($actuaSobre != '') { $esDetalle = 'false'; $esMaestro = 'false'; if (isset($smarty->_tag_stack[$punteroPilaAbuelo][1]['detalleDe'])) { $esDetalle = 'true'; } if (isset($smarty->_tag_stack[$punteroPilaAbuelo][1]['esMaestro'])) { $esMaestro = $smarty->_tag_stack[$punteroPilaAbuelo][1]['esMaestro']; } $llamadas_js = ''; $hidden = ''; switch($funcionBtn) { case 'insertar': $nomObjeto = "bttlInsertar_".$idAbuelo; $llamadas_js .= $nomObjeto." = new objBTTInsertar('".$nomObjeto."','".$idAbuelo."','".$esMaestro."','".$esDetalle."','".$tresModos."');"; //Es un detalle, tenemos q copiar los valores dl maestro if ($esDetalle == 'true') { $formMaestro = 'F_'.$smarty->_tag_stack[$punteroPilaAbuelo][1]['detalleDe']; $formDetalle = 'F_'.$smarty->_tag_stack[$punteroPilaAbuelo][1]['id']; $llamadaJavascript .= $nomObjeto.".obtenerValoresMaestro('".$formMaestro."','".$formDetalle."');"; } // No tenemos parámetro action, no va a hacer un submit el formulario x lo tanto activamos las filas a insertar y los botones if ($action == '') $llamadaJavascript .= $nomObjeto.".insertar();"; break; case 'saltar': $llamadaJavascript = "document.forms['".$nomForm."'].target='oculto';"; $llamadaJavascript .= "document.forms['".$nomForm."'].action='phrame.php?action=IgepSaltoVentana&idBotonSalto=".$idBtn."';"; $llamadaJavascript .= "document.forms['".$nomForm."'].submit();"; break; // // REVIEW: Vero - VENTANA MODAL case 'modal': // $dblClick = "paramsSource = {};"; // $dblClick .= "paramsSource.formulario = '".$nomForm."';"; // $dblClick .= "paramsSource.clase = 'Registro';"; // $dblClick .= "paramsSource.accion = 'buscar';"; $nomObjeto = "bttlModal_".$idAbuelo; $llamadaJavascript .= "paramsSource = {};"; $llamadaJavascript .= "paramsSource.formulario = '".$nomForm."';"; $llamadaJavascript .= "paramsSource.clase = 'Registro';"; $llamadaJavascript .= "paramsSource.accion = 'buscar';"; $claseModal = ''; if ($params['claseModal']) { $claseModal = $params['claseModal']; } if ($claseModal != '') { $ruta = "phrame.php?action=".$claseModal."__nuevo&actuaSobre=ficha"; // $dblClick .= "url = '".$ruta."';"; // $dblClick .= "openModal(url, paramsSource);"; $llamadaJavascript .= "url = '".$ruta."';"; $llamadaJavascript .= "openModal(url, paramsSource, 400, 400);"; } break; case 'modificar': $nomObjeto = "bttlModificar_".$idAbuelo; $llamadas_js .= $nomObjeto." = new objBTTModificar('".$nomObjeto."','".$idAbuelo."','".$esMaestro."','".$esDetalle."','".$tresModos."');"; // No tenemos parámetro action, no va a hacer un submit el formulario x lo tanto activamos las filas a insertar y los botones if ($action == '') { if ($actuaSobre == "ficha") { // Modificamos en la misma ficha $llamadaJavascript .= $nomObjeto.".modificarFicha();"; } else { // Modificamos en la misma tabla $llamadaJavascript .= "if (".$idPanel."_tabla.hayFilaSeleccionada()) "; $llamadaJavascript .= $nomObjeto.".modificarTabla();"; } } break; case 'eliminar': $nomObjeto = "bttlEliminar_".$idAbuelo; $llamadas_js .= $nomObjeto." = new objBTTEliminar('".$nomObjeto."','".$idAbuelo."','".$esMaestro."','".$esDetalle."');"; // No tenemos parámetro action, no va a hacer un submit el formulario x lo tanto activamos las filas a insertar y los botones if ($action == '') { if ($actuaSobre == "ficha") { // Eliminamos en la misma ficha $llamadaJavascript .= $nomObjeto.'.eliminarFicha();'; } else { // Eliminamos en la misma tabla $llamadaJavascript .= "if (".$idPanel."_tabla.hayFilaSeleccionada())"; $llamadaJavascript .= $nomObjeto.'.eliminarTabla();'; } } break; case 'restaurar': case 'limpiar': $nomObjeto = "bttlLimpiar_".$idAbuelo; $llamadas_js .= $nomObjeto." = new objBTTLimpiar('".$nomObjeto."','".$idAbuelo."','".$esMaestro."','".$esDetalle."');"; $llamadaJavascript .= $nomObjeto.".limpiarCampos();"; $llamadaJavascript .= $idPanel."_comp.bloquearSalida(false);"; break; case 'buscarVS': case 'buscarvs': $campo = $actuaSobre; if (($CWPadre == 'CWFila') || ($CWAbuelo == 'CWFichaEdicion')) { $campo = $actuaSobre."___".$panelActua."_".$iterActual; } $llamadaJavascript .= "buscar('".$claseManejadora."','".$formVS."','".$campo."','".$panelActua."','".$filaActual."');"; break; case 'abrirVS': case 'abrirvs': $campo = $actuaSobre; if (($CWPadre == 'CWFila') || ($CWAbuelo == 'CWFichaEdicion')) { //Mandamos el campo sin prefijo pq en la función javascript se detecta si viene d inserción o modificación $campo = $campo."___".$panelActua."_".$iterActual; } $smarty->igepPlugin->registrarInclusionJS('window.js'); $smarty->igepPlugin->registrarInclusionJS('ventanaSeleccion.js'); $formVS = 'F_'.$formVS; $dblClick .= "openWS('".$claseManejadora."','".$actuaSobre."','".$formVS."','".$campo."','".$panelActua."')"; break; case 'ayuda': $smarty->igepPlugin->registrarInclusionJS('window.js'); if ($rutaManual != '') { $llamadaJavascript .= "Open_Vtna('doc/".$rutaManual."','urlAbs',700,500,'no','no','no','no','yes','yes');"; } else { $llamadaJavascript .= "alert('No hay manual de la aplicación');"; } break; case 'actualizaCampos': //parametros necesarios para utilizar esta opción: //titulo:contendrá el nombre del campo de texto //formActua: para saber quien es el panel y poder componer la llamada a la función dl objComprobación //panelActua: para componer el nombre del campo, q luego será el origen //actuaSobre: array con los elementos que se quieren actualizar //funcion="actualizaCampos"; //$nomObjeto = "bttlActualizar_".$idAbuelo; // //Tenemos que distinguir si es una insercion(ins) o una modificacion(cam) $numRegTotales = count($smarty->_tag_stack[$punteroPilaAbuelo][1]['datos']); if ($CWAbuelo != 'CWContenedor') { if (($numRegTotales == 0) or ($iterActual >= $numRegTotales)) $nombre = 'ins___'.$titulo.'___'.$panelActua."_".$iterActual; else $nombre = 'cam___'.$titulo.'___'.$panelActua."_".$iterActual; } else $nombre = $titulo; $hidden .= "<input type='hidden' name='".$nombre."' id='".$nombre."' value='' />"; $llamadaJavascript .= "objCampo = document.getElementById('".$nombre."');objCampo.value = 'S';".$idPanel."_comp.actualizarElemento(objCampo,'".$params['actuaSobre']."');"; break; case 'exportCSV': $claseManejadora = $smarty->_tag_stack[$punteroPilaAbuelo][1]['claseManejadora']; $llamadaJavascript = "document.forms['".$nomForm."'].target='oculto';"; $llamadaJavascript .= "document.forms['".$nomForm."'].action='phrame.php?action=exportCSV&actuaSobre=".$actuaSobre."&claseManejadora=".$claseManejadora."';"; $llamadaJavascript .= "document.forms['".$nomForm."'].submit();"; break; case 'print': $titulo = $smarty->_tag_stack[$punteroPilaPadre][1]['titulo']; $claseManejadora = $smarty->_tag_stack[$punteroPilaAbuelo][1]['claseManejadora']; $rutaPrint = "phrame.php?action=defaultPrint&actuaSobre=".$actuaSobre."&claseManejadora=".$claseManejadora."&titulo=".$titulo; $llamadaJavascript .= "Open_Vtna('".$rutaPrint."','urlAbs',700,500,'no','no','no','no','yes','yes');"; break; }//Fin switch }//Fin if actua sobre // Si el botón lleva asociado un action se realiza un submit if ($action != '') { $llamadaJavascript .= "document.forms['".$nomForm."'].target='oculto';"; $llamadaJavascript .= "document.forms['".$nomForm."'].action='phrame.php?action=".$action."';"; $llamadaJavascript .= "document.forms['".$nomForm."'].submit();"; } $boton = $titulo; // Aparecera solamente el titulo si no se ha puesto la imagen if ($params['imagen']) { //Identificador del boton en el form, ej. "btnfil_buscar" ej "btncalculo_particular" if ($idBtn == null) $idBtn = 'btn'.$smarty->_tag_stack[$punteroPilaAbuelo][1]['id'].'_'.$funcionBtn; else // Cuando el botón no pertenece al panel sino dentro de la ventana $idBtn = 'btn'.$idBtn.'_'.$funcionBtn.$smarty->_tag_stack[$punteroPilaAbuelo][1]['id']; $ruta = IMG_PATH_CUSTOM."botones/".$params['imagen'].".gif"; $rutaOff = IMG_PATH_CUSTOM."botones/".$params['imagen']."off.gif"; $rutaTrans = IMG_PATH_CUSTOM."pestanyas/pix_trans.gif"; // VENTANA DE SELECCIÓN if (($funcionBtn != 'abrirVS') && ($funcionBtn != 'abrirvs')) { $boton ="<img id='img_$nomObjeto' src='$ruta' style='cursor:pointer;' border='0'"; $boton.=" title='$titulo' alt='Btn_$funcionBtn' onClick=\"javascript:$llamadaJavascript\" />"; } else { $numRegTotales = count($smarty->_tag_stack[$punteroPilaAbuelo][1]['datos']); $iterActual = $smarty->_tag_stack[$punteroPilaPadre][2]; // Creamos una capa para poder ocultar y visualizar el botón tooltip de la ventana de selección. // Debería ser un botón como el del calendario. $aperturaCapa = "<span id='IGEPVisibleBtn".$campo."'"; $aperturaCapa .=" style='visibility:visible;'>";//Fin style $cierreCapa = '</span>'; // Comprobación en una tabla para las filas q serán para insertar nuevos registros pondremos el botón ToolTip en transparente if ( ($CWPadre == 'CWFila') && ($iterActual >= $numRegTotales) ) { $boton = "<img id=\"vs_".$campo."\" src=\"".$rutaTrans."\" border='0' title=\"".$titulo."\" alt=\"ffBtn_".$funcionBtn."\" onDblClick = \"".$dblClick."\" />"; } elseif ( // NO estoy en un panel de búsqueda. El botón d ventana selección no tiene q aparecer si no se está en modo activo. ( ($CWPadre == 'CWFila') || ($CWAbuelo == 'CWFichaEdicion') ) && ($smarty->_tag_stack[$punteroPilaPanel][1]['accion'] != 'modificar') && ($smarty->_tag_stack[$punteroPilaPanel][1]['accion'] != 'insertar') ) { $boton = "<img id=\"vs_".$campo."\" src=\"".$rutaOff."\" border='0' title=\"".$titulo."\" alt=\"ffBtn_".$funcionBtn."\" onDblClick = \"".$dblClick."\" />"; } else { $boton = "<img id=\"vs_".$campo."\" src=\"".$ruta."\" border='0' title=\"".$titulo."\" alt=\"Btn_".$funcionBtn."\" onDblClick = \"".$dblClick."\" />"; } $boton = $aperturaCapa.$boton.$cierreCapa; } } if ( $nomObjeto != '' ) //Registramos el objeto JS $smarty->igepPlugin->registerJSObj($nomObjeto); $igepSmarty->addPreScript($llamadas_js); if ($CWPadre == "CWFila") // Si el botón está en una fila de una tabla { $referencia = $titulo; $v_titulo = $smarty->_tag_stack[$punteroPilaAbuelo][1]['titulosColumnas']; $v_titulo[$referencia] = ''; $smarty->_tag_stack[$punteroPilaAbuelo][1]['titulosColumnas'] = $v_titulo; $smarty->_tag_stack[$punteroPilaAbuelo][6]['sizes'][] = '2'; $smarty->_tag_stack[$punteroPilaAbuelo][6]['sizes']['total'] += intval('2'); return("<td>".$igepSmarty->getPreScript().$hidden.$boton."</td>\n"); } else return($igepSmarty->getPreScript().$hidden.$boton."\n"); }