![]() |
Documentación GVHIDRA 3.1.5
|
Ir al código fuente de este archivo.
Funciones | |
smarty_function_CWAreaTexto ($params, &$smarty) |
smarty_function_CWAreaTexto | ( | $ | params, |
&$ | smarty | ||
) |
devuelve una cadena para mostrar el componente en html e incluir[linkar] ficheros en su caso
parametros
disabled | boolean |
@returns | string |
No vacío ////////////////////////////////////////////////////////////////////////////////
Definición en la lÃnea 34 del archivo function.CWAreaTexto.php.
{ $igepSmarty = new IgepSmarty(); // 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]; $CWSelector = false; if ($CWPadre == "CWSelector") $CWSelector = true; 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]; } if ($CWAbuelo == 'CWContenedor') //stamos en un panel de búsqueda { $punteroPilaPanel = $punteroPilaAbuelo - 1; } else { $punteroPilaPanel = $punteroPilaAbuelo - 2; } $idPanel = $smarty->_tag_stack[$punteroPilaPanel][1]['id']; // CODIGO NECESARIO PARA CADA COMPONENTE // // Primero defino el nombre del componente. $n_comp="CWAreaTexto"; // Incrementamos el número de componentes CWCampoTexto $num = $smarty->igepPlugin->registrarInstancia($n_comp); if($params['nombre']) { $idCampo=$params['nombre']; } else { $idCampo=$n_comp.$num; } // FIN CODIGO NECESARIO DE CADA COMPONENTE // // Ahora generamos el codigo del componente // Longitud mínima if ($params['longitudMinima']) { $llamadaJS = $idPanel."_comp.informaAvisoJS('LONGITUDMINIMA',this,'".$params['longitudMinima']."');"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 190); } // Longitud maxima if ($params['longitudMaxima']) { $llamadaJS = $idPanel."_comp.comprobarMaximo(this.type, this, '".$params['longitudMaxima']."');"; $igepSmarty->addAccionEvento("onKeyUp", $llamadaJS, 180); $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 170); } // valor por defecto ? if($params['value']) { if ((!is_array($params['value'])) && ($params['value'] != '')) $value = htmlentities($params['value']); else $value = $params['value']; } else { $value=""; } $editable = 'true'; if($params['editable']) { $editable = $params['editable']; } if(isset($params['tabindex'])) { $valorIndex = $params['tabindex']; if ($editable == 'false') $valorIndex = abs($params['tabindex'])*(-1); $tabindex="tabindex='".$valorIndex."'"; } else { if ($editable == 'false') $tabindex="tabindex='-1'"; else $tabindex=""; } $obligatorio = 'false'; if($params['obligatorio']) { $obligatorio = $params['obligatorio']; } // cols if($params['cols']) { $cols="cols=\"".$params['cols']."\""; } // rows if($params['rows']) { $rows="rows=\"".$params['rows']."\""; } $obligatorio = false; if($params['obligatorio']) { $obligatorio = $params['obligatorio']; } if (isset($params['actualizaA'])) { $actuoSobrePlugin = $params['actualizaA']; $llamadaJS = $idPanel."_comp.actualizarElemento(this,'".$params['actualizaA']."');"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS); } //Visibilidad inicial $visible = true; if ( (isset($params['visible'])) && ( (strtolower(trim($params['visible'])) == 'false') || (strtolower(trim($params['visible'])) == 'falso') || (strtolower(trim($params['visible'])) == 'no') || (strtolower(trim($params['visible'])) == 'oculto') || (strtolower(trim($params['visible'])) == 'invisible') || ($params['visible'] === false) ) ) { $visible = false; } //Tratamiento de etiquetas asociadas $textoAsociado = ""; $textoAsociadoColumna = ""; $mostrarTextoAsociado = "false"; //Si hay etiqueta asociada... if ( (isset($params['textoAsociado'])) && (trim($params['textoAsociado']) !='') ) { $textoAsociado = $params['textoAsociado'].':'; $textoAsociadoColumna = $params['textoAsociado']; $mostrarTextoAsociado = "true"; } else { $textoAsociado = ucfirst($idCampo).":"; $textoAsociadoColumna = ucfirst($idCampo); $mostrarTextoAsociado = "false"; } //Decidimos si se muestra o no el texto asociado if (isset($params['mostrarTextoAsociado'])) { $mostrarTextoAsociado = trim(strtolower($params['mostrarTextoAsociado'])); } switch ($mostrarTextoAsociado) { case 'no': case 'false': $mostrarTextoAsociado = "display:none; "; break; case 'si': case 'true': $mostrarTextoAsociado = "display:inline; "; break; default: $mostrarTextoAsociado = "display:inline; "; }//Fin switch //Fin tratamiento de etiquetas $ini = ""; $fin = ""; $hiddentxt = ""; //Si el padre es una fila o una ficha.... if (($CWPadre == "CWFila") || ($CWAbuelo == "CWFichaEdicion")) { $iterActual = $smarty->_tag_stack[$punteroPilaPadre][2]; $numRegTotales = count($smarty->_tag_stack[$punteroPilaAbuelo][1]['datos']); $iterActualExtra=0; $numRegTotalesExtras=0; $idFila = $smarty->_tag_stack[$punteroPilaAbuelo][1]['id']."_".$iterActual; // TAMAÑO COLUMNAS if (($CWPadre == "CWFila") && (isset($params['cols'])) && ($iterActual == 0)) { // Hay que almacenar el tamaño del campo para poder fijar el ancho de las columnas $smarty->_tag_stack[$punteroPilaAbuelo][6]['sizes'][] = $params['cols']; $smarty->_tag_stack[$punteroPilaAbuelo][6]['sizes']['total'] += intval($params['cols']); } if ($iterActual >= $numRegTotales) { //$contInsercion = $iterActual - $numRegTotales; // Componer el nombre dl campo: params[nombre]_idFila // ej: cad_inv_dni__F_tabla1_2 $idCampo = "ins___".$idCampo."___".$idFila; //Si el padre es una fila, incluimos los TD if ($CWPadre == "CWFila") { $ini = "<td align='center'>\n"; $fin = "</td>\n"; $campoEstadoFila = "est_".$idFila; $llamadaJS = $idPanel."_tabla.cambiarEstado('insertada',this,'".$campoEstadoFila."');"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 1); } if ($CWPadre == "CWFicha") { $campoEstadoFila = "est_".$idFila; $llamadaJS = "document.getElementById('".$campoEstadoFila."').value='insertada';"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 1); } } else { // Componer el nombre dl campo: params[nombre]_idFila // ej: cad_inv_dni__F_tabla1_2 $idCampo = "cam___".$idCampo."___".$idFila; //Si el padre es una fila, incluimos los TD if ($CWPadre == "CWFila") { $ini = "<td align='center'>\n"; $fin = "</td>\n"; $campoEstadoFila = "est_".$idFila; if (($editable != "no") && ($editable != "false")) { $llamadaJS = $idPanel."_tabla.cambiarEstado('modificada',this,'".$campoEstadoFila."');"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 1); } } if ($CWPadre == "CWFicha") { $llamadaJS = $idPanel."_comp.comprobarModificacion('".$idCampo."');"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 1); } //Obtenemos el registro que le corresponde y fijamos el valor $datosReg = $smarty->_tag_stack[$punteroPilaAbuelo][1]['datos'][$iterActual]; //Asignamos el valor de registro, controlando el PEAR:DB $valueReg=null; //Si es la nueva version de PEAR, da igual que sea Postgres que Oracle (columna en minúsculas) if (!isset($valueReg)) $valueReg = $datosReg[strtolower($params['nombre'])]; //Si aqui aun no tiene valor, puede ser Pear "case sensitive" contra Postgres (columna mayúscula/minúsculas) if (!isset($valueReg)) $valueReg = $datosReg[$params['nombre']]; //Por último, si aquí tampoco tiene valor, puede ser Pear "case sensitive" contra Oracle (columna mayúsculas) if (!isset($valueReg)) $valueReg = $datosReg[strtoupper ($params['nombre'])]; // Fin del proceso de asignación del valor if (isset($valueReg) && ($valueReg!="")) $value=htmlentities($valueReg); if (($valueReg == null) && ($value == '')) $value=''; } // Creamos un campo hidden para la concurrencia (valor anterior) //Comprobamos si hay que crear el hidden o no if(strpos($idCampo,'cam')!==false) $idHidden=str_replace("cam___","ant___",$idCampo); if ($idHidden!="") { if (substr($value, 0, 2)==SALTO_LINEA) { $value=SALTO_LINEA.$value; } $hiddentxt="<div id='capa_".$idHidden."' style='display:none' >"; $hiddentxt.="<textarea name='".$idHidden."' id='".$idHidden."' "; $hiddentxt.=$tabindex." ".$cols." ".$rows." >"; $hiddentxt.=$value; $hiddentxt.="</textarea></div>"; } // editable = true,false,nuevo | si/no/nuevo switch($CWPadre) { case "CWFila": switch($editable) { case "true": case "si": $classHTML = " class=\"formularios tablaEdi\""; $estadoHTML = "readOnly"; break; case "false": case "no": $classHTML = " class=\"formularios tablaNoEdi\""; $estadoHTML = "readOnly"; break; case "nuevo": $classHTML = " class=\"formularios tablaNuevo\""; $estadoHTML = "readOnly"; break; } break; case "CWFicha": switch($editable) { case "true": case "si": // Comprobamos si se vuelve a cargar la plantilla con la acción modificar/insertar, activar los campos if ($smarty->_tag_stack[$punteroPilaAbuelo][1]['accion'] == 'modificar') { $classHTML = " class=\"formularios modificable\""; $estadoHTML = ""; } else if ($smarty->_tag_stack[$punteroPilaAbuelo][1]['accion'] == 'insertar') { $classHTML = " class=\"formularios editable\""; $estadoHTML = ""; } else { $classHTML = " class=\"formularios editable\""; $estadoHTML = "readOnly"; } break; case "false": case "no": $classHTML = " class=\"formularios noEditable\""; $estadoHTML = "readOnly"; break; case "nuevo": // Comprobamos si se vuelve a cargar la plantilla con la acción modificar/insertar, activar los campos if ($smarty->_tag_stack[$punteroPilaAbuelo][1]['accion'] == 'modificar') { $classHTML = " class=\"formularios nuevo\""; $estadoHTML = "readOnly"; //Pasamos el tabindex a negativo, ya que no será accesible $tabindex=" tabindex='-1' "; } else if ($smarty->_tag_stack[$punteroPilaAbuelo][1]['accion'] == 'insertar') { $classHTML = " class=\"formularios editable\""; $estadoHTML = ""; } else { $classHTML = " class=\"formularios nuevo\""; $estadoHTML = "readOnly"; //Pasamos el tabindex a negativo, ya que no será accesible $tabindex=" tabindex='-1' "; } break; } break; default: $classHTML = " class=\"formularios editable\""; $estadoHTML = ""; } } else { if ($CWPadre == "CWFicha") //Panel de búsqueda { switch($editable) { case "true": case "si": $classHTML = " class=\"formularios editable\""; $estadoHTML = ""; break; case "false": case "no": $classHTML = " class=\"formularios noEditable\""; $estadoHTML = "readOnly"; break; } } } /* Fin del proceso*/ // Para la primera iteración en un listado o ficha, o cdo la variable no esté fijada para la búsqueda $tipoComprobacionPanel = $smarty->_tag_stack[$punteroPilaPanel][1]['tipoComprobacion']; if ( (($iterActual == 0) || (!isset($iterActual)) ) && ( ($obligatorio == "true") || ($obligatorio == "si")) && ($tipoComprobacionPanel != 'cambioFoco') ) { $script = $idPanel."_comp.addCampo('".$idCampo."');"; $igepSmarty->addPreScript($script); } //Generará el evento onBlur cuando sea obligatorio y en el panel no indique q solo es comprobación d "envio" if ( ( ($obligatorio == 'true') || ($obligatorio == 'si') ) && ($tipoComprobacionPanel != 'envio') ) { $llamadaJS = $idPanel."_comp.informaAvisoJS('ESVACIO',this);"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 50); } if (($CWSelector) && ($editable != 'false')) { $punteroPilaCWSelector = count($smarty->_tag_stack)-1; array_push($smarty->_tag_stack[$punteroPilaCWSelector][2],$idCampo); } //Visibilidad e invisibilidad $aperturaCapa = ''; $cierreCapa = ''; if ($visible == false) { $estiloVisibilidad = 'visibility:hidden;'; } else { $estiloVisibilidad = 'visibility:visible;'; } $aperturaCapa = "<div id='IGEPVisible".$idCampo."'"; $aperturaCapa.=" style='"; $aperturaCapa.="$estiloVisibilidad; "; $aperturaCapa.="display:block; "; $aperturaCapa.= "' >";//Fin style $cierreCapa = '</div>'; $compotxt = $aperturaCapa; $compotxt .= $hiddentxt; if ($obligatorio == 'true') $txtAsterisco="*"; else $txtAsterisco=""; $textoAsociado = "<label style='font-weight: bold; $mostrarTextoAsociado' id='txt".$idPanel."_".$idCampo."' for='".$idCampo."'>".$txtAsterisco.$textoAsociado."</label>\n"; $compotxt.= $textoAsociado; $compotxt.= "<textarea name=\"$idCampo\" id=\"$idCampo\" $tabindex $classHTML $estadoHTML $cols $rows ".$igepSmarty->getAcciones().">".$value."</textarea>"; $compotxt .= $cierreCapa; $tresModos = $smarty->_tag_stack[$punteroPilaPanel][1]['tresModos']; // Estamos en un tres modos y dentro de una tabla, los campos 'external' no entran // No se activen los campos de inserción en la tabla en un tres modos if ( ( (($idPanel == 'lis') || ($idPanel == 'lisDetalle')) && ($CWAbuelo == 'CWTabla')) && ($tresModos == 1) && ($iterActual >= $numRegTotales)) { $compotxt = ''; } return($igepSmarty->getPreScript().$ini.$compotxt.$fin); }