Documentación GVHIDRA 3.1.5
Referencia del Archivo function.CWImagen.php

Ir al código fuente de este archivo.

Funciones

 smarty_function_CWImagen ($params, &$smarty)

Documentación de las funciones

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