Terminology and Glossary

Before we get into how to extend the functionality or appearance of Express Forms, we need to define some terms we'll be using throughout this documentation. (Don't worry if all the aspects of these terms don't make sense – they will be covered in this documentation.)

Form

This one's obvious: the Express Form is the form object tied to an Express entity created through the Dashboard (or through package installation). The Express form bundles attribute keys and other Express controls into field sets.

Context

The Context object is used to tell Concrete CMS what context we're rendering or accessing a form. Example form contexts include:

  • Front-end Form
  • Standard View
  • Dashboard View
  • Dashboard Form

Contexts are PHP objects that implement the Concrete\Core\Express\Form\Context\ContextInterface.

Form Controller

Every Express Form has a controller, which is a PHP script that controls the following behaviors of the form:

  • Notification
  • Processing
  • Object Persistence
  • Context Object Delivery

Implementing various methods in a controller can alter how forms are processed, validated, their notification functionality, and more. By default, Express Forms return the Concrete\Core\Express\Controller\StandardController, which is used for validation, processing and notification – but an Express Form can return any controller, as long as it implements the Concrete\Core\Express\Controller\ControllerInterface.

Form Control View

Like other "views" found throughout Concrete (block views, attribute view, etc...), form views are a special class that holds data about a particular form control, including where to load its templates

Form Control Renderer

A PHP class that is responsible for rendering a particular form control. It is delivered and specified by the control view.

Context Registry

The ContextRegistry object – an object of the Concrete\Core\Form\Context\Registry\ContextRegistryInterface – is delivered by the form controller. It maps various abstract contexts to actual PHP objects. These PHP objects then determine how actual form controls are included, and from where, allowing for great theming flexibility.

Processor

An Express Form Processor is an object of the Concrete\Core\Express\Form\Processor\ProcessorInterface, delivered by form controller. The processor handles validation and responses to successfully submitted forms.

Entry Manager

A Form object's EntryManager object is an object of the Concrete\Core\Express\Entry\EntryManagerInterface interface. It handles object persistence and attribute updates.

Notifier

The Notifier object is delivered by the form controller, and is an object of the Concrete\Core\Express\Entry\Notifier\NotifierInterface. The notifier handles sending express form notifications.

Now that you've been exposed to some of this terminology, read on to discover how to use these pieces to customize the design of an Express form.