Biblioteca de queriesReemplazar los elementos de texto en una página de Bricks con contenido inyectado
Reemplazar los elementos de texto en una página de Bricks con contenido inyectado
Esta consulta reemplaza los elementos text en una página de Bricks con datos inyectados mediante variables.
Esta consulta requiere que la extensión Bricks esté habilitada.
La consulta requiere las siguientes variables:
$customPostId: El ID del post personalizado de Bricks a actualizar$descriptions: Un array de cadenas con las que reemplazar los elementostext
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
}
}
}
}