カラーミーでのTips

 
お仕事でカラーミーのカスタマイズをやってるんですけど、これがなかなか癖があって面倒というか面白いので、少しメモっておきます。
一番美味しいところからひとつ。商品一覧でページ数を求めるときです。

<!-- $pgnum = floor(($productlist_num - 1) / 12) +1; -->

<{assign var=pgnum value=$productlist_num-1}>
<{assign var=pgnum value=$pgnum/12+1|regex_replace:"/\..*/":""}>

カラーミーは基本 smartyなんですけど、微妙にいろんなところがマスク(使えなく)してあって、使えないんです。
やりたいことは一番上に書いたことですが、そのまま assignしてもエラーになるので、四則演算をバラバラにして、切り捨ては、regex_replaceを使うという裏ワザです。
 
これを使って、[1] [2] [3] [4] みたいなページ・ナビゲータを出すのはこうです。

<{if $sid_name != ""}>
  <{assign var=clink value=$sid_link}>
<{else}>
  <{assign var=clink value=$bid_link}>
<{/if}>
<div class="pagenate">
  <{if $productlist_prev_page != ""}>
    <a href="<{$productlist_prev_page}>"><img src="http://img05.shop-pro.jp/PA01105/188/etc/page_arrow_lt.gif" alt="" /></a>
  <{/if}>
  <{section name=num3 loop=$pgnum}>
    <a class="pbox" href="<{$clink}>&page=<{$smarty.section.num3.iteration}>"><{$smarty.section.num3.iteration}></a>
  <{/section}>
  <{if $productlist_next_page != ""}>
    <a href="<{$productlist_next_page}>"><img src="http://img05.shop-pro.jp/PA01105/188/etc/page_arrow_rt.gif" alt="" /></a>
  <{/if}>
</div>

左右の矢印を出して、間は数字([1] [2] [3]・・・)のリンクです。途中を省略したいときや、いまいるところの前後だけ出す場合はとりあえず考慮してありませんが、できます。
 
二つ目はまた今度。

コメントをどうぞ

※ コメントは管理者が承認した後、表示されます。