![]() |
Documentación GVHIDRA 3.1.5
|
Ir al código fuente de este archivo.
Funciones | |
smarty_function_CWImagen ($params, &$smarty) |
smarty_function_CWImagen | ( | $ | params, |
&$ | smarty | ||
) |
Definición en la lÃnea 34 del archivo function.CWImagen.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]; //Si el padre es un CWSolapa, tenemos que movernos uno más arriba, pq pasamos de el if (($CWPadre == "CWSelector") || ($CWPadre == "CWSolapa")) { $punteroPilaPadre = count($smarty->_tag_stack)-2; $CWPadre = $smarty->_tag_stack[$punteroPilaPadre][0]; $punteroPilaAbuelo = $punteroPilaPadre - 1; $CWAbuelo = $smarty->_tag_stack[$punteroPilaAbuelo][0]; } $punteroPilaPanel = $punteroPilaAbuelo - 2; $idPanel = $smarty->_tag_stack[$punteroPilaPanel][1]['id']; // CODIGO NECESARIO PARA CADA COMPONENTE // // Primero defino el nombre del componente. $n_comp="CWImagen"; // Incrementamos el número de componentes CWImagen $num = $smarty->igepPlugin->registrarInstancia($n_comp); // Tiene nombre? no tiene? Le asigno uno en ese caso if($params['nombre']) { $id=$params['nombre']; } else { // Por defecto, nombre plugin y número de instancia del componente $id=$n_comp.$num; } $src = ''; if(isset($params['src'])) { $src=$params['src']; } $width = ''; if(isset($params['width'])) { $width=" width='".$params['width']."'"; } $height = ''; if(isset($params['height'])) { $height=" height='".$params['height']."'"; } //Alternativa $alt=" alt='imagen' "; if(isset($params['alt'])) { $alt=" alt='".$params['alt']."'"; } //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; } //Visibilidad e invisibilidad // $aperturaCapa = ''; // $cierreCapa = ''; // //Si el campo INICIALMENTE NO debe ser visible // if ($visible == false) // { // $estiloVisibilidad = 'visibility:hidden;'; // } // else // { // $estiloVisibilidad = 'visibility:visible;'; // } // --- Tratamiento de etiquetas asociadas $textoAsociado = ""; $mostrarTextoAsociado = "false"; //Si hay etiqueta asociada... if (isset($params['textoAsociado'])) { $textoAsociado = $params['textoAsociado']; $mostrarTextoAsociado = "true"; } else { $textoAsociado = ucfirst($idCampo); $mostrarTextoAsociado = "false"; } 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 // --- tratamiento de etiquetas $ini = ""; $fin = ""; $hiddentxt = ""; //Si el padre es una fila o el abuelo es una fichaEdicion.... // Comprobamos lo dl abuelo en vez d q el padre sea CWFicha pq una ficha ahora puede estar dentro de otro componente // p.ej (CWContenedor) para el panel de búsqueda 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['width'])) && ($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['width']; $smarty->_tag_stack[$punteroPilaAbuelo][6]['sizes']['total'] += intval($params['width']); } if ($iterActual >= $numRegTotales) { //$contInsercion = $iterActual - $numRegTotales; // Componer el nombre dl campo: params[nombre]_idFila // ej: cad_inv_dni__F_tabla1_2 $id = "ins___".$id."___".$idFila; if ($CWPadre == "CWFila") { $ini = "<td align='center'>\n"; $fin = "</td>\n"; $campoEstadoFila = "est_".$idFila; //$llamadaFuncion = $idPanel."_tabla.cambiarEstado"; $llamadaJS = $idPanel."_tabla.cambiarEstado('insertada',this,'".$campoEstadoFila."');"; $igepSmarty->addAccionEvento("onBlur", $llamadaJS, 1); //Si es la primera iteración añadimos el titulo if($iterActual == 0) { $referencia = $params['nombre']; if (empty($textoAsociado)) $textoAsociado = $referencia; $v_titulo = $smarty->_tag_stack[$punteroPilaAbuelo][1]['titulosColumnas']; $v_titulo[$referencia] = $textoAsociado; $smarty->_tag_stack[$punteroPilaAbuelo][1]['titulosColumnas'] = $v_titulo; } } if ($CWPadre == "CWFicha") { $campoEstadoFila = "est_".$idFila; $llamadaJS = "document.getElementById('".$campoEstadoFila."').value='insertada';"; } } else { // Componer el nombre dl campo: params[nombre]_idFila // ej: cad_inv_dni__F_tabla1_2 $id = "cam___".$id."___".$idFila; if ($CWPadre == "CWFila") { $ini = "<td align='center'>\n"; $fin = "</td>\n"; //Si es la primera iteración añadimos el titulo if ($iterActual == 0) { $referencia = $params['nombre']; if (empty($textoAsociado)) $textoAsociado = $referencia; $v_titulo = $smarty->_tag_stack[$punteroPilaAbuelo][1]['titulosColumnas']; $v_titulo[$referencia] = $textoAsociado; $smarty->_tag_stack[$punteroPilaAbuelo][1]['titulosColumnas'] = $v_titulo; } } //Obtenemos el registro que le corresponde y fijamos el valor $datosReg = $smarty->_tag_stack[$punteroPilaAbuelo][1]['datos'][$iterActual]; // REVIEW: Vero 4/11/2010 Modificación para la nueva ventana de selección. // La ruta a la imagen (src) puede venir dada por el programador como parámetro en la tpl // o puede ser el resultado de una consulta de BD, por lo tanto la sacamos de $datosReg // if (empty($src)) // $src = $datosReg['ruta']; //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'])]; //Ahora comprobamos si tiene un valor impuesto por parámetro, que tiene preferencia... if (isset($valueReg) && ($valueReg!=null) && $valueReg!="") $src=htmlspecialchars($valueReg); //print_r($datosReg); //die; // Fin del proceso de asignación del valor }//Fin if-else iteraciones } //Fin if (($CWAbuelo == "CWFichaEdicion") $aperturaCapa = ''; $cierreCapa = ''; if ($visible == false) { $estiloVisibilidad = 'visibility:hidden;'; } else { $estiloVisibilidad = 'visibility:visible;'; } if (($iterActual >= $numRegTotales) && ($CWAbuelo != "CWContenedor") && ($CWAbuelo != "CWFichaEdicion")) { $estiloVisibilidad = 'visibility:hidden;'; } $aperturaCapa = "<div id='IGEPVisible".$idCampo."' style='".$estiloVisibilidad; $aperturaCapa.= " display:inline; ' >"; $cierreCapa = '</div>'; $compotxt = ''; $compotxt.=$aperturaCapa; if ($CWPadre != "CWFila") { if ($obligatorio == 'true') $txtAsterisco="*"; else $txtAsterisco=""; $compotxt.= "<label style='font-weight: bold; $mostrarTextoAsociado' id='txt".$idPanel."_".$idCampo."' for='".$idCampo."'>$txtAsterisco$textoAsociado:</label>\n"; } if(($params['rutaAbs']=='yes' OR $params['rutaAbs']=='si' OR $params['rutaAbs']=='true') and ($src!='')) $src = 'igep/_visualizarImagen.php?fichero='.$src; $compotxt.= "<img id='$id' src='$src' style='display:inline;' $width $height $alt />"; $compotxt.=$cierreCapa; return ($ini.$compotxt.$fin); }