custom/plugins/s360-category-configuration/src/S360CategoryConfiguration.php line 12

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace S360CategoryConfiguration;
  3. use Shopware\Core\Framework\Plugin;
  4. use Shopware\Core\System\CustomField\CustomFieldTypes;
  5. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  6. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  7. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  8. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsAnyFilter;
  9. class S360CategoryConfiguration extends Plugin
  10. {
  11.     public function install(InstallContext $context): void
  12.     {
  13.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  14.         $customFieldSetRepository->create([
  15.             [
  16.                 'name' => 'custom_category_configuration',
  17.                 'config' => [
  18.                     'label' => 'S360 Category Configuration'
  19.                 ],
  20.                 'customFields' => [
  21.                     [
  22.                         'name' => 'custom_category_configuration_exclude_subcat_products',
  23.                         'type' => CustomFieldTypes::BOOL,
  24.                         'config' => [
  25.                             'label' => 'Exclude products from child categories in product listing',
  26.                             'componentName' => 'sw-checkbox-field',
  27.                             'customFieldType' => 'checkbox',
  28.                             'translated' => false
  29.                         ]
  30.                     ]
  31.                 ],
  32.                 'relations' => [
  33.                     [
  34.                         'entityName' => 'category'
  35.                     ]
  36.                 ]
  37.             ]
  38.     ], $context->getContext());
  39.     }
  40.     public function uninstall(UninstallContext $context): void
  41.     {
  42.         if ($context->keepUserData()) {
  43.             return;
  44.         }
  45.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  46.         $criteria = new Criteria();
  47.         $criteria->addFilter(new EqualsAnyFilter('name', ['custom_category_configuration']));
  48.         // EntitySearchResult
  49.         $result $customFieldSetRepository->search($criteria$context->getContext());
  50.         foreach ($result->getEntities() as $entity) {
  51.             $customFieldSetRepository->delete([[
  52.                 'id' => $entity->getId()
  53.             ]], $context->getContext());
  54.         }
  55.     }
  56. }