TigerZF
🌐Español

11.3. Control de paginación y ScrollingStyles

Renderizar los elementos de una página en pantalla ha sido un buen comienzo. En los fragmentos de código de la sección anterior también hemos visto el método setCurrentPageNumber() para establecer el número de página activa. El siguiente paso es navegar por sus páginas. Para hacer esto, Paginator le proporciona dos herramientas importantes: la capacidad de renderizar el Paginator con ayuda de un View Partial, y soporte para los llamados ScrollingStyles.

El View Partial es un pequeño script de vista que renderiza los controles de paginación, como botones para ir a la página siguiente o anterior. Qué controles de paginación se renderizan depende del contenido del view partial. Trabajar con el view partial requiere que tenga configurado Zend_View. Para comenzar con el control de paginación, cree un nuevo script de vista en algún lugar de su ruta de scripts de vista. Puede nombrarlo como quiera, pero en este texto lo llamaremos "controls.phtml". El manual de referencia contiene varios ejemplos de lo que podría ir en el script de vista. Aquí hay un ejemplo.

<?php if ($this->pageCount): ?>
<!-- First page link -->
<?php if (isset($this->previous)): ?>
  <a href="<?php echo $this->url(array('page' => $this->first)); ?>">
    First
  </a> |
<?php else: ?>
  <span class="disabled">First</span> |
<?php endif; ?>

<!-- Previous page link -->
<?php if (isset($this->previous)): ?>
  <a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
    &lt; Previous
  </a> |
<?php else: ?>
  <span class="disabled">&lt; Previous</span> |
<?php endif; ?>

<!-- Next page link -->
<?php if (isset($this->next)): ?>
  <a href="<?php echo $this->url(array('page' => $this->next)); ?>">
    Next &gt;
  </a> |
<?php else: ?>
  <span class="disabled">Next &gt;</span> |
<?php endif; ?>

<!-- Last page link -->
<?php if (isset($this->next)): ?>
  <a href="<?php echo $this->url(array('page' => $this->last)); ?>">
    Last
  </a>
<?php else: ?>
  <span class="disabled">Last</span>
<?php endif; ?>

</div>
<?php endif; ?>

El siguiente paso es indicar a Zend_Paginator qué view partial puede usarse para renderizar los controles de navegación. Ponga la siguiente línea en el archivo bootstrap de su aplicación.

Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');

El último paso es probablemente el más fácil. Asegúrese de haber asignado su objeto Paginator a un script (NO el script 'controls.phtml'). Lo único que queda por hacer es mostrar el Paginator en el script de vista. Esto renderizará automáticamente el Paginator usando el helper de vista PaginationControl. En el siguiente ejemplo, el objeto Paginator se ha asignado a la variable de vista 'paginator'. No se preocupe si aún no entiende completamente cómo funciona todo. La siguiente sección presentará un ejemplo completo.

<?php echo $this->paginator; ?>

Zend_Paginator, junto con el script de vista 'controls.phtml' que escribió, se asegura de que su navegación de Paginator se renderice correctamente. Para decidir qué números de página deben mostrarse en pantalla, Paginator utiliza los llamados ScrollingStyles. El estilo predeterminado se llama "Sliding", que es similar a la forma en que funciona la navegación de resultados de búsqueda de Yahoo. Para imitar el ScrollingStyle de Google, use el estilo Elastic. Puede establecer un ScrollingStyle predeterminado con el método estático setDefaultScrollingStyle(), o puede especificar un ScrollingStyle dinámicamente al renderizar el Paginator en su script de vista. Esto requiere la invocación manual del helper de vista en su script de vista.

// $this->paginator is a Paginator object
<?php echo $this->paginationControl($this->paginator, 'Elastic', 'controls.phtml'); ?>

Para una lista de todos los ScrollingStyles disponibles, consulte el manual de referencia.