A custom field for integrating the AddressFinderNZ API as both a backend and frontend field.
AddressFinderField::create(DataObject $data, $name, $title = null, $databaseFields = array(), $hiddenFields = false)
By default the field will pull the full address from the API and will save it into the database field 'Address'.
Alternatively you can specifiy multiple fields from the API to be saved to the database. You can do this by passing in the alternative database fields array as the 3rd variable of the field constructor. The key of the array is the database field and the value should match the meta data returned by the API. https://addressfinder.nz/api/nz/address/metadata
This installer requires you have the following:
- Composer
- Add your AddressFinderNZ API information to the config.yml:
AddressFinderField:
Key: 'key-here'
Secret: 'secret-here'
- Add the database fields to your page or object
private static $db = array(
'Address' => 'Text'
);
- Add the field to your fieldset
AddressFinderField::create($this, 'AddressFinder', 'Search address')
- Add the multiple database fields to your page or object
private static $db = array(
'Address' => 'Text',
'City' => 'Varchar',
'Street' => 'Varchar'
);
- Specify multiple address fields to save to your object NOTE: The key of the array is the database field and the value should match the meta data returned by the API. https://addressfinder.nz/api/nz/address/metadata
$addressConfig = array(
'Address' => 'a',
'City' => 'city',
'Street' => 'street'
);
- Add the field to your fieldset
AddressFinderField::create($this, 'AddressFinder', 'Search address', $addressConfig)
- Add the address field but don't forget to specify the DataObject
AddressFinderField::create($this->data(), 'AddressFinder', 'Address Finder', $addressConfig, false)