WEBサイト作成時に発生するエラーやトラブル対応の備忘録を中心に、いろいろと書いております。


複数キーワードで検索させる

EC-CUBEの検索キーワードは、単文でないと検索できないっぽい。
・「商品名」ではなくて「キーワード」で検索させたい。
・キーワードで検索させるなら、複数検索になってしまうはず!
・ということで、複数キーワード検索に改造することに。

class/pages/products/LC_Page_Products_List.php の L.439以降

—————————————————————————————————

ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ // 商品名をwhere文に
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $name = ereg_replace(“,”, “”, $name);
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ if ( strlen($name) > 0 ){
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $where .= ” AND ( name ILIKE ? OR comment3 ILIKE ?) “;
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $ret = SC_Utils_Ex::sfManualEscape($value);
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $arrval[] = “%$ret%”;
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $arrval[] = “%$ret%”;
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ }

—————————————————————————————————

—————————————————————————————————

ツꀀツꀀツꀀツꀀツꀀツꀀ// 商品名をwhere文に
ツꀀツꀀツꀀツꀀツꀀ$name = ereg_replace(“,”, “”, $name);
ツꀀツꀀツꀀツꀀ $name = mb_ereg_replace(“ ”, ” “, $name);//全角を半角スペースに
ツꀀツꀀツꀀ ツꀀ$keyword = split(” “, $name);
ツꀀツꀀツꀀ ツꀀforeach($keyword as $value){

ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ if ( strlen($value) > 0 ){
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $where .= ” AND ( name ILIKE ? OR comment3 ILIKE ?) “;
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $ret = SC_Utils_Ex::sfManualEscape($value);
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $arrval[] = “%$ret%”;
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $arrval[] = “%$ret%”;
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ }
ツꀀツꀀツꀀ ツꀀ}

—————————————————————————————————

太字部分を追加と変更しました。
これで、複数キーワードがANDで検索できます。

また、後で本格的にフォームを作るときに、ANDとORにも改造してみることにします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください