custom/plugins/CioEweLandingCreator/src/CioEweLandingCreator.php line 15

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace CioEweLandingCreator;
  4. use Shopware\Core\Content\Media\Aggregate\MediaDefaultFolder\MediaDefaultFolderEntity;
  5. use Shopware\Core\Content\Media\Aggregate\MediaFolder\MediaFolderEntity;
  6. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  7. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  8. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
  9. use Shopware\Core\Framework\Plugin;
  10. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  11. class CioEweLandingCreator extends Plugin
  12. {
  13.     public const defaultMediaFolderId 'd22ca6c1aa844214963cbc135ea2e3d0';
  14.     public function install(InstallContext $installContext): void
  15.     {
  16.         /** @var EntityRepositoryInterface $mediaFolderRepository */
  17.         $mediaFolderRepository $this->container->get('media_folder.repository');
  18.         /** @var EntityRepositoryInterface $defaultMediaFolderRepository */
  19.         $defaultMediaFolderRepository $this->container->get('media_default_folder.repository');
  20.         $criteria = (new Criteria())->addFilter(new EqualsFilter('id'self::defaultMediaFolderId));
  21.         $defaultMediaFolder $defaultMediaFolderRepository->search($criteria$installContext->getContext())->first();
  22.         if (!$defaultMediaFolder instanceof MediaDefaultFolderEntity) {
  23.             $defaultMediaFolderRepository->create([
  24.                 [
  25.                     'id' => self::defaultMediaFolderId,
  26.                     'associationFields' => [
  27.                         'bannerMedia',
  28.                         'parkenMedia'
  29.                     ],
  30.                     'entity' => 'cio_website'
  31.                 ]
  32.             ], $installContext->getContext());
  33.         }
  34.         $criteria = (new Criteria())->addFilter(new EqualsFilter('name''Landingpages'));
  35.         $mediaFolder $mediaFolderRepository->search($criteria$installContext->getContext())->first();
  36.         if ($mediaFolder instanceof MediaFolderEntity) {
  37.             $mediaFolderRepository->update([
  38.                 [
  39.                     'id' => $mediaFolder->getId(),
  40.                     'defaultFolderId' => self::defaultMediaFolderId
  41.                 ]
  42.             ], $installContext->getContext());
  43.         }
  44.     }
  45. }