| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| Exponential Basic 2.4.0.3 source code.tar.gz | < 16 hours ago | 11.8 MB | |
| Exponential Basic 2.4.0.3 source code.zip | < 16 hours ago | 17.5 MB | |
| README.md | < 16 hours ago | 12.3 kB | |
| Totals: 3 Items | 29.3 MB | 0 | |
Exponential Basic 2.4.0.3 Release Notes
Release date: 2026-08-18
Exponential Basic 2.4.0.3 is a feature and stability release that completes the extension-module API, ships a working sample extension with database storage, and hardens the admin interface and core modules for PHP 8.1 - 8.3.
Highlights
- Extension modules now work end-to-end: active extensions can supply
modules/<module>/{user,admin}/views, per-viewintl/translations,module.info, admin menuboxes and module icons. eZExtensionhelper class: a stable PHP API for discovering module files, menus, icons and translation directories without hard-codedextension/orkernel/ezpaths.create_extension.phpskeleton generator: generates the new module layout,module.info,menubox.php,datasupplier.phpandintl/files.helloworldsample with eZDB storage: a complete CRUD-style admin list and public read-back using a minimaleZDB::globalDatabase()storage class.- Admin UI refresh: the white admin design uses CSS borders instead of GIF tiles, with improved desktop spacing and mobile responsiveness.
- Core module hardening: eZArticle, eZStats, eZTrade, eZCompany, eZImage, eZFile, eZNewsfeed and more load cleanly and handle forms on PHP 8.
Extension system
Module discovery and routing
- Added
eZExtension::moduleFile()so the front controller resolves extension moduledatasupplier.phpfiles before falling back tokernel/ez<module>/. - Added
eZExtension::moduleMenuFile()to discoveradmin/menubox.phpfiles in active extensions. - Added
eZExtension::moduleBaseDir()to return a module's filesystem base directory for template and intl loading. - Added
eZExtension::moduleIcon()to return a public URL for a module icon, preferring.png, then.gif, then a generic design fallback. - Added
eZExtension::moduleName()andeZExtension::moduleUrlName()for display names and URL-safe identifiers. - Added
eZExtension::availableAdminModules()andeZExtension::availableModules()to enumerate active extension modules. - Added
eZExtension::moduleInfoFile()and admin menu/link support fromextension/<ext>/modules/<module>/module.info.
Design and translation
- Added
eZDesigndesign resolver so extensions can override design resources (templates, images, stylesheets) viaextension/<ext>/design/<design>/. - Updated
eZTemplateandeZDesignto resolve extension design templates and honor the active section design. - Added
eZTemplatetranslation override merging from active extension modules. - Translation files are now searched under both legacy
extension/<ext>/translations/and the newextension/<ext>/modules/<module>/{admin,user}/intl/<language>/<phpFile>.inipaths. - Updated
create_extension.phpto generate the newmodules/<module>/{admin,user}/intl/layout,module.info,admin/menubox.php, admin and userdatasupplier.phpskeletons, anddesign/standard/templates/<module>/.
Hello World sample
- Added the
extension/helloworld/sample extension withmodule.info, admin and user views, a menubox and per-viewintl/files. - Renamed the helloworld translation catalogues to
modules/helloworld/{admin,user}/intl/<language>/<phpFile>.ini. - Updated translation
intlpaths to useeZExtension::baseDirectory()instead of hard-codedextension/. - Added
eZHelloWorldItemstorage class:createTable(),create(),fetch(),fetchList(),fetchBySearch(),store(),removeById()andcreatedDate(). - The storage class uses
eZDB::globalDatabase()directly (eZ Publish 2 style) witharray_query()andescapeString(), so it works with the current SQLite/MySQL layer. - Updated the user
datasupplier.phpto list the latest stored messages from the database. - Updated the admin
datasupplier.phpto renderadminlist.tplwith a searchable, deletable, addable message list styled like the core article archive. - Added
extension/helloworld/design/standard/templates/helloworld/adminlist.tplwithclass="list"table, alternatingbglight/bgdarkrows, search box, add form and delete checkboxes. - Added
doc/changelogs/2.4.0.3.mdand updateddocumentation/EXTENSIONS.mdwith the API reference, eZExtension helper table, admin menubox example and eZDB storage class example.
Admin UI and design
- Updated the white admin style box borders and templates, replacing GIF tile borders with CSS.
- Tightened admin module body border spacing on desktop.
- Tightened admin module mobile responsive styles.
- Updated footer badge references to use Exponential Basic branding with improved contrast and wording.
- Preserved the active admin site design in the
ezuserdatasupplier. - Fixed
refererlisteZ TPL block parsing so blank referers render as "Direct" or "(none)" instead of creating a brokenhttp://Directlink. - Added cache-busting headers to the referer list and moved cache headers to the top of the response.
- Rendered blank referer domains as plain text "Direct" and avoided broken links.
Core module fixes and hardening
eZArticle and eZImage
- Fixed MySQL schema creation for
eZArticleandeZStatsby removing trailing commas. - Fixed
eZImageVariation::store()so image variation rows are inserted correctly. - Added
eZCompany::emailAddress()to return the firstmailtoonline URL. - Updated order views and SETI export to use
emailAddress()as a string and avoid undefined index errors. - Updated the company type list to guard
requestImageVariationfailures for category and company logos.
eZStats, cron and admin views
- Fixed
eZStatsreports and queries: dates, browser counts, visitor reverse-DNS and blank referer handling. - Added
require('autoload.php')to all cron scripts and removed stale commentedinclude_oncecalls. - Fixed admin fatal/rendering errors in
contact,filemanager,trade,article,newsfeedandeZPBFile.
Site and operations
- Changed the default
IndexPageandDefaultPageto the article frontpage so the site root/serves content. - Moved eZ Basic caches out of
kernel/and intovar/cache/. - Restored
/proc-based system info pages and fixed PHP 8 compatibility. - Restored system info values when
/procis not directly readable. - Set the default calendar time slot colour to white for readability.
- Updated
composer.jsonto requirephpunitv13 instead of the insecure v10. - Updated
README.mdwith a troubleshooting section for first-time installs. - Updated
settings/override/site.ini.append.phpto setDatabaseImplementation=sqliteand activate thehelloworldextension.
Files added or changed
documentation/ABOUT.mddocumentation/CHANGELOGdocumentation/EXTENSIONS.mdlib/ezutils/classes/ezextension.phpkernel/classes/eztemplate.phpkernel/classes/ezdesign.phpkernel/classes/ezdb.phpbin/shell/php/create_extension.phpextension/helloworld/(module, classes, templates, intl)doc/changelogs/2.4.0.3.mddoc/press-release-2.4.0.3.ezxmldoc/sevenx-blog-press-release-2.4.0.3.xmldoc/exponential-earth-news-press-release-2.4.0.3.xmldoc/exponential-earth-changelog-2.4.0.3.xmlsettings/override/site.ini.append.php- plus the relevant admin templates, datasupplier files and module classes listed in the commit history.
Upgrade notes
- Back up your
settings/override/and database before upgrading. - Run
php bin/shell/php/ezpgenerateautoloads.php -eto regenerate extension autoloads. - Run
bash bin/shell/clearcache.shand restart PHP-FPM. - If you have an existing
helloworldextension, it now expects the newmodules/helloworld/{admin,user}/intl/translation layout.
Full list of changes since v2.4.0.2
Fixed: remove trailing commas that broke MySQL schema creation for eZArticle and eZStats
Updated: default IndexPage and DefaultPage to article frontpage so root / serves content
Fixed: eZImageVariation::store() now inserts image variation rows.
Updated: README.md with a Troubleshooting section for first-time installs.
Updated: Preserve the active admin site design in ezuser datasupplier.
Updated: Updated composer.json phpunit package require from v10 insecure to v13 secure. Bugfix
Updated: admin white-style box borders and templates
Updated: restore system info values when /proc is not directly readable
Updated: restore /proc-based sysinfo pages and fix PHP 8 compatibility
Updated: replace 'Powered by eZ publish' badge references with Exponential Basic badge
Updated: improve Exponential Basic footer badge contrast
Updated: enlarge and reword Exponential Basic footer badge
Updated: Copyright year bump. Doc.
Updated: Version number for next release 2.4.0.3
Updated: move eZ Basic caches out of kernel/ and into var/cache/
Updated: Calendar time slot color to white to make it readable by default. Bugfix.
Added: eZDesign design resolver and extension/helloworld sample.
Added: documentation/EXTENSIONS.md and updated extension support plan.
Updated: eZTemplate and eZDesign to resolve extension design templates and honor the active section design.
Updated: documentation/EXTENSIONS.md with template override details and GlobalSiteDesign behavior.
Added: eZExtension::moduleFile() and wired front controllers to support extension modules.
Updated: eZTemplate to merge translation overrides from active extensions.
Added: sample extension translation for the helloworld module.
Updated: helloworld sample module to load the site language and use extension translation strings.
Updated: documented extension translation override support in EXTENSIONS.md and the support plan.
Added: sample eZHelloWorld class in the helloworld extension.
Updated: documented extension class autoloading and the completed Phase 2 features.
Added: eZCompany::emailAddress() method to return the first mailto online URL.
Updated: order views and SETI export to use customer emailAddress() as a string and avoid undefined index errors.
Updated: company type list to guard requestImageVariation failures for category and company logos.
Updated: add require('autoload.php') to all cron scripts and remove stale commented includes
Updated: fix admin fatal/rendering errors in contact, filemanager, trade, article, newsfeed and eZPBFile
Updated: fix eZStats reports and queries (dates, browser counts, visitor reverse-DNS, blank referer)
Updated: render blank referer domain as Direct and avoid broken http://Direct link
Updated: Tighten display of admin module body boder spacing on desktop. Enhancement.
Updated: render Direct referer as plain text and add cache-busting headers to refererlist
Updated: fix eZ TPL block parsing in refererlist so Direct displays cleanly and links work
Updated: show Direct and (none) for blank referer entries and move cache headers to top
Updated: Tighten display of admin module mobile responsive styles. Enhancement.
Updated: admin white-style border layout from GIF tiles to CSS
Added: extension skeleton CLI tool
Updated: EXTENSIONS.md documents the skeleton CLI tool
Updated: extension module API for module.info, admin menus, icons and per-view intl paths.
Updated: translation intl paths now use eZExtension::baseDirectory() instead of hardcoded "extension/".
Renamed: helloworld translation catalogues to modules/<module>/{admin,user}/intl.
Updated: documentation/EXTENSIONS.md with completed module API, eZExtension reference, and admin menubox example.
Added: eZHelloWorldItem storage class and list/add flow to user and admin views.
Updated: documentation/EXTENSIONS.md with a minimal eZDB storage class example.
Updated: helloworld admin view to look like the core article archive list.
Updated: documentation/EXTENSIONS.md for helloworld adminlist template.
Updated: settings/override/site.ini.append.php to set DatabaseImplementation=sqlite and activate the helloworld extension.