17-5 テンプレートでカスタムフィールド検索のページを作る
324ページ
<mt:GetQueryString name="search" setvar="search" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
<mt:Include module="HTMLヘッダー" />
<title><mt:BlogName encode_html="1" />: 検索結果</title>
</head>
<body id="<$mt:BlogThemeID$>" class="mt-search-results <mt:Var name="page_layout" />">
<div id="container">
<div id="container-inner">
<$mt:Include module="バナーヘッダー"$>
<div id="content">
<div id="content-inner">
<div id="alpha">
<div id="alpha-inner">
<div id="search-results">
<h1 id="page-title" class="search-results-header">
「<mt:GetVar name="search" />」と一致するもの
</h1>
<mt:BlogEntryCount setvar="count">
<mt:Entries lastn="$count">
<mt:if tag="EntryRecommend" eq="$search">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
<mt:SetVar name="flag" value="1" />
</mt:if>
</mt:Entries>
<mt:unless name="flag">
検索に一致するページはありませんでした。
</mt:unless>
</div>
</div>
</div>
<mt:Include module="サイドバー" />
</div>
</div>
<mt:Include module="バナーフッター" />
</div>
</div>
</body>
</html>
325ページ
手順④
<div class="widget-search widget">
<h3 class="widget-header">検索</h3>
<div class="widget-content">
<form method="get" action="<mt:BlogURL />search.php">
<input type="text" id="search" name="search" value="" />
<input type="submit" accesskey="4" value="検索" />
</form>
</div>
</div>
326ページ
<div class="widget-search widget">
<h3 class="widget-header">検索</h3>
<div class="widget-content">
<form method="get" action="<mt:BlogURL />search.php">
<select id="search" name="search">
<option value="★★★★★">★★★★★</option>
<option value="★★★★">★★★★</option>
<option value="★★★">★★★</option>
<option value="★★">★★</option>
<option value="★">★</option>
</select>
<input type="submit" accesskey="4" value="検索" />
</form>
</div>
</div>
「検索結果」インデックステンプレート
...前略...
<mt:Entries lastn="$count">
<mt:if tag="EntryBody" like="$search">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
...後略...
「ブログ記事の概要」テンプレートモジュール
...前略...
<mt:If tag="EntryBody">
<div class="asset-body">
<mt:if name="search">
<mt:SetVarBlock name="pattern">/(<mt:GetVar name="search">)/g</mt:SetVarBlock>
<mt:EntryBody regex_replace="$pattern","<span style=\"font-weight:bold;color:#f00\">\$1</span>" />
<mt:else>
<$mt:EntryBody$>
</mt:if>
</div>
</mt:If>
...後略...
327ページ
<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="offset" setvar="offset" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
<mt:Include module="HTMLヘッダー" />
<title><mt:BlogName encode_html="1" />: 検索結果</title>
</head>
<body id="<$mt:BlogThemeID$>" class="mt-search-results <mt:Var name="page_layout" />">
<div id="container">
<div id="container-inner">
<$mt:Include module="バナーヘッダー"$>
<div id="content">
<div id="content-inner">
<div id="alpha">
<div id="alpha-inner">
<div id="search-results">
<h1 id="page-title" class="search-results-header">
「<mt:GetVar name="search" />」と一致するもの
</h1>
<mt:SetVar name="results_per_page" value="10" />
<mt:unless name="offset">
<mt:SetVar name="next_offset" value="$results_per_page" />
<mt:else>
<mt:GetVar name="offset" op="+" value="$results_per_page" setvar="next_offset" />
<mt:GetVar name="offset" op="-" value="$results_per_page" setvar="previous_offset" />
</mt:unless>
<mt:SetVar name="per_page_counter" value="0" />
<mt:BlogEntryCount setvar="count">
<mt:Entries lastn="$count">
<mt:if name="per_page_counter" lt="$results_per_page">
<mt:if tag="EntryRecommend" eq="$search">
<mt:unless name="offset">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
<mt:SetVar name="flag" value="1" />
<mt:SetVar name="per_page_counter" op="++" />
<mt:else>
<mt:SetVar name="offset" op="--" />
</mt:unless>
</mt:if>
</mt:if>
</mt:Entries>
<mt:unless name="flag">
検索に一致するページはありませんでした。
</mt:unless>
</div>
<div class="content-nav">
<mt:if name="previous_offset" ge="0">
<a href="<mt:BlogURL />search.php?search=<mt:GetVar name="search" escape="url" />&offset=<mt:GetVar name="previous_offset" />">前のページ</a>
</mt:if>
<mt:if name="per_page_counter" eq="$results_per_page">
<a href="<mt:BlogURL />search.php?search=<mt:GetVar name="search" escape="url" />&offset=<mt:GetVar name="next_offset" />">次のページ</a>
</mt:if>
</div>
</div>
</div>
<mt:Include module="サイドバー" />
</div>
</div>
<mt:Include module="バナーフッター" />
</div>
</div>
</body>
</html>
329ページ
日数指定
<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="days" setvar="days" />
<mt:Entries days="$days">
<mt:if tag="EntryFoo" eq="$search">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
</mt:if>
</mt:Entries>
カテゴリ指定
<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="category" setvar="category" />
<mt:Entries category="$category">
<mt:if tag="EntryFoo" eq="$search">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
</mt:if>
</mt:Entries>
複数カスタムフィールドの指定
<mt:GetQueryString name="foo" setvar="foo">
<mt:GetQueryString name="bar" setvar="bar">
<mt:BlogEntryCount setvar="count">
<mt:Entries lastn="$count">
<mt:if tag="EntryFoo" eq="$foo">
<mt:if tag="EntryBar" eq="$bar">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
</mt:if>
</mt:if>
</mt:Entries>
330ページ
複数ブログの指定
<mt:GetQueryString name="search" setvar="search" />
<mt:Blogs include_blogs="1,2,3">
<mt:BlogEntryCount setvar="count">
<mt:Entries lastn="$count">
<mt:if tag="EntryFoo" eq="$search">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
</mt:if>
</mt:Entries>
</mt:Blogs>
<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="blog_id" setvar="blog_id" />
<mt:Blogs include_blogs="$blog_id">
<mt:BlogEntryCount setvar="count">
<mt:Entries lastn="$count">
<mt:if tag="EntryFoo" eq="$search">
<mt:Include module="ブログ記事の概要" hide_counts="1" />
</mt:if>
</mt:Entries>
</mt:Blogs>