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.