- The ezini operator Reading settings in templates with ezini and ezini_hasvariable: section, setting, file and directory parameters, arrays from INI lists, a theme's own settings file, and when settings in templates are the right tool.
- Validation: input, datatypes and escaping Where validation happens in Exponential when there is no validator component - content is validated by its datatypes when editors save, your own forms and parameters are validated in your view or service, and output is…
- Which layout does a page get? Layout mappings decide which layout a page uses - targets (location, subtree, path), conditions (content class, siteaccess), priority and the first match. The real mappings of the Fit & Healthy site and what a page…
- Write a template operator in PHP A task guide for a template operator written in PHP - the eztemplateautoload.php registration, the operator class with operatorList(), namedParameterPerOperator(), namedParameterList() and modify(), input and output…
- Writing a workflow event type Write your own workflow step - the eZWorkflowEventType subclass, trigger types, execute() and its statuses, event settings in the workflow editor, registration in workflow.ini, and testing with the workflow cronjob.
- Built-in template functions The template functions of the engine - variables, conditions, loops, includes, blocks, caching, debugging - and the kernel's view functions such as node_view_gui, listed from the running engine.
- Caching: the layers and how to invalidate them The caches of Exponential for developers used to a cache component with pools and tags - compiled templates, INI and override caches, the content view cache per role, template cache blocks, data caches through the…
- Cronjobs for applications Run an application's periodic work with cronjob parts - how parts and scripts are defined in cronjob.ini, running them with runcronjobs.php and the console, the crontab, siteaccess flags, pausing, locks and monitoring…
- Events, listeners and filters React to the kernel without changing it: ezpEvent, [Event] Listeners[], notify versus filter events, the events the kernel announces, and the rule that a filter returns its value.
- Idempotent imports keyed by remote_id Making imports safe to run any number of times - the remote_id of objects and nodes, a naming scheme for keys, the create-or-update function with change detection, handling records removed at the source, and what to do…
- Known editor behaviors Behaviors of the Layouts editor and its tools seen while writing these pages on Exponential 6.0.15+, each with what was observed and how to work with it - view type changes, item positions, search in the content…
- The expinfo operator expinfo from eZTemplateExpInfoOperator - the active extensions, all available extensions, one extension's metadata from extension.xml and ezinfo.php, and the kernel information, which keys each mode returns, and which…
- The ezhttp operator Reading request values (GET, POST, session, cookie) in templates with ezhttp and ezhttp_hasvariable, why every such value is untrusted and must be washed, and why view parameters and fetch results are usually the better…
- Write a datatype The PHP side of a custom datatype - the eZDataType methods grouped by when the kernel calls them, registration with eZDataType::register(), storage in data_text, data_int and data_float or a table of your own, string…
- Built-in fetch functions by module Every fetch function the kernel's modules declare, listed from their function_definition.php, with the ones used most and how fetch( module, function, hash() ) relates to PHP.
- Handlers named by settings Replace one part of the system with a class chosen by a setting: getHandlerClass(), a verified mail transport, and the handler points for login, session, search, shop and more.
- HTTP caching and reverse proxies HTTP-level caching in Exponential for developers who know Symfony's HttpCache, Varnish setups, Laravel response caching or Django's cache middleware - page headers for anonymous visitors from settings, the role-aware…
- Layout types, zones and blocks The twelve layout types and their zones, the 46 block types grouped by purpose, view types, block parameters, containers, and collections with offset, limit and pinning - a reference for planning layouts.
- Mapping content classes to external data Turning records of another system into content objects - designing the class, choosing datatypes, the fromString() text formats of the common datatypes, images and files from a DAM, relations, languages, locations, and…
- Role and policy operators Showing or hiding parts of a design by role or permission: the has_role and has_policy family of operators, the fetch alternatives user/has_access_to and user/can_open, and why hiding a link is never the same as…
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