mt-search.cgiの検索結果で3点リーダー省略機能の付いたページャーを設ける
前回PowerSeachのページャーの3点リーダー省略機能付きのコードを投稿したが、今度はmt-search.cgiの検索結果画面向け。
<mt:SearchResultsFooter>
<mt:CurrentPage setvar="num__current_page" />
<mt:setvar name="flag__exist_l_leader" value="0" />
<mt:setvar name="flag__exist_r_leader" value="0" />
<ul class="pagination">
<MTIfPreviousResults>
<li class="prev"><a href="<$MTPreviousLink absolute="1" $>"><span>«</span></a></li>
<MTElse>
</MTIfPreviousResults>
<MTPagerBlock>
<mt:var name="flag__show_pager_item" value="0" />
<mt:if name="__first__">
<mt:var name="flag__show_pager_item" value="1" />
<mt:elseif name="__last__">
<mt:var name="flag__show_pager_item" value="1" />
<mt:elseif name="__value__" eq="$num__current_page">
<mt:var name="flag__show_pager_item" value="1" />
<mt:elseif name="__value__" gt="$num__current_page">
<mt:ignore>ループのフォーカス(=__value__)がカレントページから2個以上右に離れてる時は、3点リーダーにする。</mt:ignore>
<mt:var name="num__current_page" op="+" value="2" setvar="num__threshold" />
<mt:if name="num__threshold" ge="$__value__" >
<mt:var name="flag__show_pager_item" value="1" />
<mt:else>
<mt:setvar name="switch__set_leader" value="left" />
</mt:if>
<mt:elseif name="__value__" lt="$num__current_page">
<mt:ignore>ループのフォーカス(=__value__)がカレントページから2個以上左に離れてる時は、3点リーダーにする。</mt:ignore>
<mt:var name="num__current_page" op="-" value="2" setvar="num__threshold" />
<mt:if name="__value__" ge="$num__threshold" >
<mt:var name="flag__show_pager_item" value="1" />
<mt:else>
<mt:setvar name="switch__set_leader" value="right" />
</mt:if>
</mt:if>
<mt:if name="flag__show_pager_item" eq="1">
<MTIfCurrentPage>
<li><a href="#" class="active"><span><mt:var name="__value__" /></span></a></li>
<MTElse>
<li><a href="<$MTPagerLink absolute="1" $>"><span><mt:var name="__value__" /></span></a></li>
</MTIfCurrentPage>
<mt:elseif name="switch__set_leader" eq="left">
<mt:if name="flag__exist_l_leader" ne="1">
<li><a href="#">...</a></li>
<mt:setvar name="flag__exist_l_leader" value="1" />
</mt:if>
<mt:elseif name="switch__set_leader" eq="right">
<mt:if name="flag__exist_r_leader" ne="1">
<li><a href="#">...</a></li>
<mt:setvar name="flag__exist_r_leader" value="1" />
</mt:if>
</mt:if>
</MTPagerBlock>
<MTIfMoreResults>
<li class="next"><a href="<$MTNextLink absolute="1" $>"><span>»</span></a></li>
<MTElse>
</MTIfMoreResults>
</ul>
</mt:SearchResultsFooter>