ไลบรารี Queriesแทนที่ text element ในหน้า Bricks ด้วยเนื้อหาที่ฉีดเข้าไป
แทนที่ text element ในหน้า Bricks ด้วยเนื้อหาที่ฉีดเข้าไป
query นี้จะแทนที่ element text ในหน้า Bricks ด้วยข้อมูลที่ฉีดเข้าไปผ่านตัวแปร
query นี้จำเป็นต้องเปิดใช้งาน Bricks extension
query นี้จำเป็นต้องใช้ตัวแปรต่อไปนี้:
$customPostId: ID ของ Bricks custom post ที่จะอัปเดต$descriptions: อาเรย์ของสตริงที่จะใช้แทนที่ elementtext
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
}
}
}
}