nordcode.io/sylius-taxon-filter-plugin

Sylius的分类过滤器插件。

dev-master / 1.6.x-dev 2020-04-27 10:26 UTC

This package is not auto-updated.

Last update: 2024-09-25 03:34:48 UTC


README

此插件允许将特定方面链接到Sylius中的特定分类。

Sylius有产品属性、产品选项等概念。然而,没有内置的方式使这些属性或选项仅对特定类别的产品相关。如果您想允许访客使用这些方面过滤产品目录,这可能是个问题。此插件使得将特定的属性、选项和其他方面链接到分类成为可能,从而让您更容易决定在何处显示哪些过滤器。

安装

  1. 通过Composer安装包
     $ composer require nordcode.io/sylius-taxon-filter-plugin
    
  2. 更新 config/bundles.php

     <?php
        
     return [
        
     ...
        
     Nordcode\SyliusTaxonFilterPlugin\NordcodeSyliusTaxonFilterPlugin::class => ['all' => true],
     ]
    
  3. 更新您的 Taxon 模型类以实现我们的 TaxonInterface

     ...
     use Nordcode\SyliusTaxonFilterPlugin\Entity\TaxonInterface;
     use Nordcode\SyliusTaxonFilterPlugin\Entity\TaxonTrait;
       
     ...
        
     class Taxon extends BaseTaxon implements TaxonInterface
     {
         use TaxonTrait;
        
        ...
     }
    
  4. 扩展此包中找到的 TaxonFilter 模型类,并在 config/packages/_sylius.yaml 中指定它为资源类
     ...
     sylius_resource:
         resources:
     ...
             nordcode_sylius_taxon_filter_plugin.taxon_filter:
                 classes:
                     model: App\Entity\Taxonomy\TaxonFilter
     ...
    
  5. config/packages/_sylius.yaml 中包含插件配置文件
     imports:
     ...
         - { resource: "@NordcodeSyliusTaxonFilterPlugin/Resources/config/config.yml" }
     ...
    
  6. config/packages/stof_doctrine_extensions.yaml 中启用Gedmo Sortable Doctrine扩展
     stof_doctrine_extensions:
     ...
         orm:
             default:
                 sortable: true
    
  7. 在您的路由配置(例如 config/routes.yaml)中包含插件路由
     nordcode_taxon_filter_admin:
         resource: "@NordcodeSyliusTaxonFilterPlugin/Resources/config/admin_routing.yaml"
         prefix: /admin
    
  8. src/Migrations/ 复制并执行迁移
     $ cp vendor/nordcode.io/sylius-taxon-filter-plugin/src/Migrations/* src/Migrations/
     $ bin/console doctrine:migrations:migrate
    

    注意:如果在生产环境中运行,请向此命令添加 -e prod 标志。

用法

该插件为管理员提供了一个界面来查看、生成和启用/禁用过滤器。

还提供了一个控制台命令。如果分类过滤器生成时间超过您的服务器或PHP设置允许的时间,则该命令特别有用。命令可以按以下方式调用

$ bin/console nordcode:taxon-filter:generate

默认生成四种类型的分类过滤器

  • 子分类
  • 价格
  • 产品属性(每个分类每个属性一个条目)
  • 产品选项(每个选项每个属性一个条目)

这些类型中的任何一个都可以通过将其服务名称匹配的参数设置为false来禁用,例如,在 services.yaml 中设置以下参数将只生成属性过滤器

parameters:
    nordcode_sylius_taxon_filter_plugin.generator.category: false
    nordcode_sylius_taxon_filter_plugin.generator.price: false
    nordcode_sylius_taxon_filter_plugin.generator.product_attribute: true
    nordcode_sylius_taxon_filter_plugin.generator.product_option: false

应用程序可以实施附加的生成器。每个生成器必须实现 Nordcode\SyliusTaxonFilterPlugin\Service\Generator\TaxonFilterGeneratorInteface(如果自动配置关闭,则标记为 nordcode_sylius_taxon_filter_plugin.generator)。

请注意,如果找到了名称与其实际服务名称匹配的参数,并且其值等于 false,则自定义生成器也不会被使用。