TopMovable Typeカスタマイズ検索 > 2008年10月
2008年10月27日

Movable Type 4.2 検索結果ページのカスタマイズ:ナビゲーションを検索結果の上下に表示する

Movable Type 4.2 の検索結果ページのカスタマイズで、4回目は「ナビゲーションを検索結果の上下に表示する」を紹介します。

その4:ナビゲーションを検索結果の上下に表示する

デフォルトテンプレートでは、ナビゲーションがページの下にしか表示されません。

カスタマイズ後はこのようにページ上部に表示します。ナビゲーションを上部に表示しておけば、ページ送りをスクロールせずに行えるようになります。

上部に表示するには、既存と同じナビゲーションのサブテンプレートを追加します。

デフォルトテンプレートの場合

<h1 id="page-title" class="search-results-header">
  <mt:IfStraightSearch>
   「<$mt:SearchString$>」と一致するもの
  </mt:IfStraightSearch>
  <mt:IfTagSearch>
    タグ「<$mt:SearchString$>」が付けられているもの
  </mt:IfTagSearch>
</h1>
<div class="content-nav">
    <mt:IfPreviousResults><a href="<$mt:PreviousLink$>" rel="prev" onclick="return swapContent(-1);">&lt; 前</a>&nbsp;&nbsp;</mt:IfPreviousResults><mt:PagerBlock><mt:IfCurrentPage><$mt:Var name="__value__"$><mt:Else><a href="<$mt:PagerLink$>"><$mt:Var name="__value__"$></a></mt:IfCurrentPage><mt:Unless name="__last__">&nbsp;</mt:Unless></mt:PagerBlock><mt:IfMoreResults>&nbsp;&nbsp;<a href="<$mt:NextLink$>" rel="next" onclick="return swapContent();">次 &gt;</a></mt:IfMoreResults>
</div>
<div class="search-results-container autopagerize_page_element">

配布テンプレートの場合(設定済み)

<div id="search-results">
    <span id="current-page" style="display:none"><mt:currentPage /></span>
        <h2 class="search-results-header">
        <mt:ifStraightSearch>
          「<mt:searchString />」
        </mt:ifStraightSearch>
        <mt:ifTagSearch>
          タグ「<mt:searchString />」
        </mt:ifTagSearch>
の検索結果(<mt:currentPage>/<mt:totalPages />)
        </h2>
 
<mt:pagerBlock>
  <mt:getVar name="__value__" setvar="result_number" />
</mt:pagerBlock>
 
<mt:unless name="result_number" eq="1">
    <div class="content-nav">
<mt:ifPreviousResults>
  <a href="<mt:previousLink />" rel="prev" onclick="return swapContent(-1);">&lt; 前</a>&nbsp;&nbsp;
</mt:ifPreviousResults>
<mt:pagerBlock>
  <mt:ifCurrentPage>
    <mt:getVar name="__value__" />
  <mt:else>
    <a href="<mt:pagerLink />"><mt:getVar name="__value__" /></a>
  </mt:ifCurrentPage>
  <mt:unless name="__last__">&nbsp;</mt:Unless>
</mt:pagerBlock>
<mt:ifMoreResults>
  &nbsp;&nbsp;<a href="<mt:nextLink />" rel="next" onclick="return swapContent();">次 &gt;</a>
</mt:ifMoreResults>
    </div>
</mt:unless>
 
    </mt:searchResultsHeader>

関連記事

Comments [0] | Trackbacks [0]
2008年10月22日

Movable Type 4.2 検索結果ページのカスタマイズ:検索結果が1ページだけのときに「1」という表示をなくす

October 22,2008 12:55 AM
Tag:[, , ]
Permalink

Movable Type 4.2 の検索結果ページのカスタマイズで、3回目は「検索結果が1ページだけのときに「1」という表示をなくす」を紹介します。

その3:検索結果が1ページだけのときに「1」という表示をなくす

デフォルトテンプレートでは、ページ分割を行わない場合、ページ下のナビゲーション部分に「1」という数字が表示されます。

カスタマイズ後はこのように非表示にすることができます。

非表示にするには、次のようなサブテンプレートを MTSearchResults タグブロック内に追加します。

デフォルトテンプレートの場合

<mt:pagerBlock>
  <mt:getVar name="__value__" setvar="result_number" />
</mt:pagerBlock>
 
<mt:unless name="result_number" eq="1">
  <div class="content-nav">
    <mt:IfPreviousResults><a href="<$mt:PreviousLink$>" rel="prev" onclick="return swapContent(-1);">&lt; 前</a>&nbsp;&nbsp;</mt:IfPreviousResults><mt:PagerBlock><mt:IfCurrentPage><$mt:Var name="__value__"$><mt:Else><a href="<$mt:PagerLink$>"><$mt:Var name="__value__"$></a></mt:IfCurrentPage><mt:Unless name="__last__">&nbsp;</mt:Unless></mt:PagerBlock><mt:IfMoreResults>&nbsp;&nbsp;<a href="<$mt:NextLink$>" rel="next" onclick="return swapContent();">次 &gt;</a></mt:IfMoreResults>
  </div>
</mt:unless>

配布テンプレートの場合(設定済み)

<mt:pagerBlock>
  <mt:getVar name="__value__" setvar="result_number" />
</mt:pagerBlock>
 
<mt:unless name="result_number" eq="1">
    <div class="content-nav">
<mt:ifPreviousResults>
  <a href="<mt:previousLink />" rel="prev" onclick="return swapContent(-1);">&lt; 前</a>&nbsp;&nbsp;
