MIGX Setup for Complex Content in MODX
Picture this: a client asks to add a 'Our Projects' block to a landing page, with a logo, title, description, tech stack, and a link. Without MIGX, you'd create 5–6 separate TV parameters or store everything in one JSON field and then write a complex parser. Standard MODX TV parameters don't allow repeatable field groups — you have to duplicate TVs or use workarounds. The editor finds it inconvenient, the developer suffers. MIGX solves this in 15 minutes.
MIGX (Multi-Items Grid for MODX) is an Extra for creating repeatable field groups within a single TV parameter. It's analogous to Paragraphs in Drupal or repeaters in ACF/WordPress. The editor can add unlimited blocks of any structure: slides, advantages, steps, galleries, price lists. We set up MIGX turnkey — you get ready configurations and output templates. Over 5 years, we've set up MIGX on more than 50 projects—from landing pages to catalogs. Contact us for a consultation.
Problems We Solve
Standard MODX TV parameters are inadequate for structured repeated content. Common issues:
- TV proliferation: each field needs its own TV, leading to dozens of variables for a single block.
- Poor editor experience: adding new items requires cloning TVs or editing raw JSON.
- No sorting or validation out of the box: developers must implement custom solutions.
MIGX eliminates these problems by providing a single JSON-based TV with a grid interface for adding, editing, sorting, and deleting items.
How We Do It (Expertise Proof)
We use MIGX extensively. Our typical stack: MODX 2.x/3.x, MIGX 2.x, getImageList snippet, pdoTools for advanced cases. We design the data structure first, then create a MIGX configuration as a JSON object.
Example: Slider Configuration
{ "formtabs": [ { "caption": "Slide", "fields": [ { "field": "image", "caption": "Image", "inputTV": "migx_image", "inputTVtype": "image" }, { "field": "title", "caption": "Title", "inputTVtype": "text" }, { "field": "subtitle", "caption": "Subtitle", "inputTVtype": "textarea" }, { "field": "link", "caption": "Button Link", "inputTVtype": "url" }, { "field": "btn_text", "caption": "Button Text", "inputTVtype": "text", "default": "Learn More" } ] } ], "columns": [ { "header": "Image", "dataIndex": "image", "renderer": "this.renderImage", "width": 80 }, { "header": "Title", "dataIndex": "title" } ], "actionbuttons": "add,edit,remove,moveup,movedown", "window_title": "Slide" } We then attach this configuration to a TV parameter (input type migxdb or migx). Output is handled by the getImageList snippet:
[[!getImageList? &tvname=`hero_slider` &docid=`[[*id]]` &tpl=`@INLINE <div class="slide" style="background-image:url([[+image]])"> <h2>[[+title]]</h2> <p>[[+subtitle]]</p> <a href="[[+link]]" class="btn">[[+btn_text]]</a> </div> ` ]] Alternative methods include migxLoopCollection or pdoTools with pdoField, but getImageList is simpler and faster for most cases.
Comparison of Output Methods
| Method | Speed | Flexibility | Complexity |
|---|---|---|---|
| getImageList | High | Medium | Low |
| migxLoopCollection | Medium | High | Medium |
| pdoTools + pdoField | Medium | High | Medium |
In a recent project, we replaced 12 separate TV parameters with a single MIGX TV for a team member block, reducing template complexity and editor error.
Process and Estimation
We don't offer fixed pricing — each project is unique. Our process:
- Data collection: understand the content types and editor needs.
- Audit/analysis: review existing templates and suggest optimal structure.
- Design: create MIGX configurations and output templates.
- Estimation: provide a timeline and budget based on complexity.
- Development: implement configurations, attach TVs, write snippets.
- Testing: verify data integrity and output.
- Launch: deploy and provide documentation.
Timeframes
Setting up a MIGX configuration for 3–5 block types typically takes 1–2 days. Complex nested structures or extensive custom rendering may extend this.
Common Mistake: Forgetting docid
Typical error: forgetting to specify docid
If you omit &docid or provide an incorrect ID, getImageList returns an empty result. Always verify the document ID, especially when calling the snippet on a different resource's page.Comparison: MIGX vs Standard TV Lists
| Parameter | Standard TV Lists | MIGX |
|---|---|---|
| Number of TVs | Many (N*fields) | 1 TV |
| Repeat support | No | Yes, unlimited |
| Nested structures | No (only strings) | Yes (JSON) |
| Item sorting | Requires custom work | Built-in drag-and-drop |
| Field validation | Only data type | Configurable |
MIGX reduces development time by 30–40% according to official MODX documentation.
What's Included in Turnkey MIGX Setup
We don't just install the Extra — we design the data structure, create configurations, attach TVs, write output templates, and optimize performance. You get:
- Up to 5 types of repeatable blocks (slider, advantages, team, price list, testimonials);
- Output templates with responsive layout;
- Documentation for editors;
- Consultation on content population.
Contact Us
To get a ready solution, contact us — we'll assess your project and offer a turnkey MIGX setup. Order MIGX setup now and accelerate development by 30%.







