6:タグIDで絞り込み

未分類

タグIDで商品一覧を絞り込めるようにする

URLにパラメーター「tag_id=1」を加えて表示を可能にする。

app/Customize/Form/Extension/ のディレクトリに SearchProductTypeExtension.php を作成

(FTPからCostomizeに移動、Form以下がなかったのでForm>Extensionのフォルダを作成)

app/Customize/Form/Extension/SearchProductTypeExtension.php の中身

___________________________

<?php

namespace CustomizeFormExtension;

 

use EccubeFormTypeSearchProductType;

use SymfonyComponentFormAbstractTypeExtension;

use SymfonyComponentFormExtensionCoreTypeHiddenType;

use SymfonyComponentFormFormBuilderInterface;

 

class SearchProductTypeExtension extends AbstractTypeExtension

     /**

     * {@inheritdoc}

     */

    public function buildForm(FormBuilderInterface $builder, array $options)

    {

        $builder->add(‘tag_id’, HiddenType::class, []);

    }

    /**

     * {@inheritdoc}

     */

    public function getExtendedType()

    {

        return SearchProductType::class;

    }

}

___________________________

app/Customize/Repository ディレクトリに TagIdSearchCustomizer.phpを作成

(FTPからCustomizeに移動、Repositoryがなかったのでフォルダを作成)

app/Customize/Repository/TagIdSearchCustomizer.php の中身

___________________________

<?php

namespace CustomizeRepository;

use EccubeDoctrineQueryQueryCustomizer;

use EccubeRepositoryQueryKey;

use DoctrineORMQueryBuilder;

/**

 *

 */

class TagIdSearchCustomizer implements QueryCustomizer {

    /**

     * 検索のパラメータにtag_idを追加

     */

    public function customize(QueryBuilder $builder, $params, $queryKey)

    {

        if (!empty($params[‘tag_id’]) && $params[‘tag_id’]) {

            $builder->innerJoin(‘p.ProductTag’, ‘pt’);

            $builder->andWhere(‘pt = :tag_id’);

            $builder->setParameter(‘tag_id’, $params[‘tag_id’]);

        }

    }

    

    public static function getExtendedTypes(): iterable

    {

        return [EntryType::class];

    }

}

___________________________

上記2つのファイルを設置すればタグIDでのパラメータで絞り込みが可能になりました。

https://ドメイン名/ec/products/list?&tag_id=3

にアクセス、デフォルトの「限定品」のタグの商品のみが表示されました。

参考リンク:

ec-cubeの商品を【タグで絞込み検索】できるようにしてみた
ec-cubeの商品一覧ページに、タグ一覧を表示させタグで絞込検索をできるようにするカスタム方法

参考リンク:

https://blugrit.com/2020/04/05/ec-cube4-product-list-tag-id/

参考リンク:

Just a moment...

コメント

タイトルとURLをコピーしました