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).