バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > フロント機能 > 複数カテゴリ指定の検索のやり方のヒントをご教授下さい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
topo
投稿日時: 2016/12/23 14:29
対応状況: −−−
常連
登録日: 2008/6/11
居住地: 岡山
投稿: 64
複数カテゴリ指定の検索のやり方のヒントをご教授下さい
複数カテゴリ指定の検索のやり方のヒントを頂きたく思い、投稿させて頂きました。
もう何年もEC-CUBE触っていませんでしたらすっかり浦島太郎状態です・・・
お詳しい方々ご教授くださいませm(_ _)m

----------
■作りたいもの
初期機能がカテゴリをクリックすると一覧が出ます。
これをチェックボックスのようなものを表示して複数カテゴリ指定をして検索したいと考えています。

----------
■やってみた事

【1】まず以下のチュートリアルを真似して作ってみました。
→入力欄を表示→データベースに格納→公開サイトに表示。
 とりあえず基本的な作り方は理解したつもりです。

・EC-CUBE開発ドキュメント
→「プラグインカスタマイズ」→「プラグイン開発方法」→「チュートリアル」
http://ec-cube.github.io/plugin_tutorial

----------
【2】プラグイン仕様書を見てみる
→11ページ目に「検索クエリの変更」とあるので検索結果をいじったりもできそうだと踏んでいます。

http://downloads.ec-cube.net/src/manual/v3/plugin.pdf

----------
【3】次に「1」の内容を踏襲してキーワード検索のブロックのフックポイントに複数カテゴリを呼び出し
→カテゴリのチェックボックスを画面に表示するところまでは作れました。

----------
■その後の作り方について

・イベントクラスを修正(フロント画面表示処理追加)
http://ec-cube.github.io/plugin_tutorial#section-17

上記説明のように単純に追加になった項目を追加するのはこの例で
イメージが付くのですが、通常の検索に条件を追加して検索させたりする
方法が触り始めたばかりでよくわからず困っています。
このあたりのヒントを頂ければ幸いです。

hiroo
投稿日時: 2016/12/23 14:50
対応状況: −−−
長老
登録日: 2016/6/9
居住地:
投稿: 160
Re: 複数カテゴリ指定の検索のやり方のヒントをご教授下さい
src/Eccube/Controller/ProductController.phpの85行目付近に以下の記述があると思います


        $event = new EventArgs(
            array(
                'searchData' => $searchData,
                'qb' => $qb,
            ),
            $request
        );
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_PRODUCT_INDEX_SEARCH, $event);


こいつがフックポイントですので、イベントクラスにて$searchDataと$qbを取得して、クエリビルダーを書き換えるなり追加するなりしてやればいいです。
event.ymlにて


front.product.index.search:
    - [hogehoge, NORMAL]


とすればイベントクラスで以下のようにして取得できます。


    public function hogehoge(\Eccube\Event\EventArgs $EventArgs)
    {
        $searchData = $EventArgs->getArgument('searchData');
        $qb = $EventArgs->getArgument('qb');
    }
topo
投稿日時: 2016/12/23 14:57
対応状況: −−−
常連
登録日: 2008/6/11
居住地: 岡山
投稿: 64
Re: 複数カテゴリ指定の検索のやり方のヒントをご教授下さい
さっそくのご返信有難うございました。
こちら試してみたいと思いますm(_ _)m
topo
投稿日時: 2016/12/26 15:07
対応状況: −−−
常連
登録日: 2008/6/11
居住地: 岡山
投稿: 64
Re: 複数カテゴリ指定の検索のやり方のヒントをご教授下さい
頂いたサンプルを元に記述追加してみまして目的の動きが作れそうでした。
ひとまず解決となりました。アドバイス有難うございましたm(_ _)m



   public function hogehoge(\Eccube\Event\EventArgs $EventArgs)
    {
        $searchData = $EventArgs->getArgument('searchData');
        $qb = $EventArgs->getArgument('qb');

        //複数カテゴリ指定用に追加
        if( !empty($searchData['category_id_0']) ){
            $qb->innerJoin('p.ProductCategories', 'pct0')
               ->andWhere($qb->expr()->in('pct0.Category', ':Categories0')  )
               ->setParameter('Categories0', $searchData['category_id_0']);
        }
    }
hiroo
投稿日時: 2016/12/26 15:46
対応状況: 解決済
長老
登録日: 2016/6/9
居住地:
投稿: 160
Re: 複数カテゴリ指定の検索のやり方のヒントをご教授下さい
ご報告ありがとうございます。
ひとまず解決とのことで、良かったです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.