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

Ir al código fuente de este archivo.

Funciones

 smarty_function_CWPaginador ($params, &$smarty)

Documentación de las funciones

smarty_function_CWPaginador ( params,
&$  smarty 
)

Pluggin Paginador

Prepara la inserción del código de paginación

Autor:
David <pascual_dav@gva.es>
Toni <felix_ant@gva.es>
Raquel <borjabad_raq@gva.es>
Verónica <navarro_ver@gva.es>

Definición en la línea 44 del archivo function.CWPaginador.php.

{
        // LECTURA DE VALORES DE LA PILA //
        
        //Puntero a la pila de etiquetas que contiene a (CWTabla, CWFichaEdicion) 
        $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]);       
        //Puntero a la etiqueta BisAbuelo (CWPanel) 
        $punteroPilaBisAbuelo = $punteroPilaAbuelo - 1;
        $CWBisAbuelo = $smarty->_tag_stack[$punteroPilaBisAbuelo][0];
                
        // CODIGO NECESARIO PARA CADA COMPONENTE //
        
        // Primero defino el nombre del componente.
        $n_comp="CWPaginador";  
        // Necesitamos saber cuántas instancias de este componente existen ya / para poner el codigo o no
        //$num=$smarty->cw->anadirComponente($n_comp);
        
        $igepSmarty = new IgepSmarty();                 
                
        if($params['pagInicial']) 
        {
                $pagInicial=$params['pagInicial'];
        } 
        else 
        {
                $pagInicial=0;
        }
        
        if($params['enlacesVisibles']) 
        {
                $enlaces=$params['enlacesVisibles'];
        } 
        else 
        {
                $enlaces=5;
        }
        
        $idTabla = $smarty->_tag_stack[$punteroPilaPadre][1]['id'];
                
        //MAESTRO/DETALLE
        if (isset($smarty->_tag_stack[$punteroPilaBisAbuelo][1]['esMaestro'])) {
                        $esMaestro = $smarty->_tag_stack[$punteroPilaBisAbuelo][1]['esMaestro'];
        }
        else { $esMaestro = ''; }
        
        //Tipo de comprobación establecida
        //MAESTRO/DETALLE
        if (isset($smarty->_tag_stack[$punteroPilaBisAbuelo][1]['tipoComprobacion'])) {
                        $tipoComprobacion = $smarty->_tag_stack[$punteroPilaBisAbuelo][1]['tipoComprobacion'];
        }               
        
        $claseManejadora = $smarty->_tag_stack[$punteroPilaBisAbuelo][1]['claseManejadora'];

        if ($smarty->_tag_stack[$punteroPilaPadre][0]=="CWFichaEdicion") 
        {
                if ($smarty->_tag_stack[$punteroPilaBisAbuelo][1]['itemSeleccionado'])
                {
                        $itemSeleccionado = $smarty->_tag_stack[$punteroPilaBisAbuelo][1]['itemSeleccionado'];                          
                }
                else
                {       
                        $itemSeleccionado = '0';                                                
                }//Fin if-else item seleccionado
                $pagInicial = $itemSeleccionado;
            $formulario = "F_".$smarty->_tag_stack[$punteroPilaBisAbuelo][1]['id'];
                if ($esMaestro == "true")
                        $actionForm = "phrame.php?action=".$claseManejadora."__recargar";
        }// Fin if "FichaEdicion"
        else //Estamos en modo maestro, y en una tabla
        {
                //Calcular cual es la página activa en funcion del item seleccionado y las filas en pantalla
                //$iterActual%$numFilasPantalla
                $itemSeleccionado = $smarty->_tag_stack[$punteroPilaBisAbuelo][1]['itemSeleccionado'];  
                $numFilasPantalla = $smarty->_tag_stack[$punteroPilaPadre][1]['numFilasPantalla'];
                $pagInicial = 0;
                if ($numFilasPantalla > 0)
                        $pagInicial=floor($itemSeleccionado/$numFilasPantalla);
        }

        $nombre_paginador = $smarty->_tag_stack[$punteroPilaBisAbuelo][1]['id']."_paginacion";  
        $numRegistros = count($smarty->_tag_stack[$punteroPilaPadre][1]['datos']);
        $numFilasPantalla = $smarty->_tag_stack[$punteroPilaPadre][1]['numFilasPantalla'];
        $pagInsertar = 0;
        $pagInsertar = $smarty->_tag_stack[$punteroPilaPadre][1]['numPagInsertar'];
        $pagExactas = 0;
        switch (trim($CWPadre))
        {
                case "CWTabla":
                        if ($numFilasPantalla != 0)
                        {
                                if ($numRegistros%$numFilasPantalla == 0)
                                {
                                        $pagTotalesDatos = floor($numRegistros/$numFilasPantalla);
                                        $pagTotalesInsertar = $pagTotalesDatos + $pagInsertar;
                                        $pagExactas = 1;
                                } 
                                else
                                {
                                        $pagTotalesDatos = floor($numRegistros/$numFilasPantalla)+1;
                                        $pagTotalesInsertar = $pagTotalesDatos+$pagInsertar;
                                }
                        }
                        $prefijoPag ="\"pag_".$idTabla."_\",";
                        $textoEnlaces="Pag";
                        
                break;
                case "CWFichaEdicion":
                                $pagTotalesDatos = $numRegistros;               
                                $pagTotalesInsertar = $pagTotalesDatos + $pagInsertar;
                                $pagExactas = 1;                
                                $prefijoPag ="\"pag_".$idTabla."_\",";
                                $textoEnlaces="Reg";
                break;
                default:
                        $pagTotalesDatos=1;
                        $textoEnlaces="Error";
                break;
        }       
        $pagActual = "pagActual___".$claseManejadora;
        if ($CWPadre == "CWFichaEdicion")
        {
                $hidden = "<input type=hidden id=\"".$pagActual."\" name=\"".$pagActual."\" value=\"".$itemSeleccionado."\" />";                
        }
        $ini = "\n <!-- ______________ INICIO PAGINADOR $nombre_paginador ______________ --> \n";
        $smarty->igepPlugin->registrarInclusionJS('paginacion.js');
        
        $pagComprueba = 'false';        
        if ($tipoComprobacion != "cambioFoco")
        {       
                $pagComprueba = "true";
        }
        
        if ($CWPadre == "CWFichaEdicion")
        {
                $script = "var ".$nombre_paginador." = new oPaginacion(\"".$nombre_paginador."\", \"".$pagActual."\");\n";
        }
        else
        {
                $script = "var ".$nombre_paginador." = new oPaginacion(\"".$nombre_paginador."\");\n";
        }

        $script .= $nombre_paginador.".set(";
                $script .= $prefijoPag;
                $script .="\"capa_".$nombre_paginador."\",";
                $script .=$pagInicial.",";
                $script .= $pagTotalesDatos.",";
                $script .= $pagInsertar.",";
                $script .= $pagExactas.",";
                $script .=$enlaces.",";
                $script .="'".$textoEnlaces."',";
                $script .= "'".$formulario."',";
                $script .= "'".$esMaestro."',";
                $script .= "'".$numRegistros."',";
                $script .= "'".$actionForm."',";
                $script .= "'".IMG_PATH_CUSTOM."'";
                $script .=");\n";
        $script .= $nombre_paginador.".fijarNombreFicha('$idTabla');";
        $script .= $nombre_paginador.".dibujar_enlaces()";      
        
        $igepSmarty->addPostScript($script);

        //Registramos el objeto paginador
        $smarty->igepPlugin->registerJSObj($nombre_paginador);
        $fin = "\n <!-- ______________ FIN PAGINADOR ______________ --> \n";
        return ($ini.$hidden.$igepSmarty->getPostScript().$fin);
}