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にも改造してみることにします。
コメントを残す