Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
setSections example
$slot
->
getFieldConfig
(
)
;
$cmsBlock
=
new
CmsBlockEntity
(
)
;
$cmsBlock
->
setUniqueIdentifier
(
'block1'
)
;
$cmsBlock
->
setSlots
(
new
CmsSlotCollection
(
[
$slot
]
)
)
;
$cmsSection
=
new
CmsSectionEntity
(
)
;
$cmsSection
->
setUniqueIdentifier
(
'section1'
)
;
$cmsSection
->
setBlocks
(
new
CmsBlockCollection
(
[
$cmsBlock
]
)
)
;
$cmsPage
=
new
CmsPageEntity
(
)
;
$cmsPage
->
setSections
(
new
CmsSectionCollection
(
[
$cmsSection
]
)
)
;
$product
->
setCmsPage
(
$cmsPage
)
;
return
$slot
;
}
}
$cmsSectionEntity
->
setId
(
Uuid::
randomHex
(
)
)
;
$cmsBlockEntity
=
new
CmsBlockEntity
(
)
;
$cmsBlockEntity
->
setId
(
Uuid::
randomHex
(
)
)
;
$cmsSlotEntity
=
new
CmsSlotEntity
(
)
;
$cmsSlotEntity
->
setId
(
Uuid::
randomHex
(
)
)
;
$cmsSlotEntity
->
setSlot
(
json_encode
(
$productEntity
->
getTranslated
(
)
, \JSON_THROW_ON_ERROR
)
)
;
$cmsBlockEntity
->
setSlots
(
new
CmsSlotCollection
(
[
$cmsSlotEntity
]
)
)
;
$cmsSectionEntity
->
setBlocks
(
new
CmsBlockCollection
(
[
$cmsBlockEntity
]
)
)
;
$cmsPageEntity
->
setSections
(
new
CmsSectionCollection
(
[
$cmsSectionEntity
]
)
)
;
return
$cmsPageEntity
;
}
/** * @return array<string, array<string, array<string, array<string, array<string, string>>>>> */
private
function
getCmsSlotConfig
(
)
: array
{
return
[
'data' =>
[
$cmsSectionEntity
->
setId
(
Uuid::
randomHex
(
)
)
;
$cmsBlockEntity
=
new
CmsBlockEntity
(
)
;
$cmsBlockEntity
->
setId
(
Uuid::
randomHex
(
)
)
;
$cmsSlotEntity
=
new
CmsSlotEntity
(
)
;
$cmsSlotEntity
->
setId
(
Uuid::
randomHex
(
)
)
;
$cmsSlotEntity
->
setSlot
(
json_encode
(
$productEntity
->
getTranslated
(
)
, \JSON_THROW_ON_ERROR
)
)
;
$cmsBlockEntity
->
setSlots
(
new
CmsSlotCollection
(
[
$cmsSlotEntity
]
)
)
;
$cmsSectionEntity
->
setBlocks
(
new
CmsBlockCollection
(
[
$cmsBlockEntity
]
)
)
;
$cmsPageEntity
->
setSections
(
new
CmsSectionCollection
(
[
$cmsSectionEntity
]
)
)
;
return
$cmsPageEntity
;
}
}
protected
function
getConfigName
(
)
{
return
'layout_builder_test.' .
$this
->
getStorageType
(
)
. '.' .
$this
->
getStorageId
(
)
;
}
/** * {@inheritdoc} */
public
function
getSections
(
)
{
if
(
is_null
(
$this
->sections
)
)
{
$sections
=
$this
->configFactory->
get
(
$this
->
getConfigName
(
)
)
->
get
(
'sections'
)
?:
[
]
;
$this
->
setSections
(
array_map
(
[
Section::
class
, 'fromArray'
]
,
$sections
)
)
;
}
return
$this
->sections;
}
/** * {@inheritdoc} */
protected
function
setSections
(
array
$sections
)
{
$this
->sections =
array_values
(
$sections
)
;
return
$this
;
}
$field
->
setTranslatable
(
FALSE
)
;
$field
->
save
(
)
;
}
}
/** * {@inheritdoc} */
public
function
createCopy
(
$mode
)
{
// Disable Layout Builder and remove any sections copied from the original.
return
parent::
createCopy
(
$mode
)
->
setSections
(
[
]
)
->
disableLayoutBuilder
(
)
;
}
/** * {@inheritdoc} */
protected
function
getDefaultRegion
(
)
{
if
(
$this
->
hasSection
(
0
)
)
{
return
$this
->
getSection
(
0
)
->
getDefaultRegion
(
)
;
}
protected
function
setSection
(
$delta
, Section
$section
)
{
$sections
=
$this
->
getSections
(
)
;
$sections
[
$delta
]
=
$section
;
$this
->
setSections
(
$sections
)
;
return
$this
;
}
/** * {@inheritdoc} */
public
function
appendSection
(
Section
$section
)
{
$delta
=
$this
->
count
(
)
;
$this
->
setSection
(
$delta
,
$section
)
;
return
$this
;
}