MENU

【カラーミーショップ】商品一覧のページ繰りを数字にする

2020.11.04 web


自身が運営しているオンラインショップはカラーミーを使っていて、
今まで気になっていたけど手を付けることなく放置していた、商品一覧のページ繰り。

こちらのコードですんなりとページ数がわかる、
数字でのページ繰りに変更しました。

今更ですが、
ページ間を移動しやすくなったし、何ページあるか一目でわかるようになってうれしい。

<!-- 1ページに表示する商品数(テンプレートの設定に合わせる) -->
<{assign var='products_per_page' value=16}>

<!-- 必要な変数を設定 -->
<{assign var='current_page' value=1}>
<{if $productlist_prev_page != ''}>
	<{assign var='productlist_page_url' value=$productlist_prev_page|regex_replace:'|page=\d+|':'page='}>
	<{assign var='current_page' value=$productlist_prev_page|regex_replace:'|^.*page=(\d+).*|':'$1'}>
	<{assign var='current_page' value=$current_page+1}>
<{elseif $productlist_next_page != ''}>
	<{assign var='productlist_page_url' value=$productlist_next_page|regex_replace:'|page=\d+|':'page='}>
	<{assign var='current_page' value=$productlist_next_page|regex_replace:'|^.*page=(\d+).*|':'$1'}>
	<{assign var='current_page' value=$current_page-1}>
<{/if}>
<{assign var='page_max' value=0}>
<{assign var='tmp_page_count' value=$productlist_num}>
<{section name=page start=1 loop=$productlist_num}>
	<{if $tmp_page_count > 0}>
		<{assign var='page_max' value=$page_max+1}>
	<{/if}>
	<{assign var='tmp_page_count' value=$tmp_page_count-$products_per_page}>
<{/section}>

<!-- ここから表示 -->
<div class="pager">
	<{if $productlist_prev_page != ""}>
		<a href="<{$productlist_prev_page}>">&lt; 前ページ</a>
	<{/if}>
	<{section name=page start=1 loop=$page_max+1}>
		<{assign var='tmp_page' value=$smarty.section.page.index}>
		<{if $current_page == $tmp_page}>
			<span class="current"><{$tmp_page}></span>
		<{else}>
			<a href="<{$productlist_page_url}><{$tmp_page}>"><{$tmp_page}></a>
		<{/if}>
	<{/section}>
	<{if $productlist_next_page != ""}>
		<a href="<{$productlist_next_page}>">次ページ &gt;</a>
	<{/if}>
</div>


「1ページに表示する商品数(テンプレートの設定に合わせる)」のところは、
カラーミーで一覧に表示する数を設定していると思うので、
それに合わせる必要アリです。

参考にさせていただいたサイトはこちら

商品一覧にページ番号を付ける