vendor/store.shopware.com/cbaxmoduladcell/src/CbaxModulAdcell.php line 14

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Cbax\ModulAdcell;
  3. use Shopware\Core\Framework\Plugin;
  4. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  5. use Shopware\Core\Framework\Plugin\Context\UpdateContext;
  6. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  7. use Shopware\Core\Framework\Plugin\Context\ActivateContext;
  8. use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
  9. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  10. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\ContainsFilter;
  11. class CbaxModulAdcell extends Plugin
  12. {
  13.     public function install(InstallContext $context): void
  14.     {
  15.         parent::install($context);
  16.     }
  17.     public function update(UpdateContext $context): void
  18.     {
  19.         parent::update($context);
  20.     }
  21.     public function uninstall(UninstallContext $context): void
  22.     {
  23.         if ($context->keepUserData()) {
  24.             parent::uninstall($context);
  25.             return;
  26.         }
  27.         $services $this->getServices();
  28.         $this->removePluginConfig($services$context->getContext());
  29.         parent::uninstall($context);
  30.     }
  31.     public function activate(ActivateContext $context): void
  32.     {
  33.         parent::activate($context);
  34.     }
  35.     public function deactivate(DeactivateContext $context): void
  36.     {
  37.         parent::deactivate($context);
  38.     }
  39.     private function removePluginConfig($services$context)
  40.     {
  41.         $systemConfigRepository $services['systemConfigRepository'];
  42.         $criteria = new Criteria();
  43.         $criteria->addFilter(new ContainsFilter('configurationKey'$this->getName() . '.config.'));
  44.         $idSearchResult $systemConfigRepository->searchIds($criteria$context);
  45.         $ids array_map(static function ($id) {
  46.             return ['id' => $id];
  47.         }, $idSearchResult->getIds());
  48.         if ($ids === []) {
  49.             return;
  50.         }
  51.         $systemConfigRepository->delete($ids$context);
  52.     }
  53.     private function getServices() {
  54.         $services = array();
  55.         /* Standard Services */
  56.         $services['systemConfigService'] = $this->container->get('Shopware\Core\System\SystemConfig\SystemConfigService');
  57.         $services['systemConfigRepository'] = $this->container->get('system_config.repository');
  58.         /* spezifische Services */
  59.         return $services;
  60.     }
  61. }