- Add a newsletter list for alerts Task for administrators: add an alert list (for example consultations) to cjw_newsletter, link its subscribe form from the topic's pages, and send a first alert after a rehearsal.
- Case studies for resellers How resellers use case studies and customer references to sell hosting, managed sites, products and support - consent first, what a reseller case study shows, the points it earns in the partner program, white-label and…
- Concurrency, statics and long-lived processes How to write Exponential code that is correct when one PHP process serves many requests and many processes serve one site - static caches and singletons, idempotent registrations, exit and cleanExit, class_exists guards…
- Contributing back upstream Send fixes and improvements back to the themes, extensions and the Exponential project you build on - what to contribute, how to prepare a change, and why it pays off in less maintenance for you and shared growth for…
- Create a landing page with layouts For editors with access to Exponential Layouts - build a campaign or topic landing page with the layouts editor - New layout, layout type, blocks for title, text, lists and images, publish - and get it shown on the…
- Demo content for a theme Demo content that shows a theme at its best and at its limits - which pages to create, realistic but invented text, licensed images, long titles and empty fields - and how to ship it as a package or seed data.
- Demo mode in bundles When a bundle may use demo mode (EXP_DEMO_MODE=1) and when it must never - what it changes, how a demo bundle sets it for every process, installing with a published password, rebuilding on a schedule, and how to keep it…
- Escalations and security issues What partners do when a ticket is not moving or when a security problem is found - an escalation ladder, private disclosure to [email protected], what to tell customers, and how security fixes reach you.
- Escaping output from PHP How to escape values that PHP code writes into HTML, attributes, URLs, JSON, CSV, shell commands and logs - htmlspecialchars() with explicit flags for PHP 8.0, the wash operator and why templates are the better place…
- ezjscore server functions for your app When an app needs an endpoint no REST route or service offers - what to ask a PHP developer for, how an ezjscore server function is registered and called, its answer wrapper, the permission rules it must follow…
- How do I change the content class of an object? Choose Change content class in the object's context menu, pick the destination class, map each old field to a new one and confirm; the object keeps its place, id and versions.
- JSON endpoints with ezjscore Give your pages' JavaScript a JSON back end with ezjscore server functions - the [ezjscServer_<name>] block, the static method, the call URL and answer envelope, permission checks, form tokens, and when to use…
- Lock configuration with ManagedByDeployment Step by step - switch on ManagedByDeployment for the production administration siteaccess so settings, templates, extensions and packages can only change through version control, and check what is locked and what stays…
- Log review routine A weekly and monthly log review routine for the administrators of a public site - which Exponential logs and audit views to read, what to look for, commands to use, and how to record the review as evidence.
- Organizing the media library Set up the media library so editors find and reuse images and files - folder structure, where uploads land (upload.ini), multi-upload, naming, permissions, and cleaning up unused media.
- REST and JSON APIs The API layers of Exponential for developers who build APIs with API Platform, Laravel API resources, Django REST framework or Spring controllers - the REST content API at v1 and v2 with API keys and OAuth2, your own…
- Review the security log Step by step - the weekly read of Exponential's security.log in Setup > Log files - what the request classifier records, which lines need a closer look (injection or traversal with status 200 or 500), and what to do…
- Security for integrations The security rules an Exponential integration must follow - credentials never in Git, settings/override and the environment, least privilege for service accounts, transport security, input from other systems treated as…
- Template style guide House style for Exponential templates: a header comment, prefixed variables and undef, wash at output, i18n contexts, fetch once with limits, small parts, no inline CSS or JavaScript, semantic and accessible markup, and…
- Tests for extensions Tests that ship with an extension and need no database: phpunit.xml.dist and bootstrap, unit and file tests, the kernel's own suite, and the other checks before every commit.
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