PowerCMS X Q&A

PowerCMS Xを用いてWebサイトを構築する際の技術的なヒントや解決策をご紹介します。

MTEstraierSearchタグを静的ページで利用することはできますか?

MTEstraierSearchタグは「 サイト内全文検索機能(SearchEstraierプラグイン)」で提供されるタグのため「動的に生成する検索ページで利用するタグ」と思い込んでしまうところがありますが、静的生成のページでも利用可能です。

例えば、ビューに以下のようなテンプレートタグを記述し、ファイル出力を「静的」としたURLマップを作成して再構築を行うと、指定の条件で検索を行った結果がHTMLファイルとして出力されます。

<h2>「PowerCMS X」で全文検索</h2>
<mt:estraiersearch prefix="estraier_" query="PowerCMS X">
  <mt:if name="__first__"><ul></mt:if>
  <li><a href="<mt:var name="estraier_uri" escape />"><mt:var name="estraier_title" escape /></a></li>
  <mt:if name="__last__"></ul></mt:if>
</mt:estraiersearch>

<h2>タイトルに「PowerCMS X」を含むオブジェクトを検索</h2>
<mt:estraiersearch prefix="estraier_" no_query="1" add_attr="@title" add_condition="STRINC" value="PowerCMS X">
  <mt:if name="__first__"><ul></mt:if>
  <li><a href="<mt:var name="estraier_uri" escape />"><mt:var name="estraier_title" escape /></a></li>
  <mt:if name="__last__"></ul></mt:if>
</mt:estraiersearch>

PowerCMS X ver.3.5で追加された「情報分類」(モデルやスペースをまたがって情報の類別に利用するもの)を利用してオブジェクトを抽出・インデックスページ化する場合に利用すると、各モデルをMTObjectLoopタグでループして加工するよりもシンプルかつ高速なビューになる可能性があると考えられます。(出力内容にもよるかもしれませんので規模の大きなサイトで計測したいところです。)

つまり、検索条件をユーザーからの入力値にする場合はダイナミック生成、何らかのオブジェクトの値もしくは固定の値にする場合は静的生成となり、ファイル出力方式を決めるのは検索条件の設定方法なのです。

関連するQ&A