Welcome to eZpedia!
| The free eZ Publish encyclopedia that anyone can edit. eZpedia has accumulated 722 english articles since 2006. We encourage you to create an account and create or edit a page yourself. Some folks create an article in the people namespace with their full name as the article name with a brief description of who they are, their interests, goals and objectives. Ask A QuestionDo you have an eZ Publish question, do you need an eZ Publish answer? Simply login and ask your question in our discussion forum. We publicly write free documentation based on your submissions. Posting on eZpedia is a great way to get answers you need and contribute to our freely available community documentation for eZ Publish. Chat with other eZ Publish Developers LIVE from around the World!EcosystemRead about what is going on within the various eZ Publish related websites on internet. Recent development activityTrack the development progress through the roadmap by reviewing recent Exponential Git activity from the github repository. Last updated: 2026-06-12T16:12:58Z
2026-06-12T16:12:58Z
Updated: share/filelist.md5 regenerated for 6.0.15 release preparation Refreshes the MD5 integrity manifest ahead of the 6.0.15 release tag (due approx. one month from now). verifyfiles.sh uses this file to detect unauthorised or accidental modifications to the distributed codebase. Changes reflected in this regeneration (55 updated / added entries, 50 removed/replaced checksums, net +5 new files): - bin/modfix.sh updated checksum (@description tag added) - bin/php/console new file (Symfony-style command dispatcher) - bin/php/preload.php new file (site cache warmer) - bin/php/clusterize.php updated checksum (@description tag added) - bin/php/convertprice2multiprice.php updated (@description tag added) - bin/php/ezconvertdbcharset.php updated (@description tag added) - bin/php/ezflowupgrade.php updated (@description tag added) - bin/php/ezgeneratetranslationcache.php updated (@description tag added) - bin/php/ezpgenerateautoloads.php updated (@description tag added) - bin/php/ezsubtreecopy.php updated (@description tag added) - bin/php/ezsubtreeremove.php updated (@description tag added) - bin/php/ezwebincommon.php updated (@description tag added) - bin/php/ezwebininstall.php updated (@description tag added) - bin/php/ezwebinupgrade.php updated (@description tag added) - bin/shell/*.sh (30 files) updated checksums (@description tags added) - design/admin/templates/toolbar/full/admin_bookmarks.tpl updated (URL alias fallback fix) - doc/bc/6.0/console.md new file (end-user documentation) - doc/bc/6.0/preload.md new file (end-user documentation) - lib/version.php updated (6.0.14 → 6.0.15) - share/db_data.dba updated (seed version string 6.0.15stable)
2026-06-12T16:10:36Z
Updated: Exponential CMS version bump 6.0.14 → 6.0.15 stable release lib/version.php: VERSION_RELEASE incremented from 14 to 15, marking the 6.0.15 stable release — affects all version strings returned by eZPublishSDK::version(), ::release(), and displayed in the admin interface and API responses. share/db_data.dba: seed data version string updated from '6.0.14stable' to '6.0.15stable' so eZPublishSDK::databaseVersion() reports the correct release on fresh installations seeded from this file. Added: bin/php/console — Symfony-style command dispatcher that auto-discovers and runs all bin/php, bin/shell, bin/*, and extension/*/bin scripts with zero configuration. Features orange ANSI color theme, TTY color pass-through via proc_open so sub-script output (including preload colors) is preserved, fuzzy did-you-mean suggestions, --help forwarding, and bare-name shortcuts. Added: bin/php/preload.php — site cache warmer that warms section pages via curl then spiders the full site via wget (recursive, depth 3). Produces rich colorised terminal output with per-page HTTP status badges, wall-time speed tiers, kernel timing metrics, and a final summary of pages cached, auth-skipped resources, and broken links. Updated: @description and @long-description tags added to all 47 bin/php and bin/shell scripts — console list now shows a meaningful one-line description for every command instead of '(no description)'. Tags are auto-detected by the console extractor with no registration step required. Updated: design/admin/templates/toolbar/full/admin_bookmarks.tpl — admin bookmarks toolbar now falls back to /content/view/full/<node_id> when a bookmarked node has no URL alias, preventing broken href='' links appearing in the admin bookmarks menu for nodes that have not yet been assigned a URL alias. Added: doc/bc/6.0/console.md — end-user documentation for bin/php/console covering all namespaces, copy-paste example commands, help routing, extension command discovery, adding descriptions to custom scripts, and troubleshooting. Added: doc/bc/6.0/preload.md — end-user documentation for bin/php/preload.php covering prerequisites, siteaccess usage, output interpretation, speed tiers, cron job setup, post-cache-clear workflow, and troubleshooting.
2026-06-07T12:18:59Z
Updated: Updated file listing md5 hashes for the 6.0.14 release upgrade check. Release prep.
2026-06-07T12:09:19Z
fix: PostgreSQL compatibility for setup wizard re-run on existing database
Three issues prevented the setup wizard from completing when database
objects already existed from a prior run:
1. lib/ezdbschema/classes/ezpgsqlschema.php
- CREATE SEQUENCE -> CREATE SEQUENCE IF NOT EXISTS
- CREATE TABLE -> CREATE TABLE IF NOT EXISTS
Prevents errors when sequences/tables already exist in the DB.
2. lib/ezdbschema/classes/ezdbschemainterface.php (insertSchema)
- Fetch existing tables list once before schema+data loops
- Skip both schema creation and data insertion for tables that
already exist, preventing duplicate key errors on retry.
3. lib/ezdb/classes/ezpostgresqldb.php (correctSequenceValues)
- Replace deprecated pg_attrdef.adsrc column (removed in PG12)
with pg_get_expr(pg_attrdef.adbin, pg_attrdef.adrelid)
- Fixes E_WARNING and foreach-on-false crash after schema install.
2026-06-07T08:18:29Z
Updated: Updated file listing md5 hashes for the 6.0.14 release upgrade check. Release prep.
2026-06-07T08:18:06Z
Updated: Updated file listing md5 hashes for the 6.0.14 release upgrade check. Release prep.
2026-06-07T08:16:29Z
setup: allow rootless shared-hosting MySQL installation and fix MongoDB-only code leaking into SQL paths
kernel/setup/steps/ezstep_installer.php
--------------------------------------
Previously, checkDatabaseRequirements() left $dbParameters['database']
empty/false for MySQL when the user had not yet chosen a database name,
causing eZDB::instance() to fall back to the site.ini default (or to
whatever the ini chain resolved to). The mysqli constructor then called
mysqli_select_db() against that default database, which on shared hosting
is typically a system database the application user has no access to.
Fix: when the database type is mysql/mysqli and a 'dbname' value was
explicitly submitted via the setup form, copy it into $dbParameters['database']
before the connection is attempted. This means the driver connects
directly to the target application database from the very first query,
requiring only the privileges needed to operate that single database
(SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER) — no global
or system-level grants are needed.
kernel/setup/steps/ezstep_site_details.php
------------------------------------------
The Site Details init() path hardcoded $dbName = 'mysql' for the mysqli
driver. This is a legacy pattern from the era when MySQL required
connecting to the 'mysql' system database first to enumerate available
databases via SHOW DATABASES — a privilege restricted to root or DBA
accounts. On shared hosting the application database user does not have
this privilege, producing an immediate 'Access denied ... to database
mysql' fatal error that prevented any progress past this step.
Two-part fix:
1. When the user has provided an explicit database name ('dbname'), connect
directly to that database instead of to 'mysql'. This avoids both the
'Access denied' error and any requirement for SHOW DATABASES.
2. After a successful connection, when 'dbname' is non-empty for MySQL,
skip availableDatabases() entirely and pre-populate the dropdown with
just the named database. The 'Database' select on the Site Details page
will therefore show exactly the database the user typed, and the wizard
can proceed without any elevated privilege.
Together these two changes mean a shared-hosting MySQL user only needs
standard per-database privileges. No root, no SUPER, no SHOW DATABASES.
kernel/classes/ezurlaliasml.php
--------------------------------
The OMS URL-alias history/reparenting fix inside storePath() was added to
support MongoDB's document model but was not guarded by a database-type
check. As a result, every call to storePath() on a MySQL or PostgreSQL
installation reached $db->aggregate() and $db->mongoUpdateMany() —
methods that exist only on expMongoDB — and crashed immediately with
'Call to undefined method eZMySQLiDB::aggregate()'. This made the final
'Creating sites' step of the setup wizard fatal for all SQL backends.
Fix: wrap the entire MongoDB-specific block (aggregate + mongoUpdateMany
history marking, link relinking, and child reparenting) in an
if ( $db->databaseName() === 'mongo' ) guard so it is compiled and
executed only when the active database driver is MongoDB.
A secondary aggregate() call in the link-ID lookup branch (used when
$linkID !== true) was also unconditional. That call is now dispatched
as a plain SQL arrayQuery() for SQL backends and as aggregate() for
MongoDB, preserving correct behaviour on all drivers.
All three changes combined make a clean out-of-the-box installation on
shared MySQL hosting possible without requiring root database access,
superuser grants, or any manual pre-configuration beyond creating a
single application database and granting standard DML/DDL privileges to
the application user.
|
Recent discussionsRead what others are discussing |
|
Recently updated articlesRead recently modified articles
|
||
