Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getActionButtons example
/** * @internal */
class
AdminTest
extends
TestCase
{
public
function
testFromXml
(
)
: void
{
$manifest
= Manifest::
createFromXmlFile
(
__DIR__ . '/../_fixtures/test/manifest.xml'
)
;
static
::
assertNotNull
(
$manifest
->
getAdmin
(
)
)
;
static
::
assertCount
(
2,
$manifest
->
getAdmin
(
)
->
getActionButtons
(
)
)
;
static
::
assertCount
(
2,
$manifest
->
getAdmin
(
)
->
getModules
(
)
)
;
$firstActionButton
=
$manifest
->
getAdmin
(
)
->
getActionButtons
(
)
[
0
]
;
static
::
assertEquals
(
'viewOrder',
$firstActionButton
->
getAction
(
)
)
;
static
::
assertEquals
(
'order',
$firstActionButton
->
getEntity
(
)
)
;
static
::
assertEquals
(
'detail',
$firstActionButton
->
getView
(
)
)
;
static
::
assertEquals
(
'https://swag-test.com/your-order',
$firstActionButton
->
getUrl
(
)
)
;
static
::
assertEquals
(
[
'en-GB' => 'View Order',
'de-DE' => 'Zeige Bestellung',
]
,
#[Package('core')]
class
ActionButtonPersister
{
public
function
__construct
(
private
readonly EntityRepository
$actionButtonRepository
)
{
}
public
function
updateActions
(
Manifest
$manifest
, string
$appId
, string
$defaultLocale
, Context
$context
)
: void
{
$existingActionButtons
=
$this
->
getExistingActionButtons
(
$appId
,
$context
)
;
$actionButtons
=
$manifest
->
getAdmin
(
)
?
$manifest
->
getAdmin
(
)
->
getActionButtons
(
)
:
[
]
;
$upserts
=
[
]
;
foreach
(
$actionButtons
as
$actionButton
)
{
$payload
=
$actionButton
->
toArray
(
$defaultLocale
)
;
$payload
[
'appId'
]
=
$appId
;
/** @var ActionButtonEntity|null $existing */
$existing
=
$existingActionButtons
->
filterByProperty
(
'action',
$actionButton
->
getAction
(
)
)
->
first
(
)
;
if
(
$existing
)
{
$payload
[
'id'
]
=
$existing
->
getId
(
)
;
$existingActionButtons
->
remove
(
$existing
->
getId
(
)
)
;
}
class
AdminTest
extends
TestCase
{
public
function
testFromXml
(
)
: void
{
$manifest
= Manifest::
createFromXmlFile
(
__DIR__ . '/../_fixtures/test-manifest.xml'
)
;
static
::
assertNotNull
(
$manifest
->
getAdmin
(
)
)
;
static
::
assertCount
(
2,
$manifest
->
getAdmin
(
)
->
getActionButtons
(
)
)
;
static
::
assertCount
(
2,
$manifest
->
getAdmin
(
)
->
getModules
(
)
)
;
$firstActionButton
=
$manifest
->
getAdmin
(
)
->
getActionButtons
(
)
[
0
]
;
static
::
assertEquals
(
'viewOrder',
$firstActionButton
->
getAction
(
)
)
;
static
::
assertEquals
(
'order',
$firstActionButton
->
getEntity
(
)
)
;
static
::
assertEquals
(
'detail',
$firstActionButton
->
getView
(
)
)
;
static
::
assertEquals
(
'https://swag-test.com/your-order',
$firstActionButton
->
getUrl
(
)
)
;
static
::
assertEquals
(
[
'en-GB' => 'View Order',
'de-DE' => 'Zeige Bestellung',
]
,
$firstActionButton
->
getLabel
(
)
)
;