BugTrack/746
の編集
Top
/
BugTrack
/
746
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
*単語検索の区切り文字に全角スペースを使いたい [#v2dbd8f4] - 元タイトル: 単語検索で、単語の区切り文字に全角スペースが使えない。 -ページ: [[BugTrack]] -投稿者: [[よっちい]] -優先順位: 低 -状態: 完了 -カテゴリー: 本体新機能 -投稿日: 2004-11-11 (木) 10:17:42 -バージョン: 1.4.4 -リリース予定バージョン: 1.5.4 **メッセージ [#n3d8f457] plugin/search.inc.phpの単語検索で、全角スペースが単語の区切りと認識されず、それを含めた1語として検索をかけてしまいます。 --- func.php.orig Sat Aug 7 00:39:52 2004 +++ func.php Thu Nov 11 10:06:10 2004 @@ -175,6 +175,7 @@ $retval = array(); $b_type = ($type == 'AND'); // AND:TRUE OR:FALSE + $word = mb_convert_kana($word, "s"); $keys = get_search_words(preg_split('/\s+/', $word, -1, PREG_SPLIT_NO_EMPTY)); $_pages = get_existpages(); こうするといちおう解決できそうですが、 -mb_convert_kana()を使ってしまう -検索結果画面の「これらのキーワードがハイライトされています」の語はつながったまま と、いまひとつです。もう少しいい案はないでしょうか。 ---- -多少強引な方法で、次のようにすると大丈夫そうですが・・・ -- [[teanan]] &new{2004-11-11 (木) 10:58:12}; plugin/search.inc.php 18行目付近 if ($s_word != '') { + $vars['word'] = mb_convert_kana($vars['word'], "s"); $msg = str_replace('$1',$s_word,$_title_result); $body = do_search($vars['word'],$type); } --$vars['word']を書き換えるところがちょっと気持ち悪いですが、「これらのキーワードがハイライトされています」は$vars['word']を見ているようです。 -- [[teanan]] &new{2004-11-11 (木) 11:02:17}; -- あ、なるほど。lib/func.phpを修正するよりは、影響範囲が狭くできるのでいいかもしれません。''$s_word''にもmb_convert_kana()をかけると、タイトルに表示される検索語も半角スペースになりますね。 ~とりあえず現状を「仕様」とするのかが判断できないので、コアなメンバーさんのコメントをいただきたいところであります。 -- [[よっちい]] &new{2004-11-11 (木) 19:16:24}; -こんにちは :) 現状は「ただあるがまま」です。半角スペースがデリミタになっています。私が始めて投げたBugTrack [[BugTrack/170]] をチェックしていただくとニュアンスが伝わるかと思います。 -- [[henoheno]] &new{2004-11-11 (木) 21:34:07}; -全角スペースがデリミタとして認識されないのは、コマンドライン上のツールを始めとして従来よりあるごく普通の状態だと思いますので、仮にこれを実装する場合についてコメントします。 -- [[henoheno]] &new{2004-11-11 (木) 21:36:04}; -うまい方法があれば使わせていただきます :) でも上記の改造そのままだと、日本語にこだわった造りになってしまうと思います。海外の方がソースを見たら嫌がるでしょう (^^; ((初期化処理や前作業にあたる処理なので、もっと上の行に配置して、さらに英語でコメントを置くのはいかがでしょう)) wordについては、検索結果を一覧表示する部分をハックするのはいかがでしょうか。 -- [[henoheno]] &new{2004-11-11 (木) 21:44:46}; -積極的に現状を変える考えがない、ということであれば今のままでも構わないと思います。とりあえず寝ながら考えた結果、こんな感じでどうかな --- search.inc.php.orig Sat Jul 31 12:09:20 2004 +++ search.inc.php Fri Nov 12 09:16:23 2004 @@ -10,7 +10,20 @@ global $script,$vars; global $_title_result,$_title_search,$_msg_searching,$_btn_and,$_btn_or,$_btn_search; - $s_word = array_key_exists('word',$vars) ? htmlspecialchars($vars['word']) : ''; + if(array_key_exists('word',$vars)) + { + if(LANG == 'ja') + { + $vars['word'] = mb_convert_kana($vars['word'], "s"); + } + + $s_word = htmlspecialchars($vars['word']); + } + else + { + $s_word = ''; + } + $type = array_key_exists('type',$vars) ? $vars['type'] : ''; if ($s_word != '') ということになりました。 -- [[よっちい]] &new{2004-11-12 (金) 09:27:33}; - [[BugTrack2/233]] -- &new{2007-05-02 (水) 10:44:07}; - すいませんが1,4,6ではどのように設定すればよいか教えてください。 -- [[ロマ]] &new{2006-05-01 (月) 11:32:31}; -- 1.4.7ですとどのように設定すればよいでしょうか?? -- [[idea]] &new{2010-06-01 (火) 16:36:12}; -- 1.4.5以降ならこんな改造かな。 if ($s_word != '') { + switch (LANG) { + case 'ja': + $vars['word'] = mb_convert_kana($vars['word'], 's'); + $s_word = mb_convert_kana($s_word, 's'); + break; + } // Search $msg = str_replace('$1', $s_word, $_title_result); $body = do_search($vars['word'], $type, FALSE, $base); } else { // Init unset($vars['word']); // Stop using $_msg_word at lib/html.php $msg = $_title_search; $body = '<br />' . "\n" . $_msg_searching . "\n"; } // Show search form 2004-11-12のよっちいさんの案を参考にしました。 -- &new{2010-06-01 (火) 18:15:36}; -- 1.4.7で試してみましたが、うまくいかず下記のようにエラーを返されました。 Fatal error: Call to undefined function mb_convert_kana() in /格納場所/search.inc.php on line 52 で $vars['word'] = mb_convert_kana($vars['word'], 's'); の部分です。素人ですいませんが、わかりましたらご教授ください。-- [[idea]] &new{2010-06-03 (木) 08:57:55}; --- 未定義の関数mb_convert_kanaを呼び出そうとした、というエラーです。今回は、mbstringモジュールが入っていない(有効になっていない)事が原因だと思われます。 -- &new{2010-06-03 (木) 18:36:50}; - search2 でのみ対応しました: commit:b97afb6701 全角スペースを含む文字列の検索はできなくなっています(割り切り) -- [[umorigu]] &new{2022-03-22 (火) 00:42:05}; #comment
タイムスタンプを変更しない
*単語検索の区切り文字に全角スペースを使いたい [#v2dbd8f4] - 元タイトル: 単語検索で、単語の区切り文字に全角スペースが使えない。 -ページ: [[BugTrack]] -投稿者: [[よっちい]] -優先順位: 低 -状態: 完了 -カテゴリー: 本体新機能 -投稿日: 2004-11-11 (木) 10:17:42 -バージョン: 1.4.4 -リリース予定バージョン: 1.5.4 **メッセージ [#n3d8f457] plugin/search.inc.phpの単語検索で、全角スペースが単語の区切りと認識されず、それを含めた1語として検索をかけてしまいます。 --- func.php.orig Sat Aug 7 00:39:52 2004 +++ func.php Thu Nov 11 10:06:10 2004 @@ -175,6 +175,7 @@ $retval = array(); $b_type = ($type == 'AND'); // AND:TRUE OR:FALSE + $word = mb_convert_kana($word, "s"); $keys = get_search_words(preg_split('/\s+/', $word, -1, PREG_SPLIT_NO_EMPTY)); $_pages = get_existpages(); こうするといちおう解決できそうですが、 -mb_convert_kana()を使ってしまう -検索結果画面の「これらのキーワードがハイライトされています」の語はつながったまま と、いまひとつです。もう少しいい案はないでしょうか。 ---- -多少強引な方法で、次のようにすると大丈夫そうですが・・・ -- [[teanan]] &new{2004-11-11 (木) 10:58:12}; plugin/search.inc.php 18行目付近 if ($s_word != '') { + $vars['word'] = mb_convert_kana($vars['word'], "s"); $msg = str_replace('$1',$s_word,$_title_result); $body = do_search($vars['word'],$type); } --$vars['word']を書き換えるところがちょっと気持ち悪いですが、「これらのキーワードがハイライトされています」は$vars['word']を見ているようです。 -- [[teanan]] &new{2004-11-11 (木) 11:02:17}; -- あ、なるほど。lib/func.phpを修正するよりは、影響範囲が狭くできるのでいいかもしれません。''$s_word''にもmb_convert_kana()をかけると、タイトルに表示される検索語も半角スペースになりますね。 ~とりあえず現状を「仕様」とするのかが判断できないので、コアなメンバーさんのコメントをいただきたいところであります。 -- [[よっちい]] &new{2004-11-11 (木) 19:16:24}; -こんにちは :) 現状は「ただあるがまま」です。半角スペースがデリミタになっています。私が始めて投げたBugTrack [[BugTrack/170]] をチェックしていただくとニュアンスが伝わるかと思います。 -- [[henoheno]] &new{2004-11-11 (木) 21:34:07}; -全角スペースがデリミタとして認識されないのは、コマンドライン上のツールを始めとして従来よりあるごく普通の状態だと思いますので、仮にこれを実装する場合についてコメントします。 -- [[henoheno]] &new{2004-11-11 (木) 21:36:04}; -うまい方法があれば使わせていただきます :) でも上記の改造そのままだと、日本語にこだわった造りになってしまうと思います。海外の方がソースを見たら嫌がるでしょう (^^; ((初期化処理や前作業にあたる処理なので、もっと上の行に配置して、さらに英語でコメントを置くのはいかがでしょう)) wordについては、検索結果を一覧表示する部分をハックするのはいかがでしょうか。 -- [[henoheno]] &new{2004-11-11 (木) 21:44:46}; -積極的に現状を変える考えがない、ということであれば今のままでも構わないと思います。とりあえず寝ながら考えた結果、こんな感じでどうかな --- search.inc.php.orig Sat Jul 31 12:09:20 2004 +++ search.inc.php Fri Nov 12 09:16:23 2004 @@ -10,7 +10,20 @@ global $script,$vars; global $_title_result,$_title_search,$_msg_searching,$_btn_and,$_btn_or,$_btn_search; - $s_word = array_key_exists('word',$vars) ? htmlspecialchars($vars['word']) : ''; + if(array_key_exists('word',$vars)) + { + if(LANG == 'ja') + { + $vars['word'] = mb_convert_kana($vars['word'], "s"); + } + + $s_word = htmlspecialchars($vars['word']); + } + else + { + $s_word = ''; + } + $type = array_key_exists('type',$vars) ? $vars['type'] : ''; if ($s_word != '') ということになりました。 -- [[よっちい]] &new{2004-11-12 (金) 09:27:33}; - [[BugTrack2/233]] -- &new{2007-05-02 (水) 10:44:07}; - すいませんが1,4,6ではどのように設定すればよいか教えてください。 -- [[ロマ]] &new{2006-05-01 (月) 11:32:31}; -- 1.4.7ですとどのように設定すればよいでしょうか?? -- [[idea]] &new{2010-06-01 (火) 16:36:12}; -- 1.4.5以降ならこんな改造かな。 if ($s_word != '') { + switch (LANG) { + case 'ja': + $vars['word'] = mb_convert_kana($vars['word'], 's'); + $s_word = mb_convert_kana($s_word, 's'); + break; + } // Search $msg = str_replace('$1', $s_word, $_title_result); $body = do_search($vars['word'], $type, FALSE, $base); } else { // Init unset($vars['word']); // Stop using $_msg_word at lib/html.php $msg = $_title_search; $body = '<br />' . "\n" . $_msg_searching . "\n"; } // Show search form 2004-11-12のよっちいさんの案を参考にしました。 -- &new{2010-06-01 (火) 18:15:36}; -- 1.4.7で試してみましたが、うまくいかず下記のようにエラーを返されました。 Fatal error: Call to undefined function mb_convert_kana() in /格納場所/search.inc.php on line 52 で $vars['word'] = mb_convert_kana($vars['word'], 's'); の部分です。素人ですいませんが、わかりましたらご教授ください。-- [[idea]] &new{2010-06-03 (木) 08:57:55}; --- 未定義の関数mb_convert_kanaを呼び出そうとした、というエラーです。今回は、mbstringモジュールが入っていない(有効になっていない)事が原因だと思われます。 -- &new{2010-06-03 (木) 18:36:50}; - search2 でのみ対応しました: commit:b97afb6701 全角スペースを含む文字列の検索はできなくなっています(割り切り) -- [[umorigu]] &new{2022-03-22 (火) 00:42:05}; #comment
テキスト整形のルールを表示する