<?php declare(strict_types=1);
namespace CioEweLandingCreator;
use Shopware\Core\Content\Media\Aggregate\MediaDefaultFolder\MediaDefaultFolderEntity;
use Shopware\Core\Content\Media\Aggregate\MediaFolder\MediaFolderEntity;
use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
use Shopware\Core\Framework\Plugin;
use Shopware\Core\Framework\Plugin\Context\InstallContext;
class CioEweLandingCreator extends Plugin
{
const defaultMediaFolderId = 'd22ca6c1aa844214963cbc135ea2e3d0';
public function install(InstallContext $installContext): void
{
/** @var EntityRepositoryInterface $mediaFolderRepository */
$mediaFolderRepository = $this->container->get('media_folder.repository');
/** @var EntityRepositoryInterface $defaultMediaFolderRepository */
$defaultMediaFolderRepository = $this->container->get('media_default_folder.repository');
$criteria = (new Criteria())->addFilter(new EqualsFilter('id', self::defaultMediaFolderId));
$defaultMediaFolder = $defaultMediaFolderRepository->search($criteria, $installContext->getContext())->first();
if (!$defaultMediaFolder instanceof MediaDefaultFolderEntity) {
$defaultMediaFolderRepository->create([
[
'id' => self::defaultMediaFolderId,
'associationFields' => [
'bannerMedia',
'parkenMedia'
],
'entity' => 'cio_website'
]
], $installContext->getContext());
}
$criteria = (new Criteria())->addFilter(new EqualsFilter('name', 'Landingpages'));
$mediaFolder = $mediaFolderRepository->search($criteria, $installContext->getContext())->first();
if ($mediaFolder instanceof MediaFolderEntity) {
$mediaFolderRepository->update([
[
'id' => $mediaFolder->getId(),
'defaultFolderId' => self::defaultMediaFolderId
]
], $installContext->getContext());
}
}
}