Blog Sections Open
Updating site_content_closure When Moving Resources in the Evolution CMS Tree
A practical note for Evolution CMS 3 projects that rely on closure tables and need resource moves in the manager tree to stay structurally consistent.
Closure-table based content trees are powerful, but they introduce one extra responsibility: when a resource moves, the ancestor map has to move with it. The donor topic focused on exactly that problem in Evolution CMS 3, where dragging a resource in the manager tree could leave site_content_closure out of sync if the update logic was incomplete.
This is the kind of bug that does not always break the page immediately. Instead, it shows up later in tree queries, descendant lookups, or custom logic that depends on the closure table being trustworthy.
Why it matters
- Parent-child hierarchy queries become unreliable if the closure table is stale.
- Managers may see one structure in the UI while custom code reads another.
- Bulk moves or drag-and-drop operations can silently accumulate bad ancestry data.
If your project depends on closure-table queries, tree moves should be treated as a data integrity event, not only as a visual reordering action. That is the key architectural lesson behind this donor.
Duplicating Selected Rows in DocLister with prepare and Extenders
How to duplicate or enrich selected DocLister rows cleanly with prepare logic or extenders in Evolution CMS.
Passing Display-Only Values into FormLister Emails with formControls
How to include values like prices or calculated fields in FormLister email reports even when they are not standard user inputs.