Download the PHP package melazhari/sulu-builder-bundle without Composer
On this page you can find all versions of the php package melazhari/sulu-builder-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package sulu-builder-bundle
SuluBuilderBundle
A production-ready Sulu CMS bundle that adds a "Sulu Builder" top-level item to the Sulu Administration navigation. It lists the XML templates of your project (pages, snippets, … — configurable) and lets you create, edit, import and save them with the embedded builderxml visual builder (drag-and-drop designer with XML generate/import), backed by a JSON admin API with well-formed-XML validation on save.
- Compatible with Sulu 2.4 – 2.6, PHP >= 7.2, Symfony 5.4 / 6.x
- PSR-4 / PSR-12 compliant
- Uses only the Sulu Admin React ecosystem (no extra UI framework)
- Permissions integrated with Sulu's security contexts (Settings → User roles)
1. Bundle structure — where each file belongs
(tests/bridge-test.html is a standalone browser test of the postMessage bridge —
open it over HTTP and it prints PASS/FAIL lines.)
How the pieces connect:
BuilderAdmin::configureViews()registers the admin route/builderwith the view typesulu_builder.builder.Resources/js/index.jsregisters the React component under that same key in theviewRegistry— this is how Sulu knows which component to render.BuilderAdmin::configureNavigationItems()adds the navigation entry pointing at the view.BuilderAdmin::getConfig()generates the API URLs from the named routes and hands them to the frontend at boot time (initializer.addUpdateConfigHookinResources/js/index.js) — so the admin prefix (/adminby default) is dynamic, never hard-coded in JavaScript.- The React views call the templates endpoint, handled by
TemplateController→TemplateXmlManager. - The editor view embeds
Resources/public/builder/index.html(the builderxml app) in an iframe;suluBridge.jsinside the app answerssulu-builder:load/sulu-builder:new/sulu-builder:request-xmlpostMessages, so the same visual builder is used to create, edit and import templates, and Save round-trips through the admin API.
2. Installation
Full step-by-step instructions (composer, bundle registration, routing, frontend build, permissions, troubleshooting) live in INSTALL.md.
Most of the configuration can be done automatically — after composer require, run:
It registers the bundle, auto-detects the admin prefix, creates the routing/config
files and adds a relative import of the frontend sources to the admin entry point
(no npm linking — use --npm if you prefer a file: dependency). Only
npm run build, cache:clear and the permission grant remain manual.
The admin URL prefix is dynamic: the API routes take whatever prefix you choose
when importing Resources/config/routing_api.yml (default /admin/api), and the
React view receives the resulting URLs at runtime via BuilderAdmin::getConfig().
Projects mounting the Administration on a custom path only adjust the routing prefix.
3. Permissions
The bundle registers the security context sulu.builder.templates under the
"Sulu Builder" group. After installation, go to
Settings → User roles in the Administration and grant View (and Edit if you
want saving) to the relevant roles. The navigation item is hidden for users without
the View permission.
4. API
URLs below assume the default /admin/api prefix — they follow whatever prefix your
project uses for the routing import.
| Method | URL | Description |
|---|---|---|
| GET | /admin/api/builder/templates |
List all templates of all configured types |
| GET | /admin/api/builder/templates/{type}/{key} |
Get the raw XML content of one template |
| PUT | /admin/api/builder/templates/{type}/{key} |
Save content: {"content": "<template>…"} — validates well-formed XML |
5. Extending
- New template types: add a directory to
sulu_builder.template_directories. - New views: add a
createViewBuilder()call inBuilderAdmin::configureViews()and register the matching React component inResources/js/index.js— the list ("/builder") and editor ("/builder/:type/:key") views show the pattern. - Visual builder: the XML editor in
BuilderEdit.jsis a plain (dependency-free) code textarea; it can be swapped for a richer editor or a drag-and-drop builder — the load/save API and the view wiring stay the same.
Theming & responsiveness
The view reuses Sulu Admin components (Table, Breadcrumb, Loader, toolbar via
withToolbar), so typography, colors, icons and spacing are inherited from the Sulu
admin theme. Sulu ≤ 2.6 ships a single (light) theme; because no colors are hard-coded
in the components used, a future Sulu dark theme will apply automatically. The layout
is fluid and adds reduced padding below 700px.
All versions of sulu-builder-bundle with dependencies
sulu/sulu Version ^2.4
symfony/config Version ^5.4 || ^6.0
symfony/dependency-injection Version ^5.4 || ^6.0
symfony/http-foundation Version ^5.4 || ^6.0
symfony/http-kernel Version ^5.4 || ^6.0