- Rendered XHTML output What OutputFormat=xhtml does in the REST API - the node rendered in the view mode "rest" inside the template named in rest.ini, the placeholder template that ships, the two templates a site must provide, and how an app…
- The template engine and the design chain How Exponential renders HTML - the eZTemplate engine that compiles .tpl files to PHP, operators and functions registered from settings, fetch functions as the only data access, the design chain and override rules that…
- Upgrades without surprises How a business plans, rehearses and runs an Exponential upgrade so that customers notice nothing but the improvements, with the phases, the roles, the tools that ship with the product and the decisions to make before…
- Workflows and triggers as integration hooks Using workflow events on triggers as the "on publish" hook of an integration - before and after triggers, an outbox event that queues changes for a cronjob, an external check that accepts or rejects a publication…
- Writing template operators Add your own template operators - the autoload registration file, the operator class with operatorList, namedParameterList and modify, piped and parameter input, escaping, and when an operator is the wrong tool.
- Your own package server for a bundle When a bundle needs its own package server or a mirror of the public one, the settings that point an installation at it (RemotePackagesIndexURL, RemotePackagesIndexURLBase, Vendor, ezupdate servers), the warning that…
- By hand: your own table with eZPersistentObject A greetings table: an engine-neutral db_schema.dba, the SQL the kernel generates from it for three databases, installing it, the class, and using it from a page.
- Creating and removing content Write content from an app through the REST API at v2 - create and publish with parentNodeID, classIdentifier, languageLocale and the field values as form fields, the 201 answer, removing with DELETE, the permission…
- Environments and secrets: EXP_ENV and settings/override The Exponential counterpart of APP_ENV, .env files, Rails credentials and Spring profiles - the EXP_ENV constant in config.env.php, settings variants per environment, what the environment name changes, where secrets…
- Event listeners for integrations Reacting to kernel events with ezpEvent listeners - which events are useful to an integration (caches cleared, object states, notifications, sessions), attaching a listener in settings, a CDN purge example, the…
- Events, extension points and plugins How behavior is added to Exponential without forking it - the in-process event bus ezpEvent with notify and filter, handlers named in settings, datatypes, workflow event types, template operators, fetch functions, login…
- From old jQuery to jQuery 4 Load the jQuery 4 that ezjscore provides instead of a bundled old copy, and replace the jQuery calls that versions 3 and 4 removed, with the list the layouts editor went through and jQuery Migrate as a safety net.
- Interface translation fallbacks How Exponential decides which interface translation a locale shows when it has none of its own (configured fallbacks, rules, the automatic same-language fallback), how to see the chain with exp:i18n and Setup >…
- Learning from an extension, step by step Two real extensions taken apart file by file: str_replace, one operator in its 2005 shape with a PHP 8 bug and its one-line fix, and owsimpleoperator.
- PHP string functions: encode and format The encoding and formatting operators of eZTemplateStringsOperator (bin2hex, hex2bin, convert_uuencode, convert_uudecode, quoted_printable_encode, quoted_printable_decode, htmlentities, html_entity_decode…
- Sections, roles and access for builders Who may see and do what - sections, object states, roles, policies, limitations and assignments - explained for builders, with a members-only area as a worked plan and the template operators that ask about access.
- Security fixes in themes The security problems a theme can have - unescaped output, output in the wrong context, inline script injection, links opening other sites, exposed settings - how to find them, and a real fix from a published theme.
- SQL with eZDB, safely Writing SQL in Exponential with eZDB - instance(), query() and arrayQuery() with limit and offset, escapeString() for strings and (int) casts for numbers, generateSQLINStatement(), transactions with begin(), commit()…
- String operators The classic string operators of the template library (upcase, downcase, upfirst, upword, trim, shorten, wrap, pad, simplify, count_chars, count_words, nl2br, concat, indent, break, chr, ord) with examples, and where the…
- Template functions, includes and cache blocks The template language features an application uses most - include, the *_view_gui functions, def/set/undef, foreach, set-block, cache-block with keys and expiry, and how to structure templates of an extension.
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