ezjscore: JavaScript and CSS packer, server calls, jQuery
This page is for template authors and extension developers who load scripts and styles or call PHP from JavaScript.
ezjscore ("eZ JS Core") is the JavaScript foundation of Exponential. It:
- packs scripts and stylesheets into one cached file per page;
- loads jQuery and jQuery UI (
ezjsc::jquery,ezjsc::jqueryUI) for the pages that request them; admin4 and admin4l load jQuery on no page of their own; - provides server calls: an Ajax interface to PHP classes, protected by role policies;
- provides template operators for encoding and loading assets, and the function library several extensions rely on (ezstarrating, ezautosave, ezwt and others).
The standalone repository se7enxweb/ezjscore carries the same code as the copy shipped in the Exponential kernel.
Release 1.4.0 (1 October 2026) brought it back in step after it had been emptied in 2013, when the code moved into the
legacy kernel. It can be installed and followed on its own again: composer require se7enxweb/ezjscore.
How server calls are written and secured is described in Backend ezjscore services.
Upgrade to 1.5 (YUI removed)
- Search your designs and extensions for YUI:
grep -rn "ezjsc::yui2\|ezjsc::yui3\|ezjsc::yui3io\|\[YUI3\]" design extension --include=*.tpl --include=*.ini* --include=*.phpNothing should be printed. Replace each hit with ezjsc::jquery, ezjsc::jqueryUI or the Exponential UI modules
of expui (see the table of replacements in YUI removal).
2. If you load jQuery 3 files from ezjscore.ini yourself, keep them: they are still shipped.
3. Clear the packer output so packed files are rebuilt:
php bin/php/ezcache.php --clear-tag=template,content --allow-root-user, and the ezjscore-packer cache.
What changed in the Exponential 6 releases
| Release | Change |
|---|---|
| 1.4.0 (1 October 2026) | The repository carries the current ezjscore again: the packer and its template operators, server calls, encoding operators and the jQuery loading. ezjsc::jquery loads jQuery 4.0.0 followed by jQuery Migrate 4.0.2, and ezjsc::jqueryUI loads jQuery UI 1.14.2. The jQuery 3 files are still shipped, and the CDN entries, which named jQuery 1.10.2, name the same releases. composer.json, ezinfo.php, a README and a contributing guide are included. |
| 1.4.1 (2 October 2026) | CSS packer fix: at pack level 3 every space before a colon was removed, also in selectors, so a :hover became a:hover and :where(#a) :where(.b) became :where(#a):where(.b), each a different selector, and rules silently stopped matching. The space before : is now removed only inside declaration blocks (color : red becomes color:red). |
| 1.5.0 | YUI removed: the YUI 2 and YUI 3 libraries (design/standard/lib/yui), the packer keys ezjsc::yui2, ezjsc::yui3 and ezjsc::yui3io and their config functions in ezjscServerFunctionsJs, the [YUI3] settings and the yui entries in ExternalScripts, LocalScripts and LocalScriptBasePath of ezjscore.ini. PreferredLibrary is jquery. This is a breaking change for code that asks for YUI. |
| 1.5.1, 1.5.2 | Command line scripts, cronjob parts and module views are classes the files call; copyright notices and the about page name 1998 - 2026 7x & Exponential Foundation first, above the eZ Systems notices; the extension is identical to the copy in the kernel. |
| 1.5.3, 1.5.4 | expsubitems server functions serve the admin sub-items list's Table options: registered as [ezjscServer_expsubitems] with the class Exponential 6.0.15 ships, every function checking access itself; new server function blocks in the settings for the sub-items columns. See Sub-items table options. |
| 1.5.5 | The server router lets expservices classes answer in their own envelope, errors included. (The clone's extension.xml says 1.5.5; the copy installed here reads 1.5.4 in ezinfo.php.) |
Languages
The extension carries translation files in translations/<locale>/translation.ts: eng-US and ger-DE. The German file
holds 13 messages (count <message in translations/ger-DE/translation.ts). The texts are looked up in the contexts
extension/ezjscore/ajaxuploader and design/standard/content/datatype.
After editing a translation file:
- Refresh the compiled translation cache:
./console exp:ezgeneratetranslationcache. - Clear the template and content caches.
./console exp:ezchecktranslation ger-DE prints statistics of the kernel's share/translations/ger-DE/translation.ts,
not of this extension's file.
Related pages
- jQuery 4 in the admin, and YUI gone
- Remote services (expservices)
- Backend ezjscore services
- Extension metadata specification
- Chronicle and release notes
- Change ledger
- Behaviour changes of the extensions
- March 2024, Month: 2026-10 (all extensions)
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.