Movable Type 検索の全角スペースを半角スペースと同じ振る舞いにする
Movable Type の検索フォームで検索文字列を複数入力して、区切り文字に全角スペース(空白)を使用すると、全角スペースは検索文字として認識され、期待しない結果(おそらく検索結果として何もヒットしない)になってしまいます。
この全角スペースを半角スペースと同じ扱いにするためのカスタマイズを紹介します。
1.IME で全角入力中に半角スペースを入力する
本題からそれますが、Windows の MS-IME で全角文字入力中に半角スペースを挿入したい場合は、「Shift キー + Space キー」で半角スペースを入力することができます。また、IME のプロパティを下記のように変更することで、全角文字入力中に常に半角スペースを入力することができます。
2.カスタマイズ
2.1 Search.pm の修正
まず、lib/MT/Search.pm
に下記のパッチを適用してください。
--- lib/MT/Search.pm.bak Mon Jan 15 15:46:31 2007
+++ lib/MT/Search.pm Wed Mar 21 22:55:15 2007
@@ -116,6 +116,8 @@
## Set search_string (for display only)
if ($app->{searchparam}{Type} eq 'straight') {
$app->{search_string} = $q->param('search') || '';
+ my $delimiter = $app->translate("delimiter");
+ $app->{search_string} =~ s/$delimiter/ /g;
} elsif ($app->{searchparam}{Type} eq 'tag') {
$app->{search_string} = $q->param('search') || '';
}
パッチが分からない方は MT/App/Search.pm
を任意のエディタで開き、下記の青色の2行を追加してください。
:
(略)
:
sub init_request{
my $app = shift;
$app->SUPER::init_request(@_);
foreach (qw(searchparam templates search_string results
user __have_throttle)) {
delete $app->{$_} if exists $app->{$_}
}
:
(略)
:
## Set search_string (for display only)
if ($app->{searchparam}{Type} eq 'straight') {
$app->{search_string} = $q->param('search') || '';
my $delimiter = $app->translate("delimiter");
$app->{search_string} =~ s/$delimiter/ /g;
} elsif ($app->{searchparam}{Type} eq 'tag') {
$app->{search_string} = $q->param('search') || '';
}
## Get login information if user is logged in (via cookie).
## If no login cookie, this fails silently, and that's fine.
($app->{user}) = $app->login;
}
:
(略)
:
2.2 ja.pm の修正
次に、lib/MT/L10N/ja.pm
を任意のエディタで開き、下記の1行を追加してください。
'delimiter' => ' ',
追加する場所は、似たような記述の近辺であればどこでも構いませんが、とりあえず下から3行目にいれましょう。
:
(略)
:
'scheduled' => '指定日',
'No entries could be found.' => 'エントリーは見つかりません。',
'delimiter' => ' ',
);
1;
お分かりの通り、検索フォームのクエリーから全角文字を半角文字に直しているだけです。もう少しエレガントな方法がありましたら情報お待ちしております。
Posted by yujiro このページの先頭に戻る
- Movable Type検索でURL改ざんによるブログ検索をできないようにする方法
- Movable Typeの検索オプション徹底解説
- Movable Type 5.1の検索で「blog_idパラメータが不正です。」となる不具合の対処
- Movable Type 5.1の検索で検索結果テンプレートを指定する方法
- Movabel Type の検索結果フィードを利用する
- Movable Type検索結果のブログ記事タイトルからアーカイブページへリンクする方法
- Movable Type で複数ブログを検索する
- タグ検索を絞り込む(その2:カスタマイズ)
- タグ検索を絞り込む(その1)
- Movable Type 検索の全角スペースを半角スペースと同じ振る舞いにする(MT4版)
- Movable Type 4.2 検索結果ページのカスタマイズ:ページナビゲーションをプルダウンメニューにする
- Movable Type 4.2 検索結果ページのカスタマイズ:ナビゲーションを検索結果の上下に表示する
- Movable Type 4.2 検索結果ページのカスタマイズ:検索結果が1ページだけのときに「1」という表示をなくす
- Movable Type 4.2 検索結果ページのカスタマイズ:検索結果の見出しに(現在のページ/総ページ数)を表示する
- Movable Type 4.2 検索結果ページのカスタマイズ:1ページに表示する件数を変更する
トラックバックURL
コメント
yujiro さん、いつもお世話になります。
4.22 の場合は、どのように修正したらいいでしょうか?
どうぞよろしくお願いいたします。
[1] Posted by s.fujino : October 19, 2008 12:50 PM
>s.fujinoさん
こんばんは。
ご質問の件ですが、ご要望事項として承りました。
うまくカスタマイズできればエントリーしたいと思います。
それではよろしくお願い致します。
[2] Posted by yujiro : October 25, 2008 2:26 AM
コメントする
greeting