Zen provides a collection of events for extending its functionality. Modules and plugins can register event listeners, typically in their init()
methods, to modify Zen’s behavior.
The below events are examples using the Entry
class, but any class that inherits from the verbb\zen\base\Element
class can use these events.
modifyImportFieldTabs
event#The event that is triggered to modify the tabs and fields shown as the preview for the import configure table.
use verbb\zen\elements\Entry;
use verbb\zen\events\ModifyElementImportFieldTabsEvent;
use yii\base\Event;
Event::on(Entry::class, Entry::EVENT_MODIFY_IMPORT_FIELD_TABS, function(ModifyElementImportFieldTabsEvent $event) {
$elementType = $event->elementType;
$tabs = $event->tabs;
// ...
});
modifyImportTableAttributes
event#The event that is triggered to modify the table attributes (the header columns) for the import configure table.
use verbb\zen\elements\Entry;
use verbb\zen\events\ModifyElementImportTableAttributesEvent;
use yii\base\Event;
Event::on(Entry::class, Entry::EVENT_MODIFY_IMPORT_TABLE_ATTRIBUTES, function(ModifyElementImportTableAttributesEvent $event) {
$elementType = $event->elementType;
$attributes = $event->attributes;
// ...
});
modifyImportTableValues
event#The event that is triggered to modify the table values (the row columns) for the import configure table.
use verbb\zen\elements\Entry;
use verbb\zen\events\ModifyElementImportTableAttributesEvent;
use yii\base\Event;
Event::on(Entry::class, Entry::EVENT_MODIFY_IMPORT_TABLE_VALUES, function(ModifyElementImportTableValuesEvent $event) {
$elementType = $event->elementType;
$values = $event->values;
// ...
});
modifyNormalizedData
event#The event that is triggered when a serialized element is normalized for import.
use verbb\zen\elements\Entry;
use verbb\zen\events\ModifyElementNormalizedDataEvent;
use yii\base\Event;
Event::on(Entry::class, Entry::EVENT_MODIFY_NORMALIZED_DATA, function(ModifyElementNormalizedDataEvent $event) {
$elementType = $event->elementType;
$fields = $event->fields;
$values = $event->values;
// ...
});
modifySerializedData
event#The event that is triggered when an element is serialized for export.
use verbb\zen\elements\Entry;
use verbb\zen\events\ModifyElementSerializedDataEvent;
use yii\base\Event;
Event::on(Entry::class, Entry::EVENT_MODIFY_SERIALIZED_DATA, function(ModifyElementSerializedDataEvent $event) {
$elementType = $event->elementType;
$element = $event->element;
$values = $event->values;
// ...
});
beforeImport
event#The event that is triggered before an element is imported.
use verbb\zen\elements\Entry;
use verbb\zen\events\ElementImportEvent;
use yii\base\Event;
Event::on(Entry::class, Entry::EVENT_BEFORE_IMPORT, function(ElementImportEvent $event) {
$importAction = $event->importAction;
// ...
});
afterImport
event#The event that is triggered after an element is imported.
use verbb\zen\elements\Entry;
use verbb\zen\events\ElementImportEvent;
use yii\base\Event;
Event::on(Entry::class, Entry::EVENT_AFTER_IMPORT, function(ElementImportEvent $event) {
$importAction = $event->importAction;
// ...
});
The below events are examples using the Matrix
class, but any class that inherits from the verbb\zen\base\Field
class can use these events.
beforeElementImport
event#The event that is triggered before an element is imported.
use verbb\zen\events\ElementFieldImportEvent;
use verbb\zen\fields\Matrix;
use yii\base\Event;
Event::on(Matrix::class, Matrix::EVENT_BEFORE_ELEMENT_IMPORT, function(ElementFieldImportEvent $event) {
$field = $event->field;
$element = $event->element;
// ...
});
afterElementImport
event#The event that is triggered after an element is imported.
use verbb\zen\events\ElementFieldImportEvent;
use verbb\zen\fields\Matrix;
use yii\base\Event;
Event::on(Matrix::class, Matrix::EVENT_AFTER_ELEMENT_IMPORT, function(ElementFieldImportEvent $event) {
$field = $event->field;
$element = $event->element;
// ...
});