El codigo que continua es este.... directamente en la linea siguiente al codigo anterior
Código PHP:
/* junta codigo en la linea siguiente*/
/*FUNCIONES QUE DEVUELVEN VALORES RELATIVOS AL PAGINADO*/
/*Número total de páginas Devuelve el número total de páginas */
function numTotalPaginas () {
return $this->numTotalPaginas;
}
/*Número de página actual Devuelve el número de página actual @returns int */
function numEstaPagina () {
return $this->numEstaPagina;
}
/*Número de primer registro mostrado Devuelve el número del primer registro mostrado, en relación al total de registros @returns int */
function numPrimerRegistro () {
return $this->numPrimerRegistro;
}
/* Número de último registro mostrado Devuelve el número del último registro mostrado, en relación al total de registros @returns int */
function numUltimoRegistro () {
return $this->numUltimoRegistro;
}
/* Número de total registros Devuelve el número total de registros encontrados @returns int*/
function numTotalRegistros () {
return $this->numTotalRegistros;
}
/*Número de registros mostrados en esta página Devuelve el número de registros mostrados en la página actual @returns int */
function numRegistrosMostrados () {
return $this->numTotalRegistros_this;
}
/* Obtener los valores de configuración Devuelve un array con los valores de configuración @returns void */
function superArray () {
return array("numPrimerRegistro"=>$this->numPrimerRegistro, "numUltimoRegistro"=>$this->numUltimoRegistro, "numTotalRegistros"=>$this->numTotalRegistros, "porPagina"=>$this->porPagina, "numRegistrosMostrados"=>$this->numTotalRegistros_this, "nombreVariable"=>$this->nombreVariable, "linkAgregar"=>$this->linkAgregar, "linkClase"=>$this->linkClase, "linkSeparador"=>$this->linkSeparador, "numEstaPagina"=>$this->numEstaPagina, "numTotalPaginas"=>$this->numTotalPaginas, "paginasAntes"=>$this->paginasAntes, "paginasDespues"=>$this->paginasDespues, "mostrarPrimera"=>$this->mostrarPrimera, "mostrarUltima"=>$this->mostrarUltima, "mostrarAnterior"=>$this->mostrarAnterior, "mostrarSiguiente"=>$this->mostrarSiguiente, "mostrarIntermedias"=>$this->mostrarIntermedias, "mostrarActual"=>$this->mostrarActual);
}
/*Obtener los registros a mostrar Devuelve un array con los registros seleccionados para mostrar @returns array */
function fetchResultado () {
if(is_array($this->ejecutard)) {
if(list($key, $row) = each($this->ejecutard)) return $row;
} elseif($row = @mysql_fetch_array($this->ejecutard)) {
return $row;
}
else return false;
}
function fetchTodo () {
if(is_array($this->ejecutard))
return (count($this->ejecutard) > 0) ? $this->ejecutard : null;
$r = array();
while($f = $this->fetchResultado()) {
$r[] = $f;
}
return (count($r) > 0) ? $r : null;
}
/*Obtener barra de linksDevuelve una cadena conteniendo la barra de links en formato HTML @returns string */
function fetchNavegacion () {
$this->check_vars();
$i = array();
foreach($_GET as $key=>$val) {
if($key !== $this->nombreVariable) {
$i[] = "$key=$val";
}
}
$i[] = $this->nombreVariable;
$this->query_string = implode('&',$i);
$this->root = (empty($this->root)) ? "http://".$_SERVER['HTTP_HOST'] : $this->root;
$this->url = basename($_SERVER['PHP_SELF']).'?'.$this->query_string;
$this->style = (!empty($this->linkClase)) ? ' class="'.$this->linkClase.'"' : NULL;
$before = $this->paginasAntes;
$after = $this->paginasDespues;
$pthis = $this->numEstaPagina;
$ptotal = $this->numTotalPaginas;
$before = (($pthis - $before) < 1) ? 1 : ($pthis - $before);
$after = (($pthis + $after) > $ptotal) ? $ptotal : ($pthis + $after);
$link_string = array();
if($pthis > $this->paginasAntes+1) {
$link_string[] = $this->do_link(1,$this->addlinkmsg(1,1,$this->porPagina,1),$this->mostrarPrimera);
}
if($pthis > 1) {
$link_string[] = $this->do_link(($pthis-1),$this->addlinkmsg(($pthis-1),(($this->porPagina*($pthis-2))+1),($this->porPagina*($pthis-1)),2),$this->mostrarAnterior);
}
$i = 0;
while($before <= $after) {
$link_string[] = ($pthis <> $before) ? $this->do_link($before,$this->addlinkmsg($before,(($this->porPagina*($before-1))+1),($this->porPagina*($before)),3),sprintf($this->mostrarIntermedias,$before)) : sprintf($this->mostrarActual,$before);
$before++;
}
if($pthis < $ptotal) {
$link_string[] = $this->do_link($pthis+1,$this->addlinkmsg(($pthis+1),(($this->porPagina*$pthis)+1),($this->porPagina*($pthis+1)),4),$this->mostrarSiguiente);
}
if($pthis < ($ptotal-$this->paginasDespues)) {
$link_string[] = $this->do_link($ptotal,$this->addlinkmsg($ptotal,(($this->porPagina*($ptotal-1))+1),$this->numTotalRegistros,5),$this->mostrarUltima);
}
$link_string = implode($this->linkSeparador,$link_string);
return $link_string;
}
/* FUNCIONES DE USO INTERNO. NO MODIFICAR!*/
function addlinkmsg ($tp,$rs,$rt,$type = null) {
$total = $this->numTotalRegistros;
$rt = ($rt > $total) ? $total : $rt;
if(!empty($this->linkTitulo)) {
return sprintf($this->linkTitulo,$tp,$rs,$rt,$this->numTotalRegistros);
} else {
switch($type) {
case 1: return "Primera página. Resultados del $rs al $rt de $total"; break;
case 2: return "Página anterior: Resultados del $rs al $rt de $total"; break;
case 3: return "Página $tp: Resultados del del $rs al $rt de $total"; break;
case 4: return "Página siguiente. Resultados del $rs al $rt de $total"; break;
case 5: return "Última página. Resultados del $rs al $rt de $total"; break;
default: return $this->addlinkmsg($tp,$rs,$rt,3);
}
}
}
function check_vars () {
$this->porPagina = ($this->porPagina >= 1) ? intval($this->porPagina) : 5;
$this->mostrarPrimera = (!empty($this->mostrarPrimera)) ? $this->mostrarPrimera : "« Primera";
$this->mostrarAnterior = (!empty($this->mostrarAnterior)) ? $this->mostrarAnterior : "<";
$this->mostrarSiguiente = (!empty($this->mostrarSiguiente)) ? $this->mostrarSiguiente : ">";
$this->mostrarUltima = (!empty($this->mostrarUltima)) ? $this->mostrarUltima : "Última »";
$this->mostrarIntermedias = (!empty($this->mostrarIntermedias)) ? $this->mostrarIntermedias : "%d";
$this->mostrarActual = (!empty($this->mostrarActual)) ? $this->mostrarActual : "%d";
$this->paginasAntes = (is_numeric($this->paginasAntes) && $this->paginasAntes >= 0) ? intval($this->paginasAntes) : 3;
$this->paginasDespues = (is_numeric($this->paginasDespues) && $this->paginasDespues >= 0) ? intval($this->paginasDespues) : 3;
$this->nombreVariable = (ereg("(^[a-zA-Z0-9]+)$",$this->nombreVariable)) ? $this->nombreVariable : "page";
}
function do_link ($page,$title,$content) {
$url = $this->url;
$style = $this->style;
return "<a href=\"$url=$page".$this->linkAgregar."\" title=\"$title\"$style>$content</a>";
}
function ejecutar () {
$this->check_vars();
$numEstaPagina = (is_numeric($_GET[$this->nombreVariable]) && $_GET[$this->nombreVariable] >= 1) ? intval($_GET[$this->nombreVariable]) : 1;
$this->numEstaPagina = &$numEstaPagina;
$numPrimerRegistro = ($numEstaPagina - 1) * $this->porPagina;
if(!empty($this->sql)) {
$result = (isset($this->conn)) ? mysql_query($this->sql,$this->conn) : mysql_query($this->sql);
$this->numTotalRegistros = mysql_num_rows($result);
} else {
$data = array_values($this->data);
$data_keys = array_keys($this->data);
$this->numTotalRegistros = count($data);
}
if($this->numTotalRegistros < $numPrimerRegistro) {
$numPrimerRegistro = 0;
$numEstaPagina = 1;
}
$this->numTotalPaginas = ceil($this->numTotalRegistros / $this->porPagina);
if($this->numTotalRegistros >= 1) {
$this->numPrimerRegistro = $numPrimerRegistro + 1;
$pdata = array();
if(!empty($this->sql)) {
$result = (isset($this->conn)) ? mysql_query($this->sql." LIMIT $numPrimerRegistro, {$this->porPagina}",$this->conn) : mysql_query($this->sql." LIMIT $numPrimerRegistro, {$this->porPagina}");
$this->ejecutard = $result;
$this->numTotalRegistros_this = mysql_num_rows($result);
} else {
$numUltimoRegistro = $numPrimerRegistro + $this->porPagina - 1;
while($numPrimerRegistro <= $numUltimoRegistro) {
if(isset($data[$numPrimerRegistro])) {
$key = (isset($data_keys[$numPrimerRegistro])) ? $data_keys[$numPrimerRegistro] : rand()."_".$numPrimerRegistro;
$pdata[$key] = $data[$numPrimerRegistro];
$numPrimerRegistro++;
} else {
break;
}
}
$this->ejecutard = $pdata;
$this->numTotalRegistros_this = count($pdata);
}
$this->numUltimoRegistro = $this->numPrimerRegistro + $this->numTotalRegistros_this - 1;
} else {
$this->numPrimerRegistro = 0;
$numEstaPagina = 0;
$this->numTotalRegistros_this = 0;
$this->numUltimoRegistro = 0;
$this->ejecutard = array();
}
return ($this->numTotalRegistros_this > 0);
}
}
?>