Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getMediaThumbnailSizes example
]
,
]
,
$context
)
;
$criteria
=
new
Criteria
(
[
$configurationId
]
)
;
$criteria
->
addAssociation
(
'mediaThumbnailSizes'
)
;
$read
=
$repository
->
search
(
$criteria
,
$context
)
;
$configuration
=
$read
->
get
(
$configurationId
)
;
static
::
assertNotNull
(
$configuration
)
;
static
::
assertEquals
(
1,
$configuration
->
getMediaThumbnailSizes
(
)
->
count
(
)
)
;
static
::
assertNotNull
(
$configuration
->
getMediaThumbnailSizes
(
)
->
get
(
$sizeId
)
)
;
}
public
function
testCreateThumbnailSize
(
)
: void
{
$context
= Context::
createDefaultContext
(
)
;
$repository
=
$this
->
getContainer
(
)
->
get
(
'media_thumbnail_size.repository'
)
;
$sizeId
= Uuid::
randomHex
(
)
;
$confId
= Uuid::
randomHex
(
)
;
return
[
'media_folder_configuration.loaded' =>
[
[
'unserialize', 10
]
,
]
,
]
;
}
public
function
unserialize
(
EntityLoadedEvent
$event
)
: void
{
/** @var MediaFolderConfigurationEntity $media */
foreach
(
$event
->
getEntities
(
)
as
$media
)
{
if
(
$media
->
getMediaThumbnailSizes
(
)
=== null
)
{
if
(
$media
->
getMediaThumbnailSizesRo
(
)
)
{
$media
->
setMediaThumbnailSizes
(
unserialize
(
$media
->
getMediaThumbnailSizesRo
(
)
)
)
;
}
else
{
$media
->
setMediaThumbnailSizes
(
new
MediaThumbnailSizeCollection
(
)
)
;
}
}
}
}
}
$this
->thumbnailRepository->
delete
(
$delete
,
$context
)
;
}
$updates
=
[
]
;
foreach
(
$generate
as
$media
)
{
if
(
$media
->
getMediaFolder
(
)
=== null ||
$media
->
getMediaFolder
(
)
->
getConfiguration
(
)
=== null
)
{
continue
;
}
$config
=
$media
->
getMediaFolder
(
)
->
getConfiguration
(
)
;
$thumbnails
=
$this
->
createThumbnailsForSizes
(
$media
,
$config
,
$config
->
getMediaThumbnailSizes
(
)
)
;
foreach
(
$thumbnails
as
$thumbnail
)
{
$updates
[
]
=
$thumbnail
;
}
}
if
(
empty
(
$updates
)
)
{
return
0;
}
$context
->
scope
(
Context::SYSTEM_SCOPE,
function
D
$context
)
use
(
$updates
)
: void
{
/** @var MediaFolderConfigurationCollection $configs */
$configs
=
$this
->repository->
search
(
$criteria
,
$context
)
;
$update
=
new
RetryableQuery
(
$this
->connection,
$this
->connection->
prepare
(
'UPDATE media_folder_configuration SET media_thumbnail_sizes_ro = :media_thumbnail_sizes_ro WHERE id = :id'
)
)
;
foreach
(
$configs
as
$config
)
{
$update
->
execute
(
[
'media_thumbnail_sizes_ro' =>
serialize
(
$config
->
getMediaThumbnailSizes
(
)
)
,
'id' => Uuid::
fromHexToBytes
(
$config
->
getId
(
)
)
,
]
)
;
}
$this
->eventDispatcher->
dispatch
(
new
MediaFolderConfigurationIndexerEvent
(
$ids
,
$context
,
$message
->
getSkip
(
)
)
)
;
}
public
function
getTotal
(
)
: int
{
return
$this
->iteratorFactory->
createIterator
(
$this
->repository->
getDefinition
(
)
)
->
fetchCount
(
)
;
}
foreach
(
$thumbnails
as
$thumbnail
)
{
$thumbnailPath
=
$this
->urlGenerator->
getRelativeThumbnailUrl
(
$media
,
$thumbnail
)
;
$folder
=
$updatedMedia
->
getMediaFolder
(
)
;
static
::
assertInstanceOf
(
MediaFolderEntity::
class
,
$folder
)
;
static
::
assertInstanceOf
(
MediaFolderConfigurationEntity::
class
,
$folder
->
getConfiguration
(
)
)
;
$sizes
=
$folder
->
getConfiguration
(
)
->
getMediaThumbnailSizes
(
)
;
static
::
assertInstanceOf
(
MediaThumbnailSizeCollection::
class
,
$sizes
)
;
$filtered
=
$sizes
->
filter
(
fn
(
MediaThumbnailSizeEntity
$size
)
=>
$size
->
getWidth
(
)
===
$thumbnail
->
getWidth
(
)
&&
$size
->
getHeight
(
)
===
$thumbnail
->
getHeight
(
)
)
;
static
::
assertCount
(
1,
$filtered
)
;
static
::
assertTrue
(
$this
->
getPublicFilesystem
(
)
->
has
(
$thumbnailPath
)
)
;
}
}