バージョン選択

フォーラム

メニュー

オンライン状況

59 人のユーザが現在オンラインです。 (50 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 59
もっと...

サイト内検索

質問 > フロント機能 > search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
wa.shi
投稿日時: 2019/2/1 11:29
対応状況: 解決済
常連
登録日: 2018/2/20
居住地:
投稿: 45
Re: search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい
>>468さま

こちら実施致しました。
気持ち良いくらいうまくいきました!!

この度は誠にありがとうございました

念のため、
/src/Eccube/Repository/ProductRepository.php function getQueryBuilderBySearchData()
(97行目付近)
の追記コードを以下に明記させていただきます。


引用:

public function getQueryBuilderBySearchData($searchData)
{

$searchFlg = false; //追加
$qb = $this->createQueryBuilder('p')
->andWhere('p.Status = 1');
// Where句があるが、ここに追加はしないので注意

// category
$categoryJoin = false;
if (!empty($searchData['category_id']) && $searchData['category_id']) {
$Categories = $searchData['category_id']->getSelfAndDescendants();
if ($Categories) {
$qb
->innerJoin('p.ProductCategories', 'pct')
->innerJoin('pct.Category', 'c')
->andWhere($qb->expr()->in('pct.Category', ':Categories'))
->setParameter('Categories', $Categories);
$searchFlg = true; //追加
$categoryJoin = true;
}
}

// name
if (isset($searchData['name']) && Str::isNotBlank($searchData['name'])) {
$keywords = preg_split('/[\s ]+/u', $searchData['name'], -1, PREG_SPLIT_NO_EMPTY);

foreach ($keywords as $index => $keyword) {
$key = sprintf('keyword%s', $index);
$qb
->andWhere(sprintf('NORMALIZE(p.name) LIKE NORMALIZE(:%s) OR NORMALIZE(p.search_word) LIKE NORMALIZE(:%s)', $key, $key))
->setParameter($key, '%' . $keyword . '%');
$searchFlg = true; //追加
}
}

if (!$searchFlg) { //追加
$qb->andWhere('1 = 2'); //追加
} //追加

// Order By
// 価格低い順

       [以下略]
wa.shi
投稿日時: 2019/2/1 11:21
対応状況: −−−
常連
登録日: 2018/2/20
居住地:
投稿: 45
Re: search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい
>>nyoraiさま

実施してみましたが、
どうやらカテゴリーが多数という
原因でないため、
改善がみられなかったです。

ただ、念のため、
今後の運用におきまして
役立つと思いますので、
こちらを有効活用していく方針です。

この度は、ありがとうございました。
wa.shi
投稿日時: 2019/1/31 15:12
対応状況: −−−
常連
登録日: 2018/2/20
居住地:
投稿: 45
Re: search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい
>> 468さま

わざわざご丁寧に
コードの詳細ありがとうございます。
こちら早速試してみようと思います。

完了次第、結果報告させていただきます。
wa.shi
投稿日時: 2019/1/31 15:09
対応状況: −−−
常連
登録日: 2018/2/20
居住地:
投稿: 45
Re: search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい
>>nyoraiさま

ご回答ありがとうございます。

こちらの記事は
処理速度のパフォーマンスを高めるということですね。
実施してみる価値がありそうです。

実施後、ご報告させていただきます。
468
投稿日時: 2019/1/31 11:59
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい
全商品が対象となってしまうような場合のみ、1件も商品が見つからないようにした事があります。
(アパレル関連で商品点数が10万点を越えており、商品一覧を表示するまでに5分程度かかっていた為)

その時は、
/src/Eccube/Repository/ProductRepository.php function getQueryBuilderBySearchData()
に以下のように手を加えました。

functionの開始直後に
$searchFlg = false;
を追記。

$qb->andWhere()
->setParameter();
のようにWHERE句を設定している記述の直後に
$searchFlg = true;
を追記。
※複数個所あります。

検索条件を追記してる箇所の最後で
以下の判定を追記して、1度もWHERE句が設定されていない場合、
必ず結果が0件となるWHERE句を追加
if (!$searchFlg) {
$qb->andWhere('1 = 2');
}
※私は// Order Byのコメントの直前に書きました。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

nyorai
投稿日時: 2019/1/31 9:55
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい
こちらの内容で解決するかもしれません。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=20345&forum=10
wa.shi
投稿日時: 2019/1/30 16:47
対応状況: 解決済
常連
登録日: 2018/2/20
居住地:
投稿: 45
search_productのBlockについて || カテゴリーのドロップダウン検索を廃止したい
毎々お世話になっております。
主題の件につきまして、
カテゴリーのドロップダウン検索を廃止したく思っております。

当方、商品点数が非常に多く
カテゴリー「全商品」+キーワード検索を空で
検索かけると全商品がヒットし、
「504 Gateway Timeout」エラーが発生してしまうためです。
(上記が原因かは100%判明しているわけではございません…。)

※ phpのメモリ設定は恐らく問題ないかと思われます。


只今、カテゴリーのドロップダウン箇所は
CSSで非表示にしておりますが、
キーワード検索を空の状態で検索かけて、
「お探しの商品は見つかりませんでした。」と
することが理想です。

何か良い方法はございますでしょうか?



EC-CUBE:3.0.17
DB:MySQL 5.6.15
PHP:5.6.35


以上、よろしくお願い致します。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,279名です
総投稿数は109,685件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.