Labo

[EC-CUBE 2.11.5] 商品検索ブロックの検索条件に、商品一覧コメントを含めたい

2012年05月20日 / 投稿者名:fukap


もはやどのネタをブログで書いたか、よくわからなくなってきている昨今ですが。
今回は商品検索ブロックの商品名テキストボックスに入れた文字列が、商品情報の「一覧-メインコメント」でも合致すれば、検索結果一覧に表示されるということをやってみます。デフォルトで言えば、以下のように「一人」と入れたら、おなべが検索結果に出てくる感じです。

 

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 に含まれるカラムなら同様の方法で出来そうです。

[EC-CUBE 2.11.5] 商品検索ブロックの検索条件に、商品一覧コメントを含めたい への3件のコメント

  1. 山田 より:

    お世話になっております。
    2.12で使用するにはどうしたら良いでしょうか?
    少しいじっていて行番号が変わっているので、できれば前後の行も有るとわかりやすいので、どうぞよろしくお願いします。

  2. fukap より:

    前後の行を入れてみました。
    ちょっとわかりやすくなりましたか?

  3. hn より:

    とても助かりました。ありがとうございます。

コメントを残す

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

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。