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>

関連するタグ

mt-search.cgi, PowerCMS5.16