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

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