PEAR::Pager tutorials : Pager and Smarty
À 06:06 dans la rubrique PHP / PEAR
←
/ #839
/ rss
/ →
Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton
Pager and...
Je pense avoir déjà parlé de tous les cas de figure que vous pourriez rencontrer où il est utile d'utiliser PEAR::Pager, mais j'ai reçu de nombreux mails me demander comment utiliser le pager pour faire ceci ou cela.
Les 2 questions les plus récurrentes sont
a) Comment je peux utiliser Pager avec moteur_de_template?
et
b) Comment je peux utiliser Pager_Wrapper avec AJAX?"
En espérant réduire le flot de mails, je vais présenter 2 exemples complets.
La deuxième à trouvé réponse ici : PEAR::Pager tutorials : Pager_Wrapper and Ajax
Pager and Smarty
Les exemples suivants utilisent le populaire moteur de template Smarty, mais vous pouvez facilement transposer à un autre. N'hésitez pas à tester cette transposition et la poster en commentaire.
Premièrement on créée une instance de Pager, ensuite nous assignons les données paginées et les liens à certaines variables du template:
<?php require_once 'Pager.php'; // tableau des données à paginer $liste_des_elements = array(...); $option_du_pager = array( 'mode' => 'Sliding', 'delta' => 3, 'perPage' => 10, 'itemData' => $liste_des_elements, ); $pager =& Pager::factory($option_du_pager); //On récupère les données paginées dans la variable $data $data = $pager->getPageData(); if (!is_array($data)) { $data = array(); } //On considère que vous avez déjà instancié Smarty dans $smarty //Alors on assigne les données et les liens aux variables du template $smarty->assign('liste_des_elements', $data); $smarty->assign('pager_links', $pager->links); $smarty->assign( 'page_numbers', array( 'current' => $pager->getCurrentPageID(), 'total' => $pager->numPages() ) ); $smarty->display('page.tpl'); ?>
Et voici le template:
[smarty]
...
{if $page_numbers.total > 1}
(page {$page_numbers.current} / {$page_numbers.total})<br />
{$pager_links}
{/if}
<ul>
{foreach item=row from=$liste_des_elements}
<li>{$row}</li>
{/foreach}
<ul>
...
Comme vous pouvez le voir, il n'y a rien de difficile.
Complet et clair.








Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire