Skip to content
  1. Extras
  2. PageBuilder
  3. Field types
  4. Pro
  5. embeddedTable

Field embeddedTable ​

Version: Pro.

Why this type ​

The site loads rows with the PageBuilderTableRows snippet. The section stores settings, not the rows themselves: table key, limit, filters, context, and UTM. Use it when there are too many rows to edit in the inspector.

When to use ​

  • Products grid from Collections table
  • Any registered table_key
  • When rows are too many for field table

Tips ​

Chunk [[!PageBuilderTableRows? &table_key=...]]. Static 5–10 rows stay in table.

Similar types ​

  • table for inline section rows
  • combo when you only need one id from table

Schema ​

json
{
  "name": "table",
  "type": "embeddedTable",
  "label": "Table",
  "table_key": "products",
  "tab": "Content",
  "width": 100,
  "active": true
}

Value ​

Object { table_key, limit, filters, … }.

Section data ​

Key table in the section data: query config (table rows are not stored in data):

json
{
  "table": {
    "table_key": "products",
    "limit": 10,
    "filters": {
      "category": "phones"
    },
    "use_context": true,
    "context_column": "context_key",
    "use_utm": false,
    "utm": {}
  }
}
  • Rows on the frontend: PageBuilderTableRows snippet with the same table_key.

Chunk example ​

modx
[[!PageBuilderTableRows? &table_key=`products` &limit=`10`]]
fenom
{'!PageBuilderTableRows' | snippet : [
  'table_key' => 'products',
  'limit' => 10,
]}

Common properties ​

For fields with name that are stored in the section data:

KeyTypeRoleCMP
tabstringGroup subtitle in the inspectoryes
width25–100Field width as % of the row (flex)yes
descriptionstringHint under the labelyes
defaultanyInitial value for a new sectionyes
activeboolfalse hides the field in the inspectoryes
requiredboolRequired on publish (draft still saves)yes
  • Also: table_key, limit, filters, use_context, utm.

See fields overview.

See also ​