color me shopにページャーをつける

color me shopをいじる機会があったので、今回作ったページャーをご紹介。
テンプレートは、smartyなので馴染みがあり、やりやすかったです。

目指す表示はこんな感じ
<< 前のページへ 1 ・・ 4 5 6 ・・・ 10 次のページへ >>

   
<{* 現在表示中のページ数をcurrent_pageに設定 *}> <{ if $smarty.get.page == "" }><{ assign var="current_page" value="1" }><{else}><{ assign var="current_page" value=$smarty.get.page }><{/if}> <{* 前のページがある場合は、リンク化する *}> <{if $productlist_prev_page != ""}><< 前のページへ<{else}> << 前のページへ <{/if}> <{* ページ表示数で商品数を割り、ページ数を算出 *}> <{math equation="ceil($productlist_num/12)" assign="max_page"}> <{math equation="$current_page-1" assign="bef_page" }> <{math equation="$current_page+1" assign="aft_page" }> <{ assign var="page_flg" value="0" }> <{section name=pager loop=$max_page }> <{* 表示中のページに、専用のclassを付与する *}> <{ if $smarty.section.pager.iteration == $current_page }> <{$smarty.section.pager.iteration }> <{ else }> <{ if $productlist_sort_now == "p" }> <{ assign var="page_url" value=$productlist_sort_price|cat:"&page="|cat:$smarty.section.pager.iteration }> <{ elseif $productlist_sort_now == "n" }> <{ assign var="page_url" value=$productlist_sort_new|cat:"&page="|cat:$smarty.section.pager.iteration }> <{ else }> <{ assign var="page_url" value=$productlist_sort_def|cat:"&page="|cat:$smarty.section.pager.iteration }> <{ /if }> <{ if $max_page > 7 }> <{* 1ページ目と最終ページ、現在表示しているページの前後1ページをリンクとして表示 *}> <{ if in_array($smarty.section.pager.iteration, array(1,$bef_page, $aft_page, $max_page)) }> <{ assign var="page_flg" value="0" }> <{ $smarty.section.pager.iteration }> <{ elseif $page_flg == "0" }> <{ assign var="page_flg" value="1" }> ・・・ <{ /if }> <{ else }> <{ $smarty.section.pager.iteration }> <{ /if }> <{ /if }> <{/section}> <{* 次のページがある場合は、リンク化する *}> <{if $productlist_next_page != ""}>次のページへ >><{else}> 次のページへ >> <{/if}>