<?php declare(strict_types=1);namespace Weedesign\PageSpeed;use Composer\Autoload\ClassLoader;use Shopware\Core\Framework\Context;use Shopware\Core\Framework\Plugin;use Symfony\Component\DependencyInjection\ContainerBuilder;use Shopware\Core\Framework\Plugin\Context\UninstallContext;use Shopware\Core\Framework\Plugin\Context\DeactivateContext;use Shopware\Core\Framework\Plugin\Context\UpdateContext;use Shopware\Core\System\SystemConfig\SystemConfigService;use Weedesign\PageSpeed\Controller\Media\DeleteController;use Weedesign\PageSpeed\Controller\htaccess\ResetController;use Weedesign\PageSpeed\Service\GenerateMediaFiles;use Doctrine\DBAL\Connection;class WeedesignPageSpeed extends Plugin{ public const PLUGIN_NAME = 'WeedesignPageSpeed'; public function build(ContainerBuilder $container): void { parent::build($container); $file = __DIR__.'/../vendor/autoload.php'; if (!is_file($file)) { return; } $classLoader = require_once $file; if ($classLoader instanceof ClassLoader) { $classLoader->unregister(); $classLoader->register(false); } } public function uninstall(UninstallContext $context): void { parent::uninstall($context); $resetController = new ResetController(); $resetHtaccess = $resetController->reset(); if ($context->keepUserData()) { return; } $deleteController = new DeleteController(); $deleteMedia = $deleteController->check(); $connection = $this->container->get(Connection::class); $sql = "DELETE FROM `system_config` WHERE `configuration_key` LIKE '%WeedesignPageSpeed.config%'"; $results = $connection->prepare($sql)->executeStatement(); } public function deactivate(DeactivateContext $context): void { $resetController = new ResetController(); $resetHtaccess = $resetController->reset(); } public function update(UpdateContext $context): void { $systemConfigService = $this->container->get(SystemConfigService::class); $connection = $this->container->get(Connection::class); $sql = "DELETE FROM `system_config` WHERE `configuration_key` LIKE '%WeedesignPageSpeed.config.get%'"; $results = $connection->prepare($sql)->executeStatement(); $sql = "DELETE FROM `system_config` WHERE `configuration_key` = 'WeedesignPageSpeed.config.mediaFiles'"; $results = $connection->prepare($sql)->executeStatement(); $sql = "DELETE FROM `system_config` WHERE `configuration_key` = 'WeedesignPageSpeed.config.thumbnailSizes'"; $results = $connection->prepare($sql)->executeStatement(); $systemConfigService->set('WeedesignPageSpeed.config.absolute',1); if(empty($systemConfigService->get('WeedesignPageSpeed.config.email'))) { $systemConfigService->set('WeedesignPageSpeed.config.email','support@weedesign.de'); } }}