Skip to content

Page Builder

The CMS includes a visual builder based on VvvebJS. It stores reusable sections and blocks and saves page HTML into dictionary fields.

UI and Assets - Builder UI view: resources/views/minto/builder/main/index-v2.blade.php. - Core builder assets: resources/assets/pagebuilder/ and resources/assets/vendor/vvvebjs/.

Builder Routes - /builder UI and content endpoints are in routes/web/backend/builder.php and BuilderController. - Builder asset management routes are under /assets/builder/sections in routes/web/backend/assets.php.

Storage Model - Builder Sections: builder_sections table, model App\Models\BuilderSections. - Reusable Blocks: content_blocks table, model App\Models\ContentBlocks. - Page HTML: dictionary keys like mgpage_content, ppage_content, location_description*. - Versions: content_version table via App\Models\ContentVersions.

Observed Save Flow 1. Builder UI loads existing HTML from a content endpoint (e.g., MaingroupPagesController::content). 1. Builder posts HTML (base64) to a saveContent endpoint. 1. The controller extracts HTML body and saves into dictionary (Util::saveDictionary). 1. A new ContentVersions record is stored.

Partially Implemented - BuilderController::getReusable() is empty, so retrieval of reusable blocks appears incomplete. - Some builder assets reference server-side components that are not implemented in PHP (resources/assets/vendor/vvvebjs/editor.php).