Tabla de contenidos
🧩 Introducción #
El componente “paginador-form.php
” se encarga de generar los controles de paginación (página actual, anterior, siguiente, etc.) en los listados de inmuebles u otros elementos paginados.
Utiliza un objeto $paginador
que contiene toda la información necesaria para:
- Mostrar la cantidad total de páginas.
- Detectar si hay páginas anteriores o siguientes.
- Resaltar la página activa.
- Renderizar correctamente los botones de navegación.
👀 Vista del componente #
El componente genera una paginación como la que se ve en esta imagen:

- Página actual resaltada (color personalizado).
- Números de páginas navegables.
- Enlaces “Siguiente” y “Anterior” con íconos.
💻 Código del componente #
<div class="row">
<div class="col-md-12">
<br>
<?php if (isset($paginador)) {
if ($paginador->getNumPages() > 1) { ?>
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-end">
<?php if ($paginador->getPrevUrl()): ?>
<li class="page-item">
<a href="<?php echo htmlspecialchars($paginador->getPrevUrl()) ?>" data-toggle="tooltip"
data-placement="top" title="<?php echo $paginador->getPreviousText() ?>" class="page-link">
<i class="icon icon-uniEA40"></i><?php echo $paginador->getPreviousText() ?></a></li>
<?php endif; ?>
<?php foreach ($paginador->getPages() as $page) {
if ($page['url']) { ?>
<li class="page-item <?php echo($page["isCurrent"] ? 'active' : '') ?> " <?php echo($page["isCurrent"] ? 'aria-current="page"' : '') ?> aria-label="Pagina <?php echo $page["num"] ?>" >
<a class="page-link " href="<?php echo htmlspecialchars($page['url']) ?>"><?php echo $page["num"] ?></a>
</li>
<?php } else { ?>
<li><span class="pagination-ellipsis">…</span></li>
<?php }
} ?>
<?php if ($paginador->getNextUrl()): ?>
<li class="page-item">
<a href="<?php echo htmlspecialchars($paginador->getNextUrl()) ?>"
data-toggle="tooltip" data-placement="top" title="<?php echo $paginador->getNextText() ?>"
class="page-link"><?php echo $paginador->getNextText() ?><i class="icon icon-uniEA3C"></i></a></li>
<?php endif; ?>
</ul>
</nav>
<?php }
} ?>
</div>
</div>
🗂️ Ruta del componente #
Ubicación en el plugin:
inmuebles/componentes/search/paginador-form.php
Ruta para sobrescribirlo en tu tema hijo:
visualinmueble/
├── templates/
│ └── inmuebles/
│ └── componentes/
│ └── search/
│ └── paginador-form.php
✏️ Qué se puede editar #
Lista de elementos personalizables:
- Estilos de botones
- Puedes modificar las clases Bootstrap (
page-item
,page-link
) o aplicar clases personalizadas (.mi-boton
) para cambiar colores, bordes, tipografía, etc.
- Puedes modificar las clases Bootstrap (
- Íconos de navegación
- Actualmente se usan:
icon-uniEA40
para anterioricon-uniEA3C
para siguiente
- Puedes cambiarlos por íconos FontAwesome, SVGs o íconos propios.
- Actualmente se usan:
- Texto de los botones
- El método
$paginador->getPreviousText()
ygetNextText()
devuelve textos como “Anterior” y “Siguiente”. Puedes reemplazarlos o traducirlos directamente si quieres más control: phpCopiarEditarecho "← Anterior"; echo "Siguiente →";
- El método
- Separador de páginas (… / elipsis)
- Por defecto se usa: phpCopiarEditar
<span class="pagination-ellipsis">…</span>
- Puedes reemplazarlo con otro ícono o texto personalizado.
- Por defecto se usa: phpCopiarEditar
- Posicionamiento
- Actualmente está alineado a la derecha (
justify-content-end
). Puedes cambiarlo a:justify-content-center
justify-content-start
- Actualmente está alineado a la derecha (
- Accesibilidad
- Ya incluye atributos
aria-label
,aria-current
ytooltip
. Puedes expandir esto si necesitas mayor compatibilidad WCAG/ARIA.
- Ya incluye atributos
- Condiciones de visibilidad
- Si no quieres mostrar el paginador en ciertas condiciones (como menos de 5 resultados), puedes envolverlo en un
if (count($resultados) > 5)
.
- Si no quieres mostrar el paginador en ciertas condiciones (como menos de 5 resultados), puedes envolverlo en un