custom/plugins/WeedesignPageSpeed/src/WeedesignPageSpeed.php line 18

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Weedesign\PageSpeed;
  3. use Composer\Autoload\ClassLoader;
  4. use Shopware\Core\Framework\Context;
  5. use Shopware\Core\Framework\Plugin;
  6. use Symfony\Component\DependencyInjection\ContainerBuilder;
  7. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  8. use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
  9. use Shopware\Core\Framework\Plugin\Context\UpdateContext;
  10. use Shopware\Core\System\SystemConfig\SystemConfigService;
  11. use Weedesign\PageSpeed\Controller\Media\DeleteController;
  12. use Weedesign\PageSpeed\Controller\htaccess\ResetController;
  13. use Weedesign\PageSpeed\Service\GenerateMediaFiles;
  14. use Doctrine\DBAL\Connection;
  15. class WeedesignPageSpeed extends Plugin
  16. {
  17.     public const PLUGIN_NAME 'WeedesignPageSpeed';
  18.     public function build(ContainerBuilder $container): void
  19.     {
  20.         parent::build($container);
  21.         $file __DIR__.'/../vendor/autoload.php';
  22.         if (!is_file($file)) {
  23.             return;
  24.         }
  25.         $classLoader = require_once $file;
  26.         if ($classLoader instanceof ClassLoader) {
  27.             $classLoader->unregister();
  28.             $classLoader->register(false);
  29.         }
  30.     }
  31.     public function uninstall(UninstallContext $context): void
  32.     {
  33.         parent::uninstall($context);
  34.         $resetController = new ResetController();
  35.         $resetHtaccess $resetController->reset();
  36.         if ($context->keepUserData()) {
  37.             return;
  38.         }
  39.         $deleteController = new DeleteController();
  40.         $deleteMedia $deleteController->check();
  41.         $connection $this->container->get(Connection::class);
  42.         $sql "DELETE FROM `system_config` WHERE `configuration_key` LIKE '%WeedesignPageSpeed.config%'";
  43.         $results $connection->prepare($sql)->executeStatement();
  44.         
  45.     }
  46.     public function deactivate(DeactivateContext $context): void
  47.     {
  48.         $resetController = new ResetController();
  49.         $resetHtaccess $resetController->reset();
  50.     }
  51.     public function update(UpdateContext $context): void
  52.     {
  53.         $systemConfigService $this->container->get(SystemConfigService::class);
  54.         $connection $this->container->get(Connection::class);
  55.         $sql "DELETE FROM `system_config` WHERE `configuration_key` LIKE '%WeedesignPageSpeed.config.get%'";
  56.         $results $connection->prepare($sql)->executeStatement();
  57.         $sql "DELETE FROM `system_config` WHERE `configuration_key` = 'WeedesignPageSpeed.config.mediaFiles'";
  58.         $results $connection->prepare($sql)->executeStatement();
  59.         $sql "DELETE FROM `system_config` WHERE `configuration_key` = 'WeedesignPageSpeed.config.thumbnailSizes'";
  60.         $results $connection->prepare($sql)->executeStatement();
  61.         $systemConfigService->set('WeedesignPageSpeed.config.absolute',1);
  62.         if(empty($systemConfigService->get('WeedesignPageSpeed.config.email'))) {
  63.             $systemConfigService->set('WeedesignPageSpeed.config.email','support@weedesign.de');
  64.         }
  65.     }
  66. }