Skip to content

Registering support for custom fields

The plugin comes with a number of built in parsers, all following the BaseFieldParser class.

Each field is assigned a parser, with the PlainTextParser acting as a backup in case the selected parser can't return the value.

Registering plugin fields to a parser - either a built parser or your own, can be done through the EVENT_REGISTER_EXPORTABLE_FIELD_TYPES event.

In the example below, we add Formie's Checkboxes field to the built-in MultiOptionsFieldParser::class.

php
use studioespresso\exporter\helpers\FieldTypeHelper;
use studioespresso\exporter\events\RegisterExportableFieldTypes;
use studioespresso\exporter\fields\MultiOptionsFieldParser;

Event::on(
    FieldTypeHelper::class,
    FieldTypeHelper::EVENT_REGISTER_EXPORTABLE_FIELD_TYPES,
    function(RegisterExportableFieldTypes $event) {
        $parsers = $event->fieldTypes;
   
       $event->fieldTypes[MultiOptionsFieldParser::class] = array_merge($parsers[MultiOptionsFieldParser::class], [
            \verbb\formie\fields\formfields\Checkboxes::class, // @phpstan-ignore-line
       ]);
    }
);
use studioespresso\exporter\helpers\FieldTypeHelper;
use studioespresso\exporter\events\RegisterExportableFieldTypes;
use studioespresso\exporter\fields\MultiOptionsFieldParser;

Event::on(
    FieldTypeHelper::class,
    FieldTypeHelper::EVENT_REGISTER_EXPORTABLE_FIELD_TYPES,
    function(RegisterExportableFieldTypes $event) {
        $parsers = $event->fieldTypes;
   
       $event->fieldTypes[MultiOptionsFieldParser::class] = array_merge($parsers[MultiOptionsFieldParser::class], [
            \verbb\formie\fields\formfields\Checkboxes::class, // @phpstan-ignore-line
       ]);
    }
);

Included Parsers

  • PlainTextParser
  • RelationParser
  • DateTimeParser
  • TimeParser
  • OptionsFieldParser
  • MultiOptionsFieldParser
  • MoneyFieldParser

There all live under the studioespresso\exporter\fields\ namespace.