parasek / block_builder
Design, configure and build custom Concrete CMS blocks with a user‑friendly interface.
Package info
github.com/parasek/concretecms-block-builder
Type:concretecms-package
pkg:composer/parasek/block_builder
Requires
- php: >=7.3
- concrete5/core: ^9.2.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Design, configure, and generate custom Concrete CMS blocks through a user-friendly Dashboard interface or with the help of an AI coding agent.
Block Builder creates the files and field-handling code required by a working block. You can then customize the generated templates, styles, and behavior for your project.
Features
- Generate complete Concrete CMS blocks through an intuitive Dashboard interface.
- Create and rebuild blocks with AI coding assistants using console commands and the included agent instructions.
- Use fields as standalone block fields or as part of a repeatable set.
- Load an existing Block Builder configuration as the starting point for a new block.
- Rebuild existing blocks when their configuration changes.
Available field types
- Text
- Number
- Textarea
- WYSIWYG Editor
- HTML Editor
- Single Choice
- Multiple Choice
- Flex Link
- Link from Sitemap
- Link from File Manager
- External Link
- Image
- Express
- File Set
- Files from Folder
- Date Picker
- Color Picker
- Icon Picker
- SVG Icon Picker
- User Selector
All field types can be used as standalone fields or in repeatable entries.
Console generation and rebuilding
With the package installed, run from the project root (containing public). Add --validate-only to either command to check the configuration without changing files or the database.
Generate a new block
php public/concrete/bin/concrete block-builder:generate /path/to/config.json --no-interaction
Creates application/blocks/<blockHandle> from a Block Builder JSON configuration. Set installBlock: true to also install it. Existing blocks are never overwritten.
Rebuild an existing block
php public/concrete/bin/concrete block-builder:rebuild example_block --no-interaction
Regenerates an installed Block Builder block from its config-bb.json and refreshes its database schema. Use it after configuration changes or a Block Builder/Concrete CMS upgrade.
Save customized views, templates, and styles outside the block directory before rebuilding, then restore or adapt them afterward. Check existing data before changing field types: --validate-only does not verify data compatibility.
AI agents should follow SKILL.md for configuration, generation, and rebuilding workflows.
Requirements
| Block Builder version | Concrete CMS version | PHP version |
|---|---|---|
| 3.0.0 or later | 9.5.2 or later | 8.4 or later |
| 2.5.0–2.8.1 (EOL) | 9.2.0 or later | 7.2–8.4 |
| 2.2.0–2.4.0 (EOL) | 9.1.x | 7.2–8.4 |
| 2.0.0–2.1.2 (EOL) | 9.0.x | 7.2–7.4 |
| 1.0.3–1.4.0 (EOL) | 8.2.1 or later | 5.5–7.4 |
| 1.2.1-legacy (EOL) | 5.7.5 or later | 5.3–7.1 |
Installation
Block Builder is available from the Concrete CMS Marketplace.
To install the latest version with Composer, run:
composer require parasek/block_builder
After adding the package, install Block Builder from the Concrete CMS Dashboard if it has not already been installed.
Security
Block Builder can place custom PHP code in generated block controllers. Grant access to its Dashboard pages and the install_packages permission only to fully trusted administrators who are authorized to execute server-side code.
Support the project
If Block Builder is useful to you, you can support its development by:
- starring the GitHub repository;
- leaving a five-star rating on the Concrete CMS Marketplace;
- reporting issues or suggesting improvements through GitHub Issues;
- sending feedback through the contact form.
Project links
Tests
See the testing documentation for PHPUnit commands, coverage information, and the release smoke-test checklist.