Advanced Customisation
The application is based on Zend Framework and is very flexible and most of it can
be overridden and changed in the same manner which you would for any Zend
application, this section contains some examples of the more common things which
you might want to change. All of the changes in these sections require you to add
an additional config file to the config/autoload
directory of the main application.
This file should return an array of config to be merged with the application config
eg:
return [
'custom_config_key' => 'custom_config_value'
];
Refer to the module config in the tickets module for all the config key values you can change. Bear in mind that some changes may break the application and that we can only offer limited support for these advanced changes.
Overriding views
@TODO
Overriding routes
You can change the base uri for the app with the following piece of config.
'router' => ['routes' => ['tickets' => ['options' => ['route' => '/tickets/' ] ] ] ]
This example would prefix all application urls with /tickets/
Overriding assets
To override individual assets, add a map
key to the asset manager eg
'asset_manager' => ['resolver_configs' => ['map' => ['css/card.css' => 'my.new.css'] ] ]
Additional delegate information
@TODO fill out with more details + code examples
The basic steps to add additional delegate information fields are as follows:
- Create a Delegator factory (see zend docs) for the delegate information fieldset
- Inside the delegator factory, call the original service factory to retrieve the fieldset
- Add your additional fields (see zend form docs)
- Return the modified fieldset
- Add delegator factory to config
! Functionality hasn’t been merged yet !
Validating delegate information
@TODO Add more details
You can add validation to the delegate information (eg make specific fields required) however bear in mind the same configuration is used for both the initial purchase and for the management page, so ensure that you test both places if you change the validation
Override the config using the key:
'input_filter_specs' => [
\ConferenceTools\Tickets\Form\ManageTicket::class => ['your config here'],
],
The current configuration is located in the file
config/input-filters/manage-ticket.config.php