<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="learning.paginator.control">
    <title>Contrôles de la pagination et styles de défilement</title>

    <para>
        Rendre visuellement les éléments d'une page est un bon départ. Dans les sections précédentes, nous
        avons aperçu la méthode <methodname>setCurrentPageNumber()</methodname> pour déterminer la page active.
        Le point suivant est la navigation au travers de ces pages. Le paginateur vous fournit des outils
        pour ça comme la possibilité de rendre un script de vue partiel et le support des styles de
        défilement (ScrollingStyles).
    </para>

    <para>
        La vue partiel est un bout de vue qui rend juste les contrôles de la pagination comme les boutons suivant
        et précédent. Le design de la vue partielle est libre, il vous faudra simplement un objet Zend_View.
        Commencez donc par créer un nouveau script de vue dans le dossier des scripts de vue. Vous pouvez
        l'appeler comme vous voulez, nous l'appellerons "controls.phtml" de notre coté. Le manuel comporte
        des exemples de tels scripts, en voici un.
    </para>

    <programlisting language="php"><![CDATA[
<?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; ?>
]]></programlisting>

    <para>
        Il faut maintenant indiquer à Zend_Paginator la vue partielle à utiliser. Ajoutez ceci à votre
        bootstrap:
    </para>

    <programlisting language="php"><![CDATA[
Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
]]></programlisting>

    <para>
        La dernière étape est la plus simple. Passez un objet Paginator à un script de vue
        (PAS 'controls.phtml'!). Ensuite, demandez simplement l'affichage de l'objet Paginator
        lui-même. Ceci va faire intervenir l'aide de vue PaginationControl. Dans l'exemple qui suit,
        l'objet Paginator a été affecté comme variable de vue 'paginator'. Ne vous inquiétez pas
        si vous ne comprenez pas totalement le fonctionnement, les sections suivantes le détaillent.
    </para>

    <programlisting language="php"><![CDATA[
<?php echo $this->paginator; ?>
]]></programlisting>

    <para>
        Pour décider quels numéros de page afficher, le paginateur utilise des styles de défilement.
        Le style par défaut est "Sliding", qui ressemble à la présentation des résultats de Yahoo!
        Un style ressemblant à Google est "Elastic". Le style par défaut se règle au moyen de la méthode
        statique <methodname>setDefaultScrollingStyle()</methodname>, ou lors du rendu du paginateur
        dans le script de vue mais ceci nécessite un appel manuel à l'aide de vue.
    </para>

    <programlisting language="php"><![CDATA[
// $this->paginator est un objet Paginator
<?php echo $this->paginationControl($this->paginator, 'Elastic', 'controls.phtml'); ?>
]]></programlisting>

    <para>
        Pour une liste de tous les styles de défilement, consultez le manuel.
    </para>
</sect1>
