Queries-BibliothekDie Textelemente einer Bricks-Seite durch injizierten Inhalt ersetzen
Die Textelemente einer Bricks-Seite durch injizierten Inhalt ersetzen
Diese query ersetzt die text-Elemente einer Bricks-Seite durch Daten, die über Variablen injiziert werden.
Diese query setzt voraus, dass die Bricks-Erweiterung aktiviert ist.
Die query benötigt folgende Variablen:
$customPostId: Die ID des benutzerdefinierten Bricks-Beitrags, der aktualisiert werden soll$descriptions: Ein Array von Strings, durch die dietext-Elemente ersetzt werden
query InitializeGlobalVariables
@configureWarningsOnExportingDuplicateVariable(enabled: false)
{
emptyArray: _echo(value: [])
@export(as: "elementToUpdateIDs")
}
query ExportData($customPostId: ID!)
@depends(on: "InitializeGlobalVariables")
{
customPost(by:{ id: $customPostId }, status: any) {
id
title
bricksData(filterBy: { include: ["text"] })
@underEachArrayItem
@underJSONObjectProperty(by: { key: "id" })
@export(as: "elementToUpdateIDs")
}
}
query ProcessData($descriptions: [String!]!)
@depends(on: "ExportData")
{ # Make sure the number of descriptions is the same as the number of elements to update
numberOfDescriptions: _arrayLength(array: $elementToUpdateIDs)
descriptions: _arrayPad(array: $descriptions, length: $__numberOfDescriptions, value: "")
@export(as: "adaptedDescriptions")
}
query AdaptData
@depends(on: "ProcessData")
{
elementToUpdateIDs: _echo(value: $elementToUpdateIDs)
elementToUpdateTexts: _echo(value: $adaptedDescriptions)
elementToUpdateMergeInputElements: _echo(value: $elementToUpdateIDs)
@underEachArrayItem(
passIndexOnwardsAs: "index",
passValueOnwardsAs: "elementToUpdateID"
affectDirectivesUnderPos: [1, 2]
)
@applyField(
name: "_arrayItem",
arguments: {
array: $adaptedDescriptions,
position: $index
},
passOnwardsAs: "elementToUpdateText"
)
@applyField(
name: "_echo",
arguments: {
value: {
id: $elementToUpdateID,
settings: {
text: $elementToUpdateText
}
}
}
setResultInResponse: true
)
@export(as: "elementToUpdateMergeInputElements")
}
mutation UpdateData($customPostId: ID!)
@depends(on: "AdaptData")
{
bricksMergeCustomPostElementDataItem(input: {
customPostID: $customPostId
elements: $elementToUpdateMergeInputElements
}) {
status
errors {
__typename
...on ErrorPayload {
message
@passOnwards(as: "message")
@fail(
message: $message
condition: ALWAYS
)
}
}
customPost {
__typename
...on CustomPost {
id
bricksData
}
}
}
}