Download Latest Version Exponential 6.0.14 source code.zip (29.3 MB)
Email in envelope

Get an email when there's a new version of Exponential 6 Content Management System

Home / v6.0.14
Name Modified Size InfoDownloads / Week
Parent folder
Exponential 6.0.14 source code.tar.gz 2026-06-07 23.4 MB
Exponential 6.0.14 source code.zip 2026-06-07 29.3 MB
Exponential CMS 6.0.14 source code.tar.gz 2026-06-07 23.4 MB
Exponential CMS 6.0.14 source code.zip 2026-06-07 29.3 MB
README.md 2026-06-07 4.8 kB
Totals: 5 Items   105.4 MB 0

Overview

6.0.14 is a significant feature and bugfix release. The headline addition is full MongoDB 8 database adapter support, enabling the entire CMS kernel to run against MongoDB in place of MySQL/MariaDB/SQLite/PostgreSQL. Alongside this, a broad sweep of cross-database compatibility fixes was performed — including hardening the setup wizard for shared-hosting MySQL deployments.


New Features

MongoDB 8 Database Adapter

A complete new database backend (lib/ezdb/classes/expmongodb.php) implementing eZDBInterface for MongoDB 8.x via the mongodb/mongodb PHP library:

  • Returns 'mongo' from databaseName() — used as the branch sentinel throughout the kernel
  • Provides aggregate(), insert(), upsert(), mongoUpdateOne(), mongoUpdateMany(), mongoDeleteOne(), deleteWhere()
  • Reads connection parameters from the standard [DatabaseSettings] block in site.ini — no separate config file needed

Schema handler (lib/ezdbschema/classes/expmongoschema.php): no-op for all SQL DDL since MongoDB is schema-free.

Setup wizard integration:

  • ezstep_database_choice.php — adds MongoDB as a selectable type; validates PHP extension and Composer package availability
  • ezstep_create_sites.php — skips MySQL-specific post-install steps for MongoDB
  • ezstep_installer.php — routes schema install to expMongoSchema
  • New info template: design/standard/templates/setup/db/mongodb_info.tpl

Migration tooling (bin/mongodb/):

Script Purpose
export_mysql.sh Dump each eZ table to NDJSON
mysql2ndjson.py Normalise MySQL NULL/int/bool types
fixup_ndjson.py Second-pass edge-case fixer
validate_ndjson.sh Validate NDJSON before import
import_all.sh Drive mongoimport (idempotent)
create_indexes.js Create all indexes needed by kernel aggregate pipelines

Full design and compatibility doc: doc/bc/6.0/MONGODB_KERNEL_SUPPORT_EXPANSION.md (~4,800 lines covering architecture, per-subsystem porting, datatype matrix, and known limitations).


Bug Fixes

Setup Wizard: Shared-Hosting MySQL (No Root Required)

  • ezstep_installer.php: copy explicit dbname into $dbParameters['database'] so the connection targets the application database directly — no system-level grants needed.
  • ezstep_site_details.php: removed legacy $dbName = 'mysql' hardcode (which required SHOW DATABASES privilege). When dbname is provided, connect directly and pre-populate the dropdown.
  • ezurlaliasml.php storePath(): wrapped MongoDB-specific block in databaseName() === 'mongo' guard — previously every storePath() call on MySQL/SQLite/PostgreSQL crashed with "Call to undefined method eZMySQLiDB::aggregate()".

Setup Wizard: PostgreSQL Re-run on Existing Database

  • ezpgsqlschema.php: CREATE SEQUENCE/TABLEIF NOT EXISTS
  • ezdbschemainterface.php insertSchema(): skip schema creation and data insertion for tables that already exist
  • ezpostgresqldb.php correctSequenceValues(): replaced deprecated pg_attrdef.adsrc (removed in PG 12) with pg_get_expr(pg_attrdef.adbin, pg_attrdef.adrelid)

Admin Templates / JS

  • browse.tpl: removed {if is_string(...)} guard that suppressed integer PersistentData values — fixing the Copy content action.
  • Node full view template: initialise js_class_languages as '[]' not empty string — prevents JS parse error in ClassMenu onclick handler.
  • node_tabs.js: replaced deprecated jQuery .size() with .length (removed in jQuery 3.x) — restores tab selection and cookie-based tab restore.

Chores / Maintenance

  • Copyright year bumped 2025 → 2026
  • Standard design logo updated to Exponential PNG
  • Default new-installation package version moved from 6.0.10 → 6.0.14
  • autoload/ezp_kernel.php: expMongoDB and expMongoSchema moved to correct alphabetical position
  • share/filelist.md5 regenerated; generatefilelist.sh gained --include=<key> option and fixed an --include= parsing bug

Upgrade Note

  • MySQL shared hosting: setup wizard no longer requires SHOW DATABASES or root access.
  • MongoDB: new installations can select MongoDB 8 from the setup wizard. Existing MySQL installs can migrate via bin/mongodb/. See known limitations in doc/bc/6.0/MONGODB_KERNEL_SUPPORT_EXPANSION.md §26.
  • jQuery: any custom code using .size() should be updated to .length.

Download Exponential 6 (CMS; Stable)

Source: README.md, updated 2026-06-07