Installation
php bin/atoll plugin:install /path/to/plugin --enablephp bin/atoll plugin:install:registry i18n --enablephp bin/atoll plugin:install:registry tables --enablephp bin/atoll plugin:install:registry visual-editor --enablephp bin/atoll plugin:install:registry booking-pro --enable --license=YOUR_KEYphp bin/atoll plugin:list
Official Tier-2 Plugins (current state)
i18nanalyticsforms-proshopmembersnewsletterbooking-protables(sort, filter, pagination as island; CSV parse helper atPOST /tables/parse-csv)visual-editor(Markdown <-> Block conversion with dedicated admin page at/admin/visual-editor)
Marketplace (commercial)
The plugin marketplace is based on content/data/plugin-registry.json.
Each entry can set price_eur, seller, requires_license and checkout_url.
License keys are stored in content/data/licenses.yaml.
Structure
A plugin requires a plugin.php with metadata, hooks, optional routes and islands.
Route Registration Hook
In addition to manifest routes ('routes' => [...]), plugins can now register routes dynamically via hook:
return [ 'name' => 'Example', 'hooks' => [ 'route:register' => static function (): array { return [ '/my-endpoint' => static fn () => ['ok' => true], ]; }, ],
];
Supported return shapes:
- associative map (
'/path' => handler) - list of route maps
['path' => '/path', 'handler' => callable]