</mt:ifPreviousResults>
<mt:pagerBlock>
  <mt:ifCurrentPage>
    <mt:getVar name="__value__" />
  <mt:else>
    <a href="<mt:pagerLink />"><mt:getVar name="__value__" /></a>
  </mt:ifCurrentPage>
  <mt:unless name="__last__">&nbsp;</mt:Unless>
</mt:pagerBlock>
<mt:ifMoreResults>
  &nbsp;&nbsp;<a href="<mt:nextLink />" rel="next" onclick="return swapContent();">次 &gt;</a>
</mt:ifMoreResults>
    </div>
</mt:unless>

関連記事

Comments [2] | Trackbacks [0]
2008年10月14日

Movable Type 4.2 検索結果ページのカスタマイズ:検索結果の見出しに(現在のページ/総ページ数)を表示する

October 14,2008 12:03 AM
Tag:[, , ]
Permalink

Movable Type 4.2 の検索結果ページのカスタマイズで、2回目は「検索結果の見出しに(現在のページ/総ページ数)を表示する」を紹介します。

その2:検索結果の見出しに「現在のページ/総ページ数」を表示する

デフォルトテンプレートでは検索結果がページ分割された場合、「現在のページ/全体のページ数」が表示されないので、現在表示しているページが何ページ目かがちょっと分かりにくいです。

現在表示しているページ(変更前)

カスタマイズ後はこのように「現在のページ/全体のページ数」を表示します。

現在表示しているページ(変更後)

表示するには、次のようなサブテンプレートを MTSearchResults タグブロック内の MTSearchResultsHeader タグにある見出し用要素に追加します。

デフォルトテンプレートの場合

<div id="search-results">
  <span id="current-page" class="hidden"><$mt:CurrentPage$></span>
  <h1 id="page-title" class="search-results-header">
  <mt:IfStraightSearch>
   「<$mt:SearchString$>」と一致するもの
  </mt:IfStraightSearch>
  <mt:IfTagSearch>
    タグ「<$mt:SearchString$>」が付けられているもの
  </mt:IfTagSearch>
(<mt:currentPage>/<mt:totalPages />)
  </h1>

配布テンプレートの場合(設定済み)

<h2 class="search-results-header">
    <mt:ifStraightSearch>
          「<mt:searchString />」
    </mt:ifStraightSearch>
    <mt:ifTagSearch>
          タグ「<mt:searchString />」
    </mt:ifTagSearch>
の検索結果(<mt:currentPage>/<mt:totalPages />)
</h2>

補足ですが、検索結果テンプレートは、ブログ検索・タグ検索で共通なので、見出し要素の内容は、ブログ検索・タグ検索のいずれかで出力内容を振り分けています。したがって、「現在のページ/総ページ数」を表示するタグは、ブログ検索・タグ検索の振り分けに依存しないよう、見出し要素の終了タグの直前に設定しています。

ページ分割しないときは表示しない

上記の設定では、検索結果でページ分割しないときも、次のように(1/1)という表示が出力されてしまいます。

検索結果でページ分割しないとき

ページ分割がないときに「現在のページ/全体のページ数」を表示したくない場合は、追加したタグを MTIf タグで括ると良いでしょう。

<h2 class="search-results-header">
    <mt:ifStraightSearch>
          「<mt:searchString />」
    </mt:ifStraightSearch>
    <mt:ifTagSearch>
          タグ「<mt:searchString />」
    </mt:ifTagSearch>
の検索結果<mt:if tag="totalPages" ne="1">(<mt:currentPage>/<mt:totalPages />)</mt:if>
</h2>

関連記事

Comments [0] | Trackbacks [1]
2008年10月10日

Movable Type 4.2 検索結果ページのカスタマイズ:1ページに表示する件数を変更する

Movable Type 4.2 では検索結果ページをページ分割する機能が追加されました。

ということで、Movable Type 4.2 の検索結果ページのカスタマイズについて何回かに分けて紹介したいと思います。

今のところ、以下のようなカスタマイズを予定しています。思いついたら随時追加します。

  • 1ページに表示数する件数を変更する
  • 検索結果の見出しに「現在のページ/総ページ数」という表示を設定する
  • 検索結果が1ページだけのときに「1」という表示をなくす
  • ナビゲーションを検索結果の上下に表示する
  • ページ遷移をプルダウンメニューにする
  • ナビゲーションで表示する前後ページを制限する

その1:1ページに表示数する件数を変更する

サンプルとして、test というキーワードで検索した結果、次の5件がヒットしたとします。

MaxResults変更前

これを、1ページに表示する件数を3件に変更して、4件目以降はページ分割するというカスタマイズが可能です。

MaxResults変更後

ちなみに、デフォルト状態では1ページに20件まで表示し、検索結果が20件を超えるとページ分割を行います。

1ページに表示数する件数を変更するには、mt-config.cgi に環境変数 SearchMaxResults を追加します。例えば、1ページに表示する件数を10件にする場合は次のように記述します。

SearchMaxResults 10

この追加を行った後、再構築を行うと、検索フォームにある次の MTSearchMaxResults タグに値が反映されます。

<input type="hidden" name="limit" value="<$mt:SearchMaxResults$>" />

言い換えると、環境変数の変更を行っただけでは検索フォームに設定が反映されないので注意が必要です。

類似した環境変数で MaxResults がありますが、これは 4.15 以前で使用する環境変数です(4.2 で設定しても SearchMaxResults と同じ動作にはなるようです)。

環境変数 SearchMaxResults は「Movable Type 4.2 パーフェクトガイド」の 347 ページに掲載しています。

Movable Type 4.2 パーフェクトガイドMovable Type 4.2 パーフェクトガイド
荒木 勇次郎

毎日コミュニケーションズ 2008-07-31
売り上げランキング : 2552

Amazonで詳しく見る
by G-Tools
Comments [2] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3