Zencartの検索機能

パイナップルアーミーで寝不足気味なYu-ichiです:neko:

zencartの検索機能で、おかしなことに気がつきました。:cat_6:
半角スペースで区切るとAND検索になりますが、全角スペースで区切ったときに
検索結果が異なってしまいました。:ga-n:
バージョンは1.3.0なのですが・・・。

いろいろ調べてみた結果、全角スペースを区切り文字として判断していないことが原因だということが分かりました。
というわけで、早速全角スペースを区切り文字として認識するようにカスタマイズ開始です。

今回はこちらを参考に作業してみました。:wa-i:
http://zen-cart.jp/bbs/viewtopic.php?f=4&t=2695

上記ページに書いてある通り、
includes/functions/functions_general.php】の244行目付近にある
function zen_parse_search_string()】の記述内にある
  $pieces = split(‘[[:space:]]+’, $search_str);
の文章を
  $pieces = mb_split(‘[[:space:] ]+’, $search_str);
に書き換えて、
substr(), strlen(), ereg_replace()のそれぞれの先頭に【mb_】をつけて
mb_substr(), mb_strlen(), mb_ereg_replace()としました。

動作確認してみたところ、見事に全角スペースが区切り文字として、
AND検索ができるようになりました:wa-i:

気が付いてよかった:neko:

トラックバックURL