Modules and themes
Installing a zip, enabling and disabling, what an uninstall removes, and how child themes protect your work.
Modules and themes install the same way: a zip you upload in the panel. There is no build step and nothing to run from a shell.
Installing a module#
Modules > Add takes the zip. The panel then:
- opens it in an isolated temporary directory;
- reads and validates
module.json; - checks the requirements: the core version, the PHP version, the extensions and any modules it depends on;
- moves it into place, runs the install and its migrations;
- publishes its assets;
- clears the caches.
If a requirement is not met the install is refused with the reason. Nothing is half installed.
Warning Installing a module runs third-party PHP with the privileges of your site. There is no sandbox for that in PHP, in Bondry or anywhere else. Install modules you got from us or from an author you trust.
Enabling, disabling and uninstalling#
| Action | What happens to the data |
|---|---|
| Disable | Nothing is touched. The module disappears from the site and from the panel. |
| Enable | It comes back exactly as it was. |
| Uninstall | The module drops its own tables and removes its files. |
A module may only create tables prefixed with mod_<slug>_, and those are the
only ones an uninstall removes. The core is never touched, by design and by
enforcement: the panel refuses to install a package whose migrations reach
outside that prefix.
Child modules#
Some modules extend another module rather than the core: the payment gateways extend Payments, for example. A child appears indented under its parent in the list. Disabling the parent disables the children, and uninstalling a parent is blocked while a child is still installed.
When a module becomes incompatible#
Each module declares the core version it supports. Two states can follow:
- Outdated: the module was tested against an older core. It carries an amber notice and keeps working.
- Incompatible: a requirement is no longer met. The module is disabled automatically at boot and cannot be enabled until it is updated.
A broken or missing module never takes the site down.
Installing a theme#
Appearance > Themes takes the theme zip through the same flow, validating
theme.json instead. Switching themes changes presentation only: no content is
touched.
The customiser#
Appearance > Themes > Customise exposes the controls the theme declares: logo, favicon, site name, colours, radius, fonts, container width and light or dark default. Values are stored in the database and applied as CSS variables, so a change takes effect immediately with nothing to recompile.
Child themes#
This is the part worth understanding before you edit anything.
Editing a theme in advanced mode never modifies the original. Bondry creates (or reuses) a child theme, gives it the original as its parent, carries over your customiser values and applies your changes there. If the parent was active, the child takes over.
The result: updating the parent theme with a new zip never loses your work. If the theme you are editing is already a child, the edits go into it directly.
Removing a theme#
A theme can be uninstalled like a module: its directory, its published assets and its settings go. Two guards apply. You cannot remove a theme that is in the active chain, and you cannot remove a parent while a child of it is installed.