
PageBuilder
Visual section builder for MODX 3: draft and publish without overwriting resource content
- MODX 3
- PHP 8.2
- Vue 3


Version: Free.
One field holds the three parts of a link: label, URL, and where it opens (label, url, target). The URL can keep UTM placeholders. The chunk turns that object into an <a> tag.
URL-only fits url. Multiple buttons use repeater with nested button or text+url.
{
"name": "cta",
"type": "button",
"label": "Button",
"tab": "Content",
"width": 100,
"active": true
}Object { label, url, target }.
Key cta in the section data:
{
"cta": {
"label": "Learn more",
"url": "https://example.com",
"target": "_blank"
}
}<a class="pb-button" href="[[+cta.url]]" target="[[+cta.target]]">[[+cta.label]]</a><a class="pb-button" href="{$cta.url|pb_href|escape}" target="{$cta.target|escape}">{$cta.label|pb_text}</a>For fields with name that are stored in the section data:
| Key | Type | Role | CMP |
|---|---|---|---|
tab | string | Group subtitle in the inspector | yes |
width | 25–100 | Field width as % of the row (flex) | yes |
description | string | Hint under the label | yes |
default | any | Initial value for a new section | yes |
active | bool | false hides the field in the inspector | yes |
required | bool | Required on publish (draft still saves) | yes |
url.See fields overview.