もはやどのネタをブログで書いたか、よくわからなくなってきている昨今ですが。
今回は商品検索ブロックの商品名テキストボックスに入れた文字列が、商品情報の「一覧-メインコメント」でも合致すれば、検索結果一覧に表示されるということをやってみます。デフォルトで言えば、以下のように「一人」と入れたら、おなべが検索結果に出てくる感じです。
data/class/pages/products/LC_Page_Products_List.php の lfGetSearchCondition メソッドの該当部分を以下のように修正
// 商品名をwhere文に $name = $arrSearchData['name']; $name = str_replace(',', '', $name); // 全角スペースを半角スペースに変換 $name = str_replace(' ', ' ', $name); // スペースでキーワードを分割 $names = preg_split('/ +/', $name); // 分割したキーワードを一つずつwhere文に追加 foreach ($names as $val) { if ( strlen($val) > 0 ) { $searchCondition['where'] .= " AND ( alldtl.name ILIKE ? OR alldtl.comment3 ILIKE ? OR alldtl.main_list_comment ILIKE ?) "; $searchCondition['arrval'][] = "%$val%"; $searchCondition['arrval'][] = "%$val%"; $searchCondition['arrval'][] = "%$val%"; } } // メーカーらのWHERE文字列取得 if ($arrSearchData['maker_id']) { $searchCondition['where'] .= ' AND alldtl.maker_id = ? '; $searchCondition['arrval'][] = $arrSearchData['maker_id']; }
alldtl = dtb_products(SC_Product::findProductIdsOrderに記述あり)なので、dtb_products に含まれるカラムなら同様の方法で出来そうです。
お世話になっております。
2.12で使用するにはどうしたら良いでしょうか?
少しいじっていて行番号が変わっているので、できれば前後の行も有るとわかりやすいので、どうぞよろしくお願いします。
前後の行を入れてみました。
ちょっとわかりやすくなりましたか?
とても助かりました。ありがとうございます。