Hooks
Rather than maintaining a full form template, we recommend using Formie's default form template along with your own style using the existing classes and structure.
We provide many template hooks (opens new window) in the form template so that if needed, you can add additional functionality to the form while receiving bug fixes and improvements.
For a full list of available hooks, please refer to the list below.
Form
View this template (opens new window).
| Hook | Description |
|---|---|
formie.form.start | The start of the form element, before the form title (if shown). |
formie.form.end | The end of the form element. |
Example
Craft::$app->getView()->hook('formie.form.start', function(array &$context) {
// Add a variable to be accessible in the context object.
$context['foo'] = 'bar';
// Optionally return a string
return '<p>Hey!</p>';
});Page
View this template (opens new window).
| Hook | Description |
|---|---|
formie.page.start | The start of the page, before the page legend (if shown). |
formie.page.end | The end of the page. |
Example
Craft::$app->getView()->hook('formie.page.start', function(array &$context) {
// Add a variable to be accessible in the context object.
$context['foo'] = 'bar';
// Optionally return a string
return '<p>Hey!</p>';
});Buttons
View this template (opens new window).
| Hook | Description |
|---|---|
formie.buttons.before | Before the buttons container. |
formie.buttons.after | After the buttons container. |
formie.buttons.start | The start of the buttons container. |
formie.buttons.end | The end of the buttons container. |
formie.buttons.submit-start | The start of the submit/next page button. |
formie.buttons.submit-end | The end of the submit/next page button. |
formie.buttons.prev-start | The start of the previous page button (if shown). |
formie.buttons.prev-end | The end of the previous page button (if shown). |
Example
Craft::$app->getView()->hook('formie.buttons.before', function(array &$context) {
// Add a variable to be accessible in the context object.
$context['foo'] = 'bar';
// Optionally return a string
return '<p>Hey!</p>';
});Field
View this template (opens new window).
| Hook | Description |
|---|---|
formie.field.field-before | Before the field container. |
formie.field.field-after | After the field container. |
formie.field.field-start | The start of the field container. |
formie.field.input-before | Before the input container. |
formie.field.input-after | After the input container. |
formie.field.input-start | The start of the input container. |
formie.field.input-end | The end of the input container. |
formie.subfield.field-start | The start of the subfield field container. |
formie.subfield.field-end | The end of the subfield field container. |
formie.subfield.input-before | Before the subfield input container. |
formie.subfield.input-after | After the subfield input container. |
formie.subfield.input-start | The start of the subfield input container. |
formie.subfield.input-end | The end of the subfield input container. |
Example
Craft::$app->getView()->hook('formie.field.field-before', function(array &$context) {
// Add a variable to be accessible in the context object.
$context['foo'] = 'bar';
// Optionally return a string
return '<p>Hey!</p>';
});Control Panel - Edit Submission
When editing a submissions in the control panel, you'll have access to the following hooks.
| Hook | Description |
|---|---|
formie.cp.submissions.edit | Before submission detail view’s template blocks. |
formie.cp.submissions.edit.content | After submission detail view’s main content. |
formie.cp.submissions.edit.details | After submission detail view’s existing right sidebar details column. |
Example
Craft::$app->getView()->hook('formie.cp.submissions.edit.content', function(array &$context) {
// Add a variable to be accessible in the context object.
$context['foo'] = 'bar';
// Optionally return a string
return '<p>Hey!</p>';
});Control Panel - Edit Sent Notification
When viewing a sent notification in the control panel, you'll have access to the following hooks.
| Hook | Description |
|---|---|
formie.cp.sentNotifications.edit | Before submission detail view’s template blocks. |
formie.cp.sentNotifications.edit.content | After submission detail view’s main content. |
formie.cp.sentNotifications.edit.details | After submission detail view’s existing right sidebar details column. |
Example
Craft::$app->getView()->hook('formie.cp.sentNotifications.edit.content', function(array &$context) {
// Add a variable to be accessible in the context object.
$context['foo'] = 'bar';
// Optionally return a string
return '<p>Hey!</p>';
});