- Storing a date of birth with the birthday datatype Add the birthday datatype to a class, what editors see, what is stored, and how to print the date, the age and the zodiac sign in a template.
- Asking the community for help Where to ask a development question (forums, chat, issue trackers, the extension's own repository), how to write a question people can answer, what never to post, and how to report a security problem privately.
- Authentication for apps The landing page of the authentication pages for app developers - the three credentials Exponential accepts from programs (OAuth2 tokens, personal API keys, expservices tokens), the default that every REST call needs a…
- By hand: a rich text custom tag A custom tag for rich text: AvailableCustomTags, a custom attribute with an online editor control, and the ezxmltags template that renders it with $content, verified.
- Context menus and admin integration How an old extension's context menu entries, left menu links, node view tabs and top tabs plug into the Exponential 6 admin, and how to make each work without inline code and with access checks.
- Cookie banners and consent For public bodies deciding whether their site needs a cookie consent banner - Exponential ships no banner or consent manager, the kernel needs none for its functional cookies, and what to do when you add analytics…
- Creating and updating content in code Create, update, move and remove content from PHP - eZContentFunctions::createAndPublishObject and updateAndPublishObject, fromString values, rich text, images, remote ids for idempotent imports, workflows and…
- Cronjob parts Work on a schedule: a cronjob script in your extension, its own part in cronjob.ini, as a plain script or a CronjobPart class, with quiet mode, logging and the stop switches.
- Cronjobs for builders What runs on a schedule - cronjob parts and scripts in cronjob.ini, runcronjobs.php, the Setup > Cronjobs page and the crontab lines - and how a builder adds an existing script to a part or schedules a part.
- Extension points: handlers, INI registration and overrides Where framework developers register services, tags, listeners and plugins, Exponential registers extension points in INI settings, directories and designs - the nine registration mechanisms, a map of the most used…
- Footer menu items The Fit & Healthy footer has two link lines with two different sources - FooterMenuID in menu.ini (like the header) and the Footer links folder in the content tree. How to add to each, in the administration and by…
- Keeping Packagist up to date automatically Make Packagist read every new tag as soon as it is pushed - through the GitHub integration or a webhook - and check that the hook works after a release.
- Logic and comparison operators The operators that build conditions: eq, ne, lt, gt, le, ge, and, or, not, true, false, null, choose, and the type tests is_set, is_unset, is_array, is_string, is_numeric, is_object, is_null, get_type, get_class.
- Mail and notifications integration Connecting Exponential to mail servers and mail providers - the sendmail, SMTP and file transports, a transport class of your own for a provider's HTTP API, the mail gate and preferences, notifications and their…
- Persistent object definitions in depth eZPersistentObject for PHP developers - every key of definition(), the field forms, the condition syntax of fetchObjectList() with operators, ranges and IN lists, sorting, limits and custom fields, store() and sync()…
- Publishing a security release Release a security fix for a theme - fix, version, tag and release first, then describe the problem plainly with affected versions and the action users must take, and tell the channels where your users are.
- Template operators in a theme Add a template operator to a theme - the operator class, autoloads/eztemplateautoload.php, ExtensionAutoloadPath[] and the autoload array - and avoid the one file the design wizard does not write.
- Text operators concat and indent from eZTemplateTextOperator - joining values into one string and indenting multi-line text with spaces, tabs or a custom filler, the object trap of concat in compiled templates, with examples rendered…
- The eZDataType API Every eZDataType method a datatype overrides, grouped by purpose - registration, editing, storage, class settings, collection, search and sorting, import, packages - with kernel signatures.
- The object model in templates How a template sees the PHP objects of the content model - node, content object, version, data map, content object attribute and its datatype content - and the attribute protocol (attributes, hasAttribute, attribute)…
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