デフォルトの検索テンプレート
デフォルトの検索テンプレート(/mt/search_templates/default.tmpl)についての質問を頂いたんすが、いちいち質問に答えるカタチだと色々面倒でしかも繁雑なので、ワタシが現在使ってる「検索テンプレート」をそのまま貼っときます。
ワタシゃ検索テンプレートにはサイドバーを付けてないんで、多分このサイトに特化した記述は含まれてない→汎用だと思われ。
Permalinkを■に張ったり、日付に時刻を出さなかったり、カテゴリを[]で挟んだり等の部分はワタシの好みなんで、気に入らなければ好きにいじってください。やってることは基本的にカテゴリーアーカイブを折り畳むと同じです。
特徴(と言えるほど大した物でもないんですが:^^;)は
- Entryの内容を300字まで表示
- Bulkfeedsで類似エントリーを検索可能
- 直訳ながら完全日本語化
- EUC決め打ち
等でしょうか??
なお、本文をtrim_toで区切ってる→/tmpl/cms/bm_entry.tmplをこのように改造してないと末尾文字が化けます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title>検索結果</title>
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>index.rdf" />
</head>
<body>
<div id="banner">
<h1><a href="<$MTBlogURL$>">検索結果</a></h1>
</div>
<div id="container">
<div class="blog">
<form method="post" action="<$MTCGIPath$><$MTSearchScript$>">
このサイトを検索:<br />
<input type="text" size="30" name="search" value="<$MTSearchString$>" /> <input type="submit" value="検索" /><br/>
<input type="checkbox" name="CaseSearch" /> 大文字/小文字の区別 <input type="checkbox" name="RegexSearch" /> 正規表現検索
</form>
<MTSearchResults>
<MTBlogResultHeader>
<h2 class="date"><$MTBlogName$>の検索結果</h2>
</MTBlogResultHeader>
<div class="blogbody">
<h3 class="title"><a href="<$MTEntryPermalink$>">■</a> <$MTEntryTitle$></h3>
<$MTEntryDate format="%Y/%m/%d"$> [<MTEntryCategories glue=", "><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></MTEntryCategories>]
<div class="blogbody"><$MTEntryBody sanitize="all" trim_to="300"$>.....</div><br />
</div>
</MTSearchResults>
<MTNoSearchResults>
<h2>"<$MTSearchString$>" を検索しました</h2>
<div class="blogbody">
<p>"<$MTSearchString$>" を含むページはみつかりませんでした.</p>
</div>
</MTNoSearchResults>
<MTNoSearch>
<h2 class="date">検索方法</h2>
<div class="blogbody">
<p>引用符"..."で単語群を括る事により、「単語」ではなく「フレーズ」として検索出来ます:</p>
<blockquote><pre>"movable type"</pre></blockquote>
<p>AND, OR, NOT のような条件を指定した検索にも対応しています:</p>
<blockquote><pre>personal OR publishing</pre></blockquote>
<blockquote><pre>publishing NOT personal</pre></blockquote>
</div>
</MTNoSearch>
<form action="https://bulkfeeds.net/app/search2" method="GET" name="f" target="_blank">
<b><a href="https://bulkfeeds.net/" target="_blank">Bulkfeeds</a>で検索 <input size="30" type="text" name="q" value="<$MTSearchString$>" /><input value=" Search " type="submit" name="submit" />
<a href="https://bulkfeeds.net/app/search2?q=<$MTSearchString$>&ie=euc-jp" target="_blank">
<img align="middle" alt="RSS" border="0" src="rss.gif"></a><br />
ソート方法
<input value="score" type="radio" name="sort" />
スコア順
<input value="date" type="radio" checked name="sort" />
日付順
<input type="hidden" name="ie" value="euc-jp" />
</form>
</div>
</div>
</body>
</html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title>検索結果</title>
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>index.rdf" />
</head>
<body>
<div id="banner">
<h1><a href="<$MTBlogURL$>">検索結果</a></h1>
</div>
<div id="container">
<div class="blog">
<form method="post" action="<$MTCGIPath$><$MTSearchScript$>">
このサイトを検索:<br />
<input type="text" size="30" name="search" value="<$MTSearchString$>" /> <input type="submit" value="検索" /><br/>
<input type="checkbox" name="CaseSearch" /> 大文字/小文字の区別 <input type="checkbox" name="RegexSearch" /> 正規表現検索
</form>
<MTSearchResults>
<MTBlogResultHeader>
<h2 class="date"><$MTBlogName$>の検索結果</h2>
</MTBlogResultHeader>
<div class="blogbody">
<h3 class="title"><a href="<$MTEntryPermalink$>">■</a> <$MTEntryTitle$></h3>
<$MTEntryDate format="%Y/%m/%d"$> [<MTEntryCategories glue=", "><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></MTEntryCategories>]
<div class="blogbody"><$MTEntryBody sanitize="all" trim_to="300"$>.....</div><br />
</div>
</MTSearchResults>
<MTNoSearchResults>
<h2>"<$MTSearchString$>" を検索しました</h2>
<div class="blogbody">
<p>"<$MTSearchString$>" を含むページはみつかりませんでした.</p>
</div>
</MTNoSearchResults>
<MTNoSearch>
<h2 class="date">検索方法</h2>
<div class="blogbody">
<p>引用符"..."で単語群を括る事により、「単語」ではなく「フレーズ」として検索出来ます:</p>
<blockquote><pre>"movable type"</pre></blockquote>
<p>AND, OR, NOT のような条件を指定した検索にも対応しています:</p>
<blockquote><pre>personal OR publishing</pre></blockquote>
<blockquote><pre>publishing NOT personal</pre></blockquote>
</div>
</MTNoSearch>
<form action="https://bulkfeeds.net/app/search2" method="GET" name="f" target="_blank">
<b><a href="https://bulkfeeds.net/" target="_blank">Bulkfeeds</a>で検索 <input size="30" type="text" name="q" value="<$MTSearchString$>" /><input value=" Search " type="submit" name="submit" />
<a href="https://bulkfeeds.net/app/search2?q=<$MTSearchString$>&ie=euc-jp" target="_blank">
<img align="middle" alt="RSS" border="0" src="rss.gif"></a><br />
ソート方法
<input value="score" type="radio" name="sort" />
スコア順
<input value="date" type="radio" checked name="sort" />
日付順
<input type="hidden" name="ie" value="euc-jp" />
</form>
</div>
</div>
</body>
</html>
/mt…というか「mt-comments.cgiと同じトコロ」にrss.gifというRSSな画像を配置してます。
ちょこちょこといじって上記と変わってきたため、テンプレート公開用のPHPスクリプトを作成し、実物ファイルを見られるようにしました。
こちらは元々ファイル→改めてファイル化してバックアップする必要が無いんで、ホンマにただ表示してるだけです(笑)
echo "<TEXTAREA rows=\"8\" cols=\"80\">\n";
while ($buf = fgets($fp, 8192)) {
$buf = htmlspecialchars($buf);
echo "$buf\n";
}
echo "</TEXTAREA>\n";
while ($buf = fgets($fp, 8192)) {
$buf = htmlspecialchars($buf);
echo "$buf\n";
}
echo "</TEXTAREA>\n";