Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Extensions sevenx_multisite activates

The 60 extensions the sevenx_multisite installer writes into ActiveExtensions, in their order and why the order matters, the administration-only access extensions, and how the installer creates the extensions' database…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/site-packages/sevenx-multisite/extensions-it-activates.md

On this page

Extensions sevenx_multisite activates

This page is for administrators and hosts who need to know which extensions a sevenx_multisite install switches on, and for developers who add one. It answers: which extensions are listed, in which order, which ones are only active in the administration, and how their tables are created.

Contents

  1. Where the list lives
  2. The list, in order
  3. Why the order matters
  4. Extensions of the administration only
  5. Extensions the installer checks for
  6. Extension tables

Where the list lives

initSettings() in settings/sevenx-multi-site-installer.php stores the list as the setting extension_list. commonSiteINISettings() writes it to settings/override/site.ini.append.php as [ExtensionSettings] ActiveExtensions. The same list is used during the install itself: preInstall() adds the settings/ folder of each listed extension to the running configuration (activateSiteExtensionSettings()), so their datatypes and INI files are known while the packages are imported.

Warning

The extensions must be present in extension/ of the installation; the package does not bring them. A listed extension that is missing is simply not found at run time.

The list, in order

#ExtensionsNotes from the installer
1xrowmetadatathe metadata datatype many classes use
2-3expui, ezjscoreExponential UI before ezjscore, so its settings (jQuery 4, the admin's script and style lists) win
4expservicesremote services for admin apps and JavaScript front ends; its portal designs get no siteaccess
5expqueuethe job queue (Setup > Job queue); its worker runs with the admin siteaccess from cron
6ezoraclethe Oracle driver, "inert on any other database"
7-9ezoe, ezformtoken, expwtthe online editor, cross site request forgery protection for posted forms, the website sidebar (in place of ezwt, the website toolbar, from the site packages built for 6.0.15)
10-16ezstarrating, ezgmaplocation, ezautosave, ezodf, ezie, ezprestapi, ezpaypal
17-18owsimpleoperator, swarktemplate operators
19-21bcgooglesitemaps, bcwebsitestatistics, bccie
22-24xrowextract, enhancedezbinaryfile, enhancedselection2enhancedselection2 owns the sckenhancedselection datatype of several ng_* classes
25birthdaythe ezbirthday datatype
26-27ezwebin, ezmultiupload
28syndicationcontent syndication between installations
29-30ezupdate, git_manager
31-32eztags, ngclasslist
33-44explayouts, explayouts_core, explayouts_api, explayouts_standard, explayouts_site_api, explayouts_relation_list_query, explayouts_tags_query, explayouts_content_browser_core, explayouts_content_browser, explayouts_content_browser_ui, explayouts_ui, explayouts_ui_apithe layouts family, "the providers ... listed before the UI that consumes them"
45-48expquery_translator, expsite_core, expsite_api, expsite_app
49-51exp_enhanced_link, expchangeclass, ezownerchangeezownerchange changes the owner of an object or a subtree
52cjw_newsletterits classes and tree are imported by a post-install step
53-54recaptcha, hcaptchahcaptcha "needs its keys set"
55sevenx_authentication_2fatwo-factor and social login
56-57powercontent, sevenx_dse
58-59sevenx_themes_media, sevenx_themes_simplethe two themes, kept at the end
60ezurlmultisitelinks to content of the other site point at the siteaccess that serves it

Why the order matters

The comment above the list explains it: "Order matters: later extensions win design and template overrides, so the two themes stay at the end." When a datatype is looked up, "the first match wins", which is why activateSiteExtensionSettings() adds the settings folders in the order the site will load them (eZExtension::extensionOrdering() is applied when [ExtensionSettings] ExtensionOrdering=enabled). For settings, the extension listed first wins: each one's settings folder is put in front of the ones before it (Configuring, section 2).

Tip

To add an extension to the default install, add it to extension_list in the place its settings need, and check whether it has tables (see below). The extension history of the installer shows the pattern: "activates ezownerchange" (2026-10-15), "activates ezurlmultisite with the node ids of the new installation" (2026-10-14). See Changing the installer script.

Extensions of the administration only

Three extensions are deliberately not in extension_list. adminAccessExtensionList() returns expai, exp_adminui and sqliimport, each only when extension/<name> exists, and adminSiteINISettings() writes them as [ExtensionSettings] ActiveAccessExtensions of the admin siteaccess. The editor and adminui siteaccesses are copies of the admin's files and inherit them, except that the setup step makes the editor without sqliimport.

  • expai (Exponential Intelligence) "installs switched off: its own [AISettings] Enabled=false, no provider key is written". Its cron part needs the admin siteaccess.
  • exp_adminui makes Admin UI a choice of the design menu in the admin and editor; "every other siteaccess keeps its own design".
  • sqliimport (imports, with schedules on the expqueue worker) needs expqueue and expui, which are in extension_list. Its 13 tables come from extensionSchemas(), its Imports tab sits between Export and CIE in the admin's tab list, and only the Administrator role has its policies. Its schedules run from cron every minute with the admin siteaccess: php runcronjobs.php -q -s <admin> expqueue and php runcronjobs.php -q -s <admin> sqliimport.

Extensions the installer checks for

ExtensionWhat the installer does when it is present
sevenx_authentication_2faadds the "Two-step sign-in" field to the user class, writes sevenxauthentication2fa.ini (Enforce2FA=enabled with EnforcedGroups[] Administrator users and Editors, so their members set up a second step at their first sign-in while every other account chooses for itself; DefaultMethod=totp, RecoveryCodes=10, no exemptions, no grace period, a SecretKey made for this installation), sets LoginHandler sevenxUser2fa then standard, and gives user2fa/setup and user2fa/verify to Member, Editor and Partner
cjw_newsletterimports its content classes into the class group "Newsletter", creates the newsletter tree and sets its root folder setting
exp_adminuicreates the adminui siteaccess
ezurlmultisitewrites settings/override/ezurlmultisite.ini.append.php (see What you have after installing)
explayoutsimports the default admin layouts from share/fragments/admin_layouts_db_data.dba

Extension tables

extensionSchemas() decides which extensions get their tables during preInstall():

  1. The extensions named by hand in declaredExtensionSchemas(), in this order: sevenx_themes_media (schema and data), ezstarrating, ezgmaplocation, eztags, explayouts (schema and data), enhancedselection2, cjw_newsletter, syndication.
  2. Every other extension of extension_list, and expai and exp_adminui, that ships a share/db_schema.dba or a sql/<engine>/schema.sql (schema only).

dropExtensionTables() first drops every table those schemas declare, because a reinstall's database "remove" drops only tables named ez* and "the others kept the previous site's rows". insertDBFile() then creates each schema through eZDbSchema, skipping tables an earlier schema of the same run already created, and falls back to sql/<engine>/ files on a database without an eZDbSchema handler. createMissingSchemaTables() creates any table the schema insert left out. What this means for the layout data is on Layouts data and the share .dba files.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x