Skip to the content
Documentation

Exponential extensions

No ratings yet

An extension adds features to Exponential without changing the kernel: settings, templates and designs, modules and views, content datatypes, workflow events, template operators, cronjobs and commands. Because your changes live in the extension and not in kernel files, they survive kernel upgrades, and you can switch them on and off per installation or per siteaccess. This page is the overview for Exponential 6. The full list of shipped extensions, with their versions, licenses and support options, is on List of Exponential extensions and their support options.

Extensions are Composer packages

Each extension is a folder below extension/ (site.ini [ExtensionSettings] ExtensionDirectory, default extension). The extensions maintained for Exponential 6 are Composer packages named se7enxweb/<name>, of the type ezpublish-legacy-extension, which Composer installs into extension/<name>:

composer require se7enxweb/<name>

You can also copy or clone an extension folder into extension/ by hand, or import an .ezpkg package with php ezpm.php import. See Install one in the extensions guide.

Switch it on

An extension does nothing until it is active:

  • In the administration: Setup > Extensions (/setup/extensions) lists every extension on disk. Click Activate on its card, then Review changes and Apply changes. See The Extensions page.
  • In the settings: add ActiveExtensions[]=<name> to [ExtensionSettings] in settings/override/site.ini.append.php for the whole installation, or ActiveAccessExtensions[]=<name> in a siteaccess's site.ini.append.php for that siteaccess only. The order of the list is the loading order: an extension loaded earlier wins for settings and templates.

Then regenerate the autoload array for the extension's classes and clear the caches:

php bin/php/ezpgenerateautoloads.php -e
php bin/php/ezcache.php --clear-all

Many extensions also need a database table, a content class or a cronjob. Their own installation notes say so.

What is inside an extension

  • extension.xml and ezinfo.php: name, version, license, website and dependencies, shown on Setup > Extensions and the about page (Extension metadata);
  • settings/: the extension's .ini.append.php defaults. Do not edit them; override them in settings/override/ or a siteaccess;
  • design/: templates, stylesheets, JavaScript and images;
  • modules/: modules and their views;
  • classes/: PHP classes, found through the autoload array;
  • translations/<locale>/translation.ts: interface translations, loaded when the extension is listed in site.ini [RegionalSettings] TranslationExtensions[];
  • README.md, INSTALL.md and doc/: the documentation in Markdown.

The help center of every installation shows the documentation of each active extension under Extensions, without any setup. See Documenting an extension.

Where to find extensions

Write your own

The extensions guide builds a small working extension in a few minutes and shows how to configure and release it. The book Extension development goes further: modules, operators, datatypes, workflow events, cronjobs, themes, upgrading and releasing. For existing extensions, see Upgrade steps for extensions.

Licenses

Each extension states its own license in its LICENSE file, extension.xml and ezinfo.php. Many are GNU GPL v2 (or any later version), but check each extension before you use or distribute it. Setup > Extensions shows the license on each card.

The pages below this one

Historical. The manuals below this page were carried over from the earlier documentation, from the time eZ Systems maintained these extensions. They may not match the versions shipped today. For an extension that still ships, its own documentation in the help center is current.

In this section

Contributors

Comments

Add a comment

Comments are read by a moderator before they appear.