Building packages
Agent Skills for Concrete CMS
npx -y skills add MacareuxDigital/concretecms-skills --skill building-packagesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create and manage Concrete CMS packages. Use this skill when the user asks to create a custom package or manage existing packages.
SKILL.md
2.3 KB, as published. Nobody here has run it
Building Packages
Concrete CMS packages are modular components that extend the functionality of the platform. This skill is essential for developers who want to create custom functionality or integrate third-party services into their Concrete CMS projects.
Basic Workflow for Package Development
Follow these steps to develop a custom package in Concrete CMS:
- Initialize the Package Directory:
Create a new directory under
packages/with a lowercase, underscore-separated name (e.g.,packages/my_custom_package). - Create the Package Controller:
Create a
controller.phpfile in the package root. Define the package handle, version, and basic information. - Implement Installation Logic:
In the
install()method of your controller, add code to register block types, themes, single pages, or other entities. - Add Custom Functionality:
- Extend Core Classes: Extending Core Classes Reference
- Custom Block Types: Use the
building-blocktypesskill. - Single Pages: Use the
building-singlepagesskill. - Routes and Services: Routing and Service Providers Reference
- Install the Package:
Use the Concrete CMS Dashboard or CLI (
concrete/bin/concrete c5:package:install my_custom_package) to install your package. - Update and Refine:
When making changes to the package structure (like adding a new block type), update the
$pkgVersionincontroller.php, implement theupgrade()method, and run the update from the Dashboard or CLI (concrete/bin/concrete c5:package:update my_custom_package